When to Move Your Inventory Off Spreadsheets (and What Breaks First)
When a CPG brand should move inventory off spreadsheets, the five things that break first, in order, and how to switch without stopping the business.

Article written by
Peasy

A spreadsheet runs inventory fine until you do something the sheet can't see. A buyer asks for lot codes, orders start coming from a second channel, a batch turns ingredients into product, or a second person starts editing the file.
When two of those are true, plan the move. If you make product, lots usually break first. Someone outside your business asks a question the sheet can't answer in an afternoon.
So we'll start with what the sheet does well, then the five things that break, in the order they usually break. After that there's a quick test for your own sheet, and how to switch without a shutdown day.
We make Peasy, free inventory ops for small CPG brands, and at the end we'll walk through what the move looks like in it.
What a spreadsheet does well
A spreadsheet in Excel or Google Sheets is the right place to start. It's free, everyone on your team already knows it, and it bends to fit whatever you're doing this month.
It also lets you leave a note beside a cell for your future self. No inventory system does that as gracefully, and it's the reason brands that tried a rigid tool too early often go back to the sheet.
A sheet works when one person owns it, updates it the same day things happen, and counts the shelf on a schedule. Most of what goes wrong later is that habit breaking, not the file.
If you're still deciding whether a paid or free tool makes sense at all, our guide to free inventory software for CPG brands covers the cost side. This page is about the moment the sheet stops keeping up.
Why the sheet drifts from the shelf
The reason a sheet drifts is that it only knows what someone typed into it. Every delivery, batch, sale, sample, and broken jar is a hand edit. Miss one and every total after it is off, with no warning.
It rarely fails all at once. A count is off by a case. You think you have a couple hundred units and you have ten, and the sheet can't tell you whether they were sold, damaged, or never made.
Software doesn't remove the logging, but it moves it to where the work already happens. Receiving a pallet or finishing a batch is the update, not a second job someone does on Friday.
What breaks first in an inventory spreadsheet
If you make product, the breaks tend to show up in this order. Yours might start further down the list, but it'll be one of these five.
1. Lots and traceability
Lots break first because the question comes from outside. It might be a retailer's supplier form, a new co-packer, or an organic certifier. Or a supplier's recall notice quotes their lot code and asks what you did with it.
Say an organic auditor names a lot you received, 100 pounds on a given date. They'll ask where it went until 20 pounds were left. To answer, you need two links: ingredient lot to batch, and batch to customer.
State health guidance tells food makers to "maintain records that tie lot numbers or code dates of your ingredients to your finished product code dating" (NC DHHS recall plan guide).
A sheet can hold the codes. Keeping the links means copying between tabs on every production day, and it's the first step to slip when a run goes long.
For foods on FDA's Food Traceability List, these records become a legal requirement under the Food Traceability Rule. Our guide to lot tracking for food brands covers codes, formats, and the mock recall drill.
2. A second sales channel
Sell in two places and you end up with three numbers. Shopify has one, and wholesale orders sit in your inbox as PDFs and emails. The sheet has a third, which was right on Tuesday.
A sheet has one column for stock, so a case you promised a wholesale buyer still looks free to sell online. Shopify splits stock into states for this reason. Units on an unfulfilled order count as committed, not sellable.
What you need is one place that knows on hand, committed, and available across every channel. We walk through who owns which number in running Shopify, Faire, and wholesale from one count.
3. Recipes, units, and unit cost
Once you make product, every batch takes ingredients and packaging out and puts finished goods in. In a sheet, that's a formula per recipe. It breaks quietly when the yield changes or someone inserts a row.
Units make it worse. You buy an ingredient by the case, your costing sheet works in pounds, and your co-packer measures by weight. Sell a kit with seven components and that's seven deductions every time one sells.
Unit cost goes with it. Two deliveries of the same ingredient rarely cost the same. If the sheet can't say which delivery a batch used, it can't say what a jar cost.
For a lot of brands, landed cost shows up weeks after the run, once someone has re-keyed every bill. By then you've already placed the next production order on the old number.
4. More than one person editing
Say your ops lead receives a pallet, your co-founder fixes a count, and a part-timer logs samples. The same cell gets two edits. Version history tells you a cell changed, not that a pallet arrived.
So when a count is wrong, you can't tell which edit made it wrong, or why. You start second-guessing the ops team, and the ops team starts keeping its own side sheet.
There's a quieter version too. A sheet built by one person makes sense in that person's head. The next hire ends up rebuilding it from scratch just to understand it.
5. Month-end and the books
Your accountant needs ending inventory every period, because cost of goods sold comes from it. If the sheet is off, so is COGS, and so is the margin you're pricing against.
Bills are where it shows. The supplier invoice goes to QuickBooks, the ordered and received quantities sit in the sheet, and the two never meet. Suppliers rarely undercharge you, so the gap usually runs against you.
When the monthly count eats a weekend and still doesn't match, the sheet has stopped being your record and become a copy of one.
Signs it's time to move off a spreadsheet
Run this against the last month. The first four are the conditions from the top of the page. The last three are what they cause.
Lots: you track lot codes, or a retailer, distributor, certifier, or co-packer has asked for them.
Channels: you sell through Shopify plus wholesale, a marketplace, or a distributor.
Recipes: you make product from a recipe, or send ingredients to a co-packer.
Editors: more than one person changes the inventory file.
Phantom stock: you've confirmed an order and then found the stock wasn't there.
Slow counts: your monthly count takes most of a day, or never matches the sheet.
Unknown cost: you can't say what a unit cost last batch without rebuilding a formula.
If two of the first four are true, plan the move this quarter. If any of the last three are showing up too, move before your next big wholesale order ships.
One more signal is easy to miss. Count the spreadsheets you've built around the main one: a par sheet, a production calculator, a purchasing sheet, a co-packer reconciliation. Each one is a job the main sheet can't do.
How to switch from a spreadsheet without stopping
You don't need a shutdown day. Most of the work is cleaning up names and units you already have, then one physical count.
Pick the week. Stay out of the two weeks before peak season or a big wholesale order. And if you just moved wholesale buyers onto a new ordering setup, leave them there for now.
Start with one workflow. Pick either buying and receiving ingredients, or sales orders and finished goods. Get that one running end to end, then add the other and connect the two through production.
Clean the list. One row per item. Merge duplicate names, mark each row as an ingredient, packaging, or finished good, and drop anything you don't stock anymore.
Decide units now. Decide the unit you buy in, the unit you count in, and the conversion between them (a case is 12 jars). Do it now, because units are the hardest thing to change once stock exists.
Import items. Load the items you buy from the cleaned sheet. If you sell on Shopify, pull the items you sell from the store instead of retyping them.
Count once. Do a full physical count and enter it as your starting quantity. On day one, that count is the only number that matters.
Run both, briefly. Keep the sheet going for one production run or one month-end, then compare. A week or two of real use tells you whether the new system is close or way off.
Cut over. When the two agree, or you know why they don't, make the sheet read-only and stop updating it.
Where the setup time goes
Most of the time goes into the items you buy and the recipes. Recipes are the slowest part, because for each one you enter every ingredient, packaging item, and yield once.
Don't let the parallel run stretch past a month or two. It doesn't make the decision safer. It doubles the work and pushes the decision later, which is why a short, fixed window works better.
Common mistakes when moving off a spreadsheet
Moving everything at once. Buying, production, wholesale, and accounting in one week is how migrations stall. Do one workflow first, then the next.
Importing the mess. Three names for one ingredient become three items. Clean the list before it goes in, not after.
Changing units after stock exists. Every past receipt and batch is recorded in the old unit. Decide units before the first count.
An open-ended parallel run. Running both systems for months is double entry with no finish line. Set the end date before you start.
Rebuilding the side sheets. When the co-packer's count disagrees, don't start another sheet to explain the difference. Reset to their count in the new system.
Switching in peak season. The week you're shipping the most is the week you have the least time to learn a new screen.
How Peasy handles moving off a spreadsheet
Your sheet comes in as it is. Paste rows into Bulk add or upload a CSV. Only Item Name and Unit you buy are required. Items you sell can come in from your Shopify store.
One count sets the baseline. Inventory > Count in Reset mode sets on-hand to what you counted. Count from your phone, in whatever unit is easiest, and Peasy converts it.
Promised stock stops looking free. Available is On Hand minus Pending, and Pending covers open sales orders, transfers, and ingredients set aside for production.
Lots start with the first delivery. Every receipt creates a Lot ID from the SKU and receive date, with the Supplier Lot ID stored next to it.
Recipes cost themselves. A Template shows cost per unit and per batch, and each completed Work Order records its own total cost and cost per unit.
Every change has a name on it. Inventory > History shows the order behind each movement and who made it, so a wrong count leaves a trail.
Peasy is free, with no subscription and no credit card to sign up. You can load demo data to look around first, and the CSV import guide has the steps for your own items.

Article written by
Peasy



