If your product costs change from one purchase order to the next, FIFO usually gives a more accurate profit picture, while weighted-average keeps your bookkeeping simpler once you’re managing dozens of SKUs. Neither one is “wrong,” the right pick depends on how your costs move and how much time you want to spend on inventory admin.
It’s also one of those decisions SAL Accounting gets asked about often, because pick the wrong one and your margins could be misleading you for months before anyone catches it.
See the size of the impact on your bottom line first with the Ecommerce EBITDA Calculator.
Quick Takeaways
- Canada allows FIFO or weighted-average only, LIFO isn’t permitted
- FIFO fits volatile costs; weighted-average fits high SKU counts
- Same sale, different COGS: $1,600 (FIFO) vs. $1,800 (weighted-average) in our example
- Switching methods mid-year requires documentation and consistent application
- Multiple warehouses or FBA setups usually favor weighted-average
- Missing landed costs understates COGS under either method
- The best method matches your cost patterns, not a universal rule
What Is FIFO Inventory Costing?
FIFO stands for First In, First Out. Basically, it assumes the oldest inventory you bought is the first inventory you sell.
So if you bought 100 units at $8 in January and another 100 units at $10 in March, FIFO assumes your April sale is coming out of that $8 batch first. Once those units are gone, you move to the $10 batch, and so on.
What this means in practice:
- FIFO doesn’t track which physical unit actually left the shelf, it’s an accounting assumption, not a shipping instruction
- It matches older, usually lower costs against current sales when your costs are rising, which changes how you calculate Cost of Goods Sold each period
- That tends to show better-looking margins short term, with inventory valued closer to today’s prices
Pro tip: Keep supplier invoices filed in the order they arrive. It turns FIFO from a guessing game into a quick lookup when it’s time to close the books.
The takeaway: FIFO gives you numbers that lean toward current market value.
What Is Weighted-Average Cost Inventory Valuation?
Weighted-average cost takes a different approach. Instead of tracking which batch is “first,” it blends every unit you have into one average cost per unit.
Let’s say you have 100 units at $8 and 100 units at $10. Weighted-average doesn’t care which batch you sell from, it just says every unit is worth $9, which is close to how Shopify tracks cost by default once you’re managing inventory at scale.
What this means in practice:
- The formula: total cost of inventory available ÷ total units available
- That average recalculates every time you buy more stock
- Every sale gets costed at the current average, no matter which physical box it came from
The takeaway: weighted-average smooths out price swings, so your margins don’t jump just because a new purchase order landed.
- Also read: “COGS for Shopify Sellers: The Complete Guide“

