Financial Accounting

Opening Inventory: How to Set Your Beginning Inventory Value When You Switch Systems

In March 2026 I was on a call with an importer that was moving onto SKU.io. We had got as far as opening stock. One of their team asked the question everyone asks at that point: when they put the initial inventory in, how does the system decide what it is worth?

I showed them the initial count screen. Per warehouse, mark it as the initial count, load a CSV with the SKU, the quantity and the unit cost. Then a colleague asked the harder version. What if the same product had landed at different costs in the past? My answer was a blended rate: “So we’re asking for your average cost because ultimately if we multiply quantity of stock by the weighted average cost, then it should match your books.”

That rule is still the center of this guide. Opening inventory is the one number where the inventory system and the accounting system have to agree on the same day, before anything else happens. But I’ve since learned that getting the total to match is the easy half. The hard half is the cost of each unit, because every sale after go-live takes its cost from it.

What opening inventory is, and why switching makes it hard

Opening inventory, also called beginning inventory, is the value of the stock you hold at the start of a period. In a normal month it is simply last month’s closing inventory. Nobody has to think about it.

Switching systems breaks that chain. Your accountant has a figure in the inventory account in Xero or QuickBooks. Your old system, or your spreadsheet, has quantities and some costs. The new inventory system starts with nothing. Whatever you load on day one becomes the cost that the first sales of each product carry into cost of goods sold (COGS).

So the switch has two separate questions, and most sellers only answer the first:

  1. How many units do you hold, in each warehouse, at the moment you switch? You can count that.
  2. What did each of those units cost you to land? That is the purchase price plus the freight, duty, brokerage and anything else it took to get the unit onto your shelf. You usually cannot count that. You have to rebuild it from documents.

The quantity is what you know. The cost is what you don’t.

The standard practice, step by step

This is what ecommerce accountants expect when a seller moves to a new inventory system. None of it depends on which system you pick.

1. Pick a start date, and make it the first day of a month. The opening count is dated to that day. A month start means your first month in the new system is a whole month, which keeps the first close and the first comparison with your books clean.

2. Count at the end of the day before the start date. For an October 1 start, that is your quantity at end of day September 30. Count every place stock sits: your own warehouses, each 3PL, and Amazon. A 3PL’s on-hand report or Amazon’s inventory report can stand in for a physical count where you cannot walk the shelves, but a physical count of your own building is better than a report. More on that in the physical inventory count at go-live.

3. Cost each product at landed cost. Purchase price alone is not the cost. Freight, duty and brokerage belong in the unit. If your books capitalized them into the inventory account, which they should have, then a count valued at purchase price will not agree with your books. The details are in building opening cost from supplier documents.

4. Tie the total to the inventory account. Quantity times unit cost, added up across every product and warehouse, should equal the inventory balance in your books on the same date. On a go-live call in October 2026 with a brand that keeps its books in another currency, I put it this way: “Whatever the total is of quantity times average cost should equal the dollar amount of your inventory account.” Then: “That’s a good starting basis.”

5. Settle any difference before you go live, with your accountant. If the count and the books disagree, one of them is wrong. Find out which, and correct it at the start date. A difference you carry into the new system does not go away. It sits in the inventory account and comes out later as COGS in a month that did nothing to earn it.

6. Load it once. The opening count sets the stock and cost in the inventory system. Your books already hold the opening balance. Nothing about the switch should post the same stock a second time as a purchase or as COGS.

A worked example

These numbers are invented to show the arithmetic.

A brand selling on Shopify and Amazon switches systems on October 1. It holds three products in one warehouse. The inventory account in its books reads $8,894.00 on September 30.

ProductUnits at end of day Sep 30Purchase priceFreight and duty per unitLanded cost per unitValue at landed costValue at purchase price
A400$6.00$1.10$7.10$2,840.00$2,400.00
B150$22.00$2.40$24.40$3,660.00$3,300.00
C1,000$1.80$0.35$2.15$2,150.00$1,800.00
Total$8,650.00$7,500.00

