How to move from spreadsheets to a WMS
How to move from spreadsheets to a WMS: signs it's time, cleaning SKUs, barcodes and units, the opening count, cutover, training and first-week checks.
Most warehouses run on spreadsheets until the spreadsheet starts costing more than it saves. This guide covers how to tell you have reached that point, how to clean product and location data before importing it, how to take an opening stock count and choose a cutover date, whether to run in parallel, how to train the floor, and what to check in the first week.
Signs you've outgrown spreadsheets
Spreadsheets fail gradually. Nobody decides the stock file is wrong; it just becomes something people double-check before they trust it. The signs below usually mean the time lost to checking and correcting has passed the effort of switching.
The last sign matters most. A spreadsheet usually stores a balance, the current quantity, and overwrites it. A warehouse management system stores the movements that produced the balance: received, moved, picked, adjusted. When a number is wrong, the history shows where it went wrong. For a side-by-side view, see WMS vs spreadsheets.
- Counts regularly disagree with the sheet, and nobody can say why
- Two people edit the same file and overwrite each other
- You sell stock the sheet says you have, then can't find it
- Lots, expiry dates or serial numbers live in a notes column
- Pickers ask where things are instead of reading it from a list
- You hold stock for more than one owner and separate it by hand
- You record balances but not movements, so errors can't be traced
Decide scope and the cutover date first
Before touching data, decide what moves on day one. A first migration usually covers the catalog, locations, opening stock and open orders. Historical orders, closed purchase orders and old movements can stay in the spreadsheet as an archive. Importing years of history rarely helps and often carries old errors into a clean system.
Pick a cutover date in a quiet period, not at month-end or just before a promotion. Work backward from it: data cleanup, test imports, training and the opening count all take time. A small operation might prepare in a few weeks; several thousand SKUs across multiple owners needs longer. Name one person as the migration owner, with the authority to move the date if the data isn't ready.
Clean up SKUs, barcodes and units of measure
Product data is where most migration problems start. Export your current list and fix it before importing, because it is far easier to clean in one file than after the data has spread across receipts and orders.
Start with SKUs. Every sellable variant needs exactly one SKU, and every SKU exactly one meaning. Look for duplicates that differ only in case or spacing (OIL-008 and oil-008), SKUs reused for a different product, and variants tracked as one SKU with the size in a note. If you rename SKUs, keep an old-to-new mapping so open orders and supplier documents still make sense.
Then barcodes. Scan a sample of real products and compare each scan with the sheet. Typical findings: missing barcodes, one barcode on two SKUs, and case barcodes recorded as if they were unit barcodes.
Then units of measure. Decide the base unit for each SKU, the smallest unit you count and sell, and define packs on top of it: an each, a case of 12, a pallet of 60 cases. The costliest mistake in a migration is an opening quantity entered in cases for a SKU the system counts in eaches.
- One SKU per sellable variant, with no duplicates by case or spacing
- Every barcode scanned and verified, unique to one SKU or pack
- A base unit per SKU, with pack sizes defined as multiples of it
- Lot, expiry or serial tracking decided per SKU before stock arrives
- Weights and dimensions in one unit system, such as grams and millimeters
Set up locations before loading stock
Stock needs an address. If your spreadsheet has a location column, it probably holds a mix of real codes, descriptions such as "top shelf by the door", and blanks. Replace it with a proper scheme before you count, so every storage position has a code and a label. Our guide to bin location naming covers how to design codes that last.
You don't have to label every position in a large building on day one. At minimum, label every location that will hold stock at cutover, plus receiving, packing, staging and a quarantine area. Set the walk sequence while you label, since you are already walking the route.
The opening stock count and cutover
Don't import the spreadsheet's quantities. Import a fresh count. The opening balance is the base every later number is built on, and a spreadsheet quantity carries whatever error it has collected over the years.
Count by location, recording SKU, quantity in the base unit, and lot and expiry where tracked. Freeze movement while you count: finish the day's outbound, hold inbound at the dock, and don't move stock between locations until the count is loaded. On a large site, count zone by zone over several days and freeze each zone only while it is counted, but make sure anything received or shipped during the window lands on the right side of the cutover.
Recount a sample before loading. An independent recount of, say, one location in ten by a different person tells you whether the count is good enough to go live on. Where the recount disagrees, count that zone again.
- Count by location, not by SKU total
- Record quantities in base units, with lot and expiry where tracked
- Freeze movement in the area being counted
- Recount a sample independently before loading
- Import the count, then spot-check screen balances against the shelf
Parallel run vs hard cutover
In a parallel run, you keep the spreadsheet going alongside the new system for a period and compare the two. In a hard cutover, the spreadsheet stops on a set date and the WMS becomes the only record.
Parallel runs sound safer but rarely are for inventory. Every transaction has to be entered twice, people get tired and skip one side, and within days the two records disagree for reasons that have nothing to do with the new system. You end up reconciling the spreadsheet instead of testing the WMS.
A rehearsed hard cutover is usually the better choice. Rehearse beforehand: run a handful of real receipts and orders through the new system in a test period, then start fresh from the opening count. If you must run in parallel, keep it short, limit it to one process or a subset of SKUs, and decide in advance which record wins when they differ.
- Hard cutover: when data is clean and the team has rehearsed
- Short parallel run: when leadership needs evidence before switching
- Phased by process: receiving first, then picking and packing
- Phased by area or client: one zone or one stock owner at a time
Training the warehouse floor team
Train people on the tasks they do, with real products and real labels, not slides. A picker needs to scan a location, confirm a quantity and report a short pick. A receiver needs to capture lots and expiry and handle an item that isn't in the catalog. A lead needs to approve adjustments and count variances.
Run short sessions in the week before cutover, then keep a lead on the floor for the first few shifts to answer questions as they come up. Agree on a few rules that matter more than anything else: scan every location, never enter a quantity you didn't count, and report problems instead of working around them. A workaround on day two is a habit by day ten.
First-week checks after go-live
The first week shows whether the opening data and the new habits hold. Check a little every day rather than waiting for a full count at month-end. Most problems found this week trace back to one of three causes: a unit-of-measure error, a putaway scanned to the wrong location, or someone still updating the old spreadsheet out of habit.
- Review adjustments and their reasons daily; a spike means a process gap
- Count a handful of locations picked that day and compare with the system
- Investigate every short pick: a count error, a putaway error or a missed move
- Check receipts against purchase orders and supplier paperwork
- Confirm every released order has shipped or has a known reason not to
- Walk the floor for unlabeled locations and stock parked in aisles
- Measure inventory accuracy on a sample at the end of the week
How NextStock handles the move from spreadsheets
NextStock's guided setup takes you through creating a warehouse, stock owners, storage locations and opening stock. For larger data sets, bulk import and export is staged: you upload a CSV, map its columns with a mapping template you can reuse, and every row is validated before anything is written. You see a preview of what will change, large files commit in resumable chunks, and an import can be reverted if something was wrong. Imports cover catalog, opening stock, orders, ASNs, purchase orders and pick faces. Opening stock enters the ledger as movements, so your starting balance has a traceable origin like every later change. You can create an account and try an import with a small file first.
A practical NextStock guide. Adapt it to your operation and validate with your team.