The short answer
Both are ways to put a cost on the stock you sell. FIFO (first in, first out) assumes you sell your oldest stock first, at the price you paid for it. Weighted average cost blends everything you hold into one average price per unit.
A worked example
You buy 100 candles at $5, then 100 more at $7. You sell 120.
- FIFO: the first 100 sold cost $5 and the next 20 cost $7, so the 120 cost $640. The 80 left are valued at $7 each, or $560.
- Weighted average: you paid $1,200 for 200 candles, so each costs $6. The 120 sold cost $720, and the 80 left are valued at $480.
Same candles, same sales, but a different cost of goods sold and a different stock value.
When each makes sense
- FIFO follows how most stores actually sell, oldest first, which matters for anything that expires. When prices are rising, it shows lower costs and higher profit now.
- Weighted average is simpler to keep up and smooths out price swings between orders. It suits products that are interchangeable and don't expire.
Things to know
- Whichever you use, include freight, duty, and fees. Use landed cost, not the invoice price.
- Pick one and stay with it. Switching makes your numbers hard to compare.
- Your accountant may have a view, and tax rules differ by country. Check with them before you choose.
- Shopify keeps a single cost per item for each product. Shopify's own help center says it stays fixed when you receive stock unless an app updates it.
How Posto helps
Posto works out a landed cost per unit for every order you receive. If you turn it on, it can also update Shopify's cost per item when stock arrives, either to the latest cost or to an average that blends the new delivery with the stock you already have, so your margin reports in Shopify stay current.