When Should You Use FIFO vs. Weighted-Average Cost?
The right method usually comes down to how your costs behave and how much complexity you’re willing to manage.
When FIFO Fits Your Business
FIFO tends to fit better if:
- Your supplier costs move around a lot (seasonal materials, currency swings, freight surcharges)
- You sell perishable, trend-driven, or short-shelf-life products where older stock genuinely does move first
- You want your financials to reflect current market value as closely as possible
- You’re preparing your store for a valuation, loan application, or investor conversation and want inventory on the books closer to replacement cost
Case Study: How Claire in Toronto Fixes Her Skincare Brand’s Inventory Costs1
Claire runs a skincare brand out of a small warehouse in Toronto’s Junction neighbourhood, selling through Shopify and a handful of retail partners across the GTA. Her core ingredient, a specialty botanical extract sourced overseas, has jumped in price three times over eighteen months because of shipping surcharges and currency swings.
Her bookkeeper uses weighted-average by default, so every new, pricier purchase order blends into her average cost and drags her reported margins down, even on units she bought months earlier at a lower price.
The Problem Claire’s margins look like they’re shrinking every quarter, even though her pricing and sales volume haven’t changed. She can’t tell if the business is actually getting less profitable or if her numbers are just reacting to ingredient cost swings.
What We Do We review her purchase history batch by batch and model her last four quarters under both FIFO and weighted-average, as part of the Shopify accounting services we run for Toronto ecommerce brands. Once we switch her to FIFO and rebuild her COGS around actual purchase batches, her margins stabilize and match what she’s seeing in her bank account.
The Result Claire now has a clear, accurate view of her true margin per product, and she can finally tell the difference between a pricing problem and a cost problem. She’s also better prepared for her next supplier price review, since her inventory value on the books now reflects current cost.
When Weighted-Average Fits Your Business
Weighted-average tends to fit better if:
- You carry a large number of SKUs and tracking margin by product already feels like a lot to manage
- Your product costs are fairly stable purchase to purchase
- You want your margins to stay steady month to month, without price-swing noise
- Your platform or 3PL already reports average cost by default, and rebuilding it for FIFO would mean extra manual work
Case Study: How Daniel in Mississauga Simplifies Costing Across Three Warehouses2
Daniel sells home organization products through Amazon and Shopify, fulfilling out of an Amazon FBA network plus a small overflow warehouse in Mississauga. With over 140 active SKUs and frequent restocks, he’s been trying to track FIFO batches manually in a spreadsheet, and it’s falling apart. Batches keep getting mixed up between his FBA inventory and his overflow stock, and his bookkeeping team spends hours each month just figuring out which batch each sale should be costed against.
The Problem Daniel’s FIFO tracking is too complex to manage accurately across multiple warehouses and 140+ SKUs, and the manual process is eating up time without producing reliable numbers.
What We Do We move Daniel to weighted-average cost and set up a system that recalculates his blended cost automatically with every purchase order, connected directly to his Amazon and Shopify sales data, using the same approach behind our bookkeeping for Amazon sellers in the GTA.
The Result Daniel’s monthly close now takes a fraction of the time it used to, his margins are steady and easy to explain to his business partner, and his team no longer needs to reconcile which warehouse a specific batch shipped from.
Neither list above is a rulebook. Plenty of profitable Shopify and Amazon sellers use weighted-average with volatile costs, and plenty use FIFO with a handful of SKUs. The point is understanding the trade-off, not chasing the “correct” answer.
How Do You Calculate COGS Under FIFO vs. Weighted-Average?
The clearest way to see the difference is to run the same numbers through both methods.
Calculating COGS Under FIFO
To calculate COGS under FIFO, you work through your purchase batches in the order you bought them, using up the oldest batch first until it’s exhausted, then moving to the next.
Say you have three purchase batches:
| Batch | Units | Cost/Unit | Total |
|---|---|---|---|
| 1 (oldest) | 100 | $8 | $800 |
| 2 | 150 | $10 | $1,500 |
| 3 (newest) | 100 | $12 | $1,200 |
If you sell 180 units, FIFO pulls all 100 units from Batch 1 ($800), then 80 units from Batch 2 (80 × $10 = $800). Your COGS is $1,600. Left over: 70 units from Batch 2, plus all of Batch 3.
Calculating COGS Under Weighted-Average
Under weighted-average, you’d first blend all three batches into one average cost per unit:
Total cost ($800 + $1,500 + $1,200 = $3,500) ÷ total units (100 + 150 + 100 = 350) = $10.00 per unit
Sell 180 units, and your COGS is simply 180 × $10.00 = $1,800. Most ecommerce accounting software recalculates this automatically the moment a new purchase order is logged, which is a big part of why sellers with high SKU counts lean on it.
Pro tip: Recalculate your average right after a purchase lands, not at month-end. Waiting means a chunk of sales gets costed at a number that’s already out of date.
Same purchase history, same sale, two different COGS numbers. That’s the whole reason this decision matters for your P&L.
How Do FIFO and Weighted-Average Handle Returns and Restocks?
Returns and restocks are where a costing method either holds up or starts to slip. Here’s how each one actually handles it.

