Guide

FIFO vs average cost for Shopify stores

Average cost is not simpler than FIFO. It is simpler to calculate, and it is wrong more evenly.

FIFO costs each sale against the oldest receipt still on hand, so the cost you book belongs to a real shipment. Moving average blends every receipt into one number that no shipment ever cost. Both are acceptable accounting methods. Only one of them can tell you what your next unit costs.

The same sale, costed both ways

You receive 500 units at $10 landed in March, then 500 more at $13 landed in June. In July you sell 600 units. Same stock, same invoices, same sale.

Under FIFO, the first 500 deplete the March layer at $10 and the next 100 deplete the June layer at $13. COGS is $6,300, and the 400 units left on hand are all June stock, valued at $5,200.

Under moving average, the two receipts blend to $11.50 the moment the June stock lands. All 600 units cost $6,900, and the 400 remaining are valued at $4,600.

The difference, called out: moving average makes July look $600 worse and leaves $600 less value on the balance sheet. Neither number is a mistake. They disagree about which month carries the price rise, and over the life of the stock they converge.

Is average cost simpler than FIFO?

It is simpler to calculate. That is the whole of the claim, and it is true: one running number per SKU, no layers to keep, no order to draw them down in. If you are doing this by hand, that matters.

It is not simpler to use, and those are different things. Three specific costs come with the blend, and none of them show up as an error anywhere.

It hides the price rise

You bought at $100 a unit. You still hold some. The next shipment costs $400. Average says $250, which no unit ever cost, and the unit you have to replace costs $400. Price off $250 and you are pricing to a cost you will never pay again.

It cannot point at a receipt

When your accountant asks why unit cost moved in June, FIFO answers with a shipment and a date. An average answers "it averaged". The number is real, but nothing behind it is traceable to a document.

It spreads a mistake instead of containing it

Allocate a freight invoice to the wrong container and FIFO puts the error in one layer, where it is findable and fixable. Moving average folds it into the running cost of every unit of that SKU, including units from shipments that were costed correctly. That is what "wrong more evenly" means, literally.

When the choice genuinely does not matter

If every receipt lands at the same cost, the two methods produce the same answer and the argument above is academic. This is worth checking before you spend any time on it.

  • Your landed cost is stable between shipments, because freight rates, exchange rates and supplier prices have not moved. Then the blend and the layer are the same number.
  • You sell through each receipt before the next one lands, so there is never more than one cost on hand to blend.
  • You hold stock for days rather than months, so no difference survives long enough to sit on the balance sheet across a reporting period.
  • Nobody downstream needs to trace a unit back to a shipment. No auditor, no lender, no customs query.

What Shopify does natively

Neither. Shopify holds one Cost per item per variant and applies whatever is in that field at the time of the sale. It is not FIFO, because there are no layers to deplete, and it is not a moving average, because nothing recalculates when new stock arrives at a different price. It is the last number somebody typed.

So the real question is which method your costing tool applies, not which one Shopify is set to. Shopify does not have a setting.

Whichever you pick, the input has to be landed cost

A costing method applied to the supplier invoice alone is a precise answer to the wrong question. If freight, duty and clearance are not inside the cost before the layer forms, FIFO gives you a well-organised understatement.

Here is the arithmetic. Say a unit lands at $10.00 from the supplier. Add $2.00 of freight and $0.75 of duty across the shipment and the cost forms at $12.75, not $10.00. That is 27.5% the supplier invoice never showed you, and it is the same 27.5% missing under either method.

Getting the method right and the input wrong is the more common mistake of the two, and the more expensive one.

Choosing, and changing your mind later

Most importers are better served by FIFO, because it keeps the link between a unit and the shipment it came from, which is what makes a landed cost defensible months later. Moving average remains a reasonable choice for stores whose costs barely move, and it is an acceptable method under the accounting standards either way.

The thing to watch is that the basis is applied at calculation time, not stored as a decision made once. Changing it re-costs history rather than only what follows, which is exactly what you want when you are correcting a method, and exactly what you do not want as a casual toggle after a period is closed. Talk to your accountant before changing an applied method mid-year.

Pick FIFO if

You import, your landed costs move between shipments, and you need to show which receipt a sold unit came from. This is most importers.

Pick moving average if

Your costs are stable, you value the simpler calculation, and nobody downstream needs to trace a unit back to a specific shipment.