Two things show up.

First, the purchase-price column is $1,150.00 short of the landed-cost column. That is the freight and duty. A seller who loads the purchase price, which is what most product records hold, starts the new system $1,150.00 below the books. Every unit of those three products then sells at a cost that is too low, margins look better than they are, and the $1,150.00 is still sitting in the inventory account when the shelf is empty.

Second, even at landed cost the count is $244.00 below the books. In this example the reason is 10 units of product B, invoiced on September 28 and delivered on October 3. The books took them on the invoice. The count could not, because they were on a truck. 10 times $24.40 is $244.00, and the difference is explained.

Goods in transit at the switch are the most common honest difference. Agree with your accountant where those units sit. Do not add them to the count of a warehouse they had not reached.

The mistakes I see most

  • Loading the purchase price as the cost. The product record’s cost is often the supplier price with no freight or duty, out of date, or zero. It is the number at hand, so it gets loaded.
  • Counting mid-day. Orders keep shipping while you count. A count taken at 2 p.m. on the last day is neither the opening quantity nor the closing quantity. Count after the last shipment of the day, or freeze shipping.
  • Leaving out a location. The 3PL nobody visits. Amazon’s FBA and AWD stock, which Amazon reports in units and never in cost. Stock at a co-packer. Each one is a hole in the count and a mismatch with the books. FBA and AWD have their own post: FBA and AWD opening stock.
  • Zero-cost rows. A product with no cost is valued at nothing. Its sales then show 100% margin and the inventory account keeps the cost you actually paid.
  • One blended cost for the whole history. This one is mine. A blended average over two years of purchases gets the total close. It does not get the unit right, because the units on your shelf today are mostly from your newest purchases, not your oldest.
  • Fixing the difference after go-live. Once sales are flowing, a wrong opening cost has already reached COGS. Correcting it means restating months you may have closed.
  • Posting the stock twice. An opening stock adjustment that hits COGS or creates a purchase in the new system, on top of the balance already in the books.

How to check your own books

Before you load anything, run this on your own data. It needs a spreadsheet and your trial balance.

  1. Export your count as one row per product per warehouse: SKU, quantity, unit cost.
  2. Add a column for quantity times unit cost, and total it.
  3. Pull the inventory account balance from Xero or QuickBooks for the day before your start date.
  4. Compare the two. Write the difference down.
  5. Sort the count by unit cost, lowest first. Look at every zero and every cost that matches the supplier’s price list exactly. Those are the rows missing freight and duty.
  6. List every location that holds stock, and tick each one off against the count.
  7. List every purchase invoiced in the last two weeks before the start date, and check whether those units were received or still in transit.
  8. Explain what is left of the difference, or take it to your accountant. A difference you cannot explain is a reason to wait, not a rounding item.

If the difference is small and explained, you are ready to load. If it is large, the problem is usually in step 5, and the work in the next section is how you close it.

Building the cost from documents

When the cost is missing or wrong, rebuild it from the documents behind it: the supplier invoices for the stock you hold, the freight, customs, duty and brokerage bills for those purchases, and any credit notes from your suppliers. A credit lowers the cost of the invoice it is against. A freight bill goes onto the purchases it mentions.

The method I’d use is this. For each product and warehouse, start from your newest received purchase and walk back through older ones until they cover the units you hold. Cost those units at what they landed for, including their share of freight and duty. Under first-in, first-out (FIFO) costing, the units still on the shelf are the newest ones, so that is the cost that belongs on them.

Inventory valuation at go-live covers FIFO and weighted average, and which one your opening count should follow.

The months before you switched

Your accountant may also want COGS and inventory value for the months before you started on the new system, for example to close out the prior year. The arithmetic is the one accountants do by hand:

COGS = opening value + purchases − closing value

That needs a count at each end of the stretch. Between two counts you can measure the COGS for the whole stretch, but not for each month inside it. Any monthly figure inside it is an estimate, and should be labeled as one. How to calculate beginning inventory works through it with numbers, including what to do when you have only one count.