FIFO With Returns and Restocks
A return or restock under FIFO comes down to where it lands in the batch order.
- A returned unit typically goes back into inventory at the cost it was originally pulled from
- A restock from a new purchase order becomes your newest batch, sitting behind whatever hasn’t sold through yet
- Without careful tracking, returns and restocks can throw off which batch is actually “first,” especially in a spreadsheet instead of software built for it
Getting this right consistently is part of why solid reconciliation habits matter as much as the valuation method itself.
Weighted-Average With Returns and Restocks
Weighted-average handles the same events with a lot less bookkeeping.
- A return goes back into the pool, a restock goes into the pool, and the average recalculates
- There’s no batch order to maintain, which is why high-volume sellers with frequent restocks often prefer this method
- The trade-off: a single large restock at a very different price can shift your average noticeably, affecting COGS on every sale afterward, not just the new units
A clean Shopify payment reconciliation process keeps that average from drifting off unnoticed.
How Do Multiple Warehouses Affect FIFO vs. Weighted-Average Costing?
Fulfilling from more than one location adds a layer most sellers don’t think about until it’s already causing headaches.
FIFO Across Multiple Locations
Multiple locations make FIFO more of a technical exercise than a simple lookup.
- Fulfilling from more than one warehouse, whether that’s your own 3PL or an Amazon FBA network spreading inventory across fulfillment centers, technically requires tracking batch order separately at each location
- In practice, most sellers apply FIFO at the company level rather than per-warehouse
- True per-location FIFO gets complicated fast without dedicated inventory software
Weighted-Average Across Multiple Locations
Weighted-average avoids most of that complexity by design.
- Easier to manage across locations since you’re working with one blended cost figure company-wide
- No need to reconcile which specific batch sat in which warehouse
- This is a big reason sellers running FBA, plus a Canadian 3PL, plus their own storefront, tend to default to this method, especially once tools like A2X are updating the numbers automatically
What Are the Most Common FIFO and Weighted-Average Mistakes?
Both methods are simple in theory, but they tend to break down in the same predictable spots.
Common FIFO Mistakes
Most FIFO problems come down to the same handful of habits.
- Switching between FIFO and weighted-average mid-year without adjusting historical records, which breaks the comparison between periods
- Manually tracking batches in a spreadsheet and losing track of partial batches after a big sale
- Forgetting to include freight, duties, or landed costs in each batch’s cost per unit, which understates COGS
- Assuming FIFO for accounting also has to mean FIFO for physical shipping (it doesn’t)
This is usually where DIY bookkeeping habits start costing more than they save.
Common Weighted-Average Mistakes
Weighted-average has fewer moving parts, but the mistakes here are just as easy to miss.
- Not recalculating the average after every purchase, which means old, stale averages get applied to new sales
- Missing landed costs (duties, freight, prep fees) when calculating the blended cost, which understates COGS and hides costs from margins you thought were healthy
- Assuming weighted-average removes the need to reconcile inventory counts, when it still requires accurate unit tracking
- Using a platform’s default average cost report without checking it matches actual purchase history
None of these mistakes are dramatic on their own, but stacked together they’re a classic sign of poor bookkeeping habits creeping into an otherwise healthy ecommerce business.
- Read more: “Shopify Profit Calculation Mistakes to Avoid“

FIFO vs. Weighted-Average Cost: A Side-by-Side Example
Here’s the same scenario run through both methods, using the batches from earlier:
| Line Item | FIFO | Weighted-Avg | Takeaway |
|---|---|---|---|
| Units sold | 180 | 180 | Same sale either way |
| COGS | $1,600 | $1,800 | FIFO shows lower COGS |
| Ending inventory | $1,900 | $1,700 | FIFO closer to current cost |
| Margin impact | Higher this period | Steadier over time | Accuracy vs. consistency |
Same purchases, same sale, two different stories on your P&L. This is exactly why lenders, investors, and the CRA want to know which method you’re using and want to see it applied consistently.
Pro tip: Once a quarter, compare your books’ ending inventory value against an actual physical count. It’s the fastest way to catch a costing method that’s drifted off track.
Which Inventory Costing Method Should You Choose?
Here’s how the decision breaks down once you put your own situation next to it.
| Your Situation | Better Fit | Why | Watch Out For |
|---|---|---|---|
| Costs change often | FIFO | Reflects current cost | Needs batch tracking |
| High SKU count, frequent restocks | Weighted-Average | Simpler to maintain | Big restocks shift the average |
| Prepping for a loan or investor round | FIFO | Closer to replacement cost | Needs clean batch records |
| Multiple warehouses or FBA split | Weighted-Average | One blended cost, easier to manage | Still needs accurate counts per location |
| Stable, predictable pricing | Either works | Minimal swings either way | Consistency matters most |
At the end of the day, the “right” method is the one that gives you numbers you can actually trust and act on, not the one that sounds more sophisticated. If this is starting to feel like more than a general bookkeeper should be weighing in on, that’s usually the moment specialized ecommerce accounting support makes the decision easier, and for Toronto-based sellers specifically, it’s exactly the kind of question our ecommerce bookkeeping team works through with clients regularly.