Not sure? Ask your own AI

Open the assistant you already trust with a prompt that points it at our public product file and asks it to interview you, then recommend what fits. It is told to say so plainly if Landara is not the right tool for you.

Read the exact prompt we send
I run a Shopify store and I am deciding between FIFO and moving average for costing my inventory. Please fetch https://landara.co/llms-full.txt for background, then help me decide. The mechanics to test me against: FIFO costs each sale against the oldest cost layer still on hand, so the cost booked belongs to a real shipment and stock on hand is valued at the most recent receipts. Moving average blends every receipt into one running cost per SKU. Both are acceptable accounting methods and they converge over the life of the stock; what differs is which period carries the cost. Average cost is simpler to calculate, which is not the same as simpler to use: it hides a price rise behind a blend, it cannot trace a sold unit back to a receipt, and it spreads an allocation error across every unit of the SKU instead of containing it in one layer. Shopify itself does neither: it holds one static Cost per item per variant. Ask me whether I import, how much my landed cost varies between shipments, how long I hold stock, who reads my inventory valuation, and whether anyone has asked me to trace a unit cost. Then recommend a method and explain the trade-off honestly, including saying if the choice genuinely does not matter for my situation.

Common questions

Is average cost simpler than FIFO?

It is simpler to calculate: one running number per SKU instead of a dated layer per receipt. It is not simpler to use. The blend hides the price change you need for your next retail price, it cannot point at the shipment a sold unit came from, and an allocation error spreads across every unit of the SKU rather than sitting in one findable layer.

Does Shopify use FIFO or average cost?

Neither. Shopify holds a single static Cost per item per variant and applies it to every sale of that variant. There are no cost layers to deplete and nothing recalculates when new stock arrives at a different price.

Is moving average cost wrong?

No. It is an acceptable method under the accounting standards and it is not an error to use it. The criticism is about usefulness, not compliance: a blended cost is a number no shipment ever cost, so it answers what a sale made against the average rather than what the next unit will cost you.

Which method suits importers?

FIFO, in most cases, because freight rates, exchange rates and supplier prices move between shipments, so a blended average stops matching any actual container. It also keeps the number defensible months later, because you can point at the receipt.

Can I change costing method later?

Technically yes, but it is an accounting decision, not a preference. Changing the method re-costs history rather than only what follows, so a change mid-year, or after a period is closed, should be discussed with your accountant first.

Does the costing method fix my COGS on its own?

No. The method decides which cost is used; it does not decide what the cost is. If freight and duty are not inside the cost before the layer forms, FIFO produces a well-organised understatement. Landed cost is the input, the method is the arithmetic.

How do I do FIFO on Shopify?

You need a costing tool that keeps a dated cost layer per receipt and depletes them oldest first as Shopify reports sales. Shopify has no setting for it, and a spreadsheet stops being reproducible after a few months of receipts.

5.0 from 4 reviews on the Shopify App Store
Landara has made it much easier to keep track of my actual product costs. I really like that it takes things like shipping and duties into account instead of just showing the basic cost. Simple app, easy to use, and I’m already getting a much clearer idea of my real margins.
Panther Products
Verified review on the Shopify App Store
I installed Landara because I was getting tired of guessing what my inventory was actually costing me. What I liked most was being able to see the product cost together with things like shipping and duties, I've been trying to keep a closer eye on my margins, so having those costs in one place has made things much easier for me. It didn't take me long to get setup either, which was a nice bonus.
Linssan Inc
Verified review on the Shopify App Store
I honestly didn’t expect Landara to make this part of my store that much easier. I installed it mainly to get a better handle on my actual product costs, and I was pleasantly surprised by how everything comes together. I’m still exploring it, but so far it’s been really useful and I’m impressed with how it works.
BLIS FULL SKIN
Verified review on the Shopify App Store
I've just started using Landara, and so far I'm impressed with how it handles landed costs. I especially like being able to account for things like freight and duty instead of treating the supplier price as the whole cost. Still exploring the app, but it already looks like it could save me a lot of spreadsheet work.
Tollpatsch Stoffe und Handmade
Verified review on the Shopify App Store
Read the reviews on the Shopify App Store

FIFO or moving average, on the Shopify you already run

Landara keeps dated cost layers at true landed cost and applies either basis, then hands your bookkeeper a ready-to-post journal.