How SKU.io handles opening inventory

This is where I describe our own product. Everything above works with any system.

The initial count

In SKU.io, a warehouse’s opening stock is its initial count: one stock take per warehouse, dated to your inventory start date. You load it by CSV, with columns for the SKU or barcode, the quantity, and an optional unit cost, or you type it in by hand. Amazon FBA and AWD warehouses take their opening stock and cost by CSV only. SKU.io takes your count as given. It does not second-guess your quantities. The steps are in the guide to loading a warehouse’s opening stock.

The tie-out before the first sync

Go-live readiness runs before accounting is turned on for the first time. One of its blocking checks is the inventory GL tie-out: when you start from an opening balance, its inventory figure has to match your inventory valuation. Others block on stock held with no cost and payout codes with no account. Each check links to the records to fix. The details are in the go-live readiness guide.

The cost check

The SKU.io team runs a cost check as a service. It is not a button in the product. You send the documents, unsorted. The team compares the costs SKU.io holds with your supplier invoices, freight, duty and brokerage bills, credit notes and counts, and works out the landed cost of each product in each warehouse. It ends in a ready opening stock count and corrected default costs, and you go through the report together on a call. The price of a check is agreed up front. The cost check guide shows what to send and how to read the report.

This short video shows where the result of a check appears once it is done.

Watch on YouTube

I’ll be plain about where this stands. We have run the document-to-cost method end to end on a generated dataset, not yet on a real seller’s launch. Until we have, I’d treat its output as a well-documented starting point that you and your accountant review, which is how the check is run anyway.

How far your costs and counts can be trusted

A cost can be present and still be a guess. In go-live readiness, cost trust is the share of your stock value with a documented cost, weighted by where each cost came from. A supplier invoice counts in full and no cost counts for nothing. Count trust rates each warehouse for each month by its physical counts. You can state your own confidence beside the figure, and it never changes the figure. These are warnings, never blocks. One gap matters for this topic: stock at Amazon, FBA and AWD, is not part of these figures yet. The cost and count trust guide explains each source.

History before go-live

For the months before your start date, SKU.io keeps a separate register of your earlier counts and supplier invoices. It works out each month’s COGS as opening plus purchases minus closing. Months between two counts, and months outside them, are labeled Estimate. They are shown and never posted. The register never creates stock, changes a cost or posts to your books. The history before go-live guide has the import columns.

Watch on YouTube

After go-live

The books health check compares SKU.io’s figures with your Xero or QuickBooks trial balance month by month, including inventory on the balance sheet, and grades each difference. It only reads your books. It is the check I’d run at the end of the first month, to see that the opening value and everything after it still agree. See the books health check guide.

The accounting overview covers how SKU.io posts to Xero and QuickBooks once you are live.

Where this fits

Opening inventory is one of the checks in the ecommerce accounting standards, the full list of what accountants expect from a seller’s books. The posts in this series take each step further:

  • How to calculate beginning inventory, and what to do when the formula cannot help
  • The initial stock take: a physical inventory count at go-live
  • Inventory valuation at go-live: FIFO, weighted average and which one to pick
  • Building opening cost from supplier documents
  • FBA and AWD opening stock

If you run one warehouse with a few dozen products and buy a few times a year, you do not need any of our tooling for this. Count on the last evening, cost each line from its latest invoice plus freight, and have your accountant check the total against the books. Zoho Inventory or inFlow will hold that fine. If you hold stock in several warehouses, a 3PL and Amazon, and your product costs have never been checked against an invoice, book a demo and bring your inventory account balance and your last count.

Newsletter

Get the next one by email

Short, practical writing on inventory, fulfilment and multi-channel operations — sent when there is something worth sending.

Double opt-in — we send a confirmation link and you are not on the list until you click it. One-click unsubscribe on every email. See our privacy policy.

Ready to see SKU.io in action?

Bring your real numbers and the messy questions — we'll walk the system against an operation like yours, not a slide deck.

Book a Demo

Founder-led demo · 2-day onboarding · no onboarding fees