Cash flow
Stock valuation for your accounts, and why freight belongs inside it
Once a year somebody has to put a value on every item in your warehouse and sign for it personally. Counting is the easy half. Knowing what each unit cost you is the other one.

In Sweden the acquisition value of purchased stock is the purchase price plus freight, duty and similar costs, not the figure on the supplier's invoice. Skatteverket says it in one sentence: "I anskaffningsvärdet för de lagertillgångar du köpt ska du räkna med inköpspris, frakt, tull och liknande kostnader." Shopify stores one cost per product, and for most importers that field holds the supplier price alone. The number your store already has is therefore wrong for your accounts by exactly the freight and the duty.
Per unit that gap looks like rounding. Across a year of container arrivals it is the difference between a stock figure your accountant can sign and one they have to rebuild from invoices.
What the year-end list actually has to contain
Three requirements, and they are more specific than most merchants expect.
| Requirement | What it says | Source |
|---|---|---|
| Count item by item | An inventering at least once a year, noting the value of each item, "post för post" | Skatteverket; Lag (1955:257) 1 § |
| Sign for it personally | The list carries a declaration given "på heder och samvete" | Lag (1955:257) 2 § |
| Take the lower of two values | Lägsta värdets princip: acquisition value or net realisable value, whichever is lower on the balance date | ÅRL 4 kap 9 § |
The middle one is worth reading twice. It is not a form you file. It is a declaration on your honour that the values next to each line are true, which is a strange thing to sign at the end of an evening of spreadsheet arithmetic.
A weighted average is allowed, which matters more than it sounds
Swedish accounting law is explicit about method. Årsredovisningslagen 4 kap 11 § says the acquisition value for stock of similar assets "får beräknas enligt först-in-först-ut-principen, enligt vägda genomsnittspriser eller enligt någon annan liknande princip", and adds that "sist-in-först-ut-principen får inte tillämpas".
Read that as a permission slip. If you buy the same product again and again at different landed costs, you either track every batch separately for as long as it exists, or you keep one blended figure per product. The second is a named, permitted method rather than a convenient approximation, and it happens to be the only one that fits a Shopify store, because Shopify has room for exactly one cost per product.
Where the manual work comes from
Every delivery that lands at a different price forces the blended figure to be recalculated:
new average = (units you had × old average + units received × landed cost of this batch) ÷ total units
Take a product sitting at 200 units with an average cost of 42 kr. A container brings 300 more, and after freight and duty those cost 51 kr each. The new average is (200 × 42 + 300 × 51) ÷ 500, which is 47.40 kr.
Now do it the way the store's own data would push you to. The supplier invoice said 44 kr and the freight was never added, so the blend runs on 44 and gives 43.20 kr. The stock is valued 4.20 kr per unit too low, which on those 500 units is 2 100 kr missing from a single product's line. Multiply that by a catalogue.
None of this is difficult arithmetic. It is arithmetic that has to happen on every receipt, for every product, and still be reproducible months later when somebody asks where a number came from.
What the app does with it
Cost prices go in once, typed in Costs and weight or imported, and the first question asked is what the number means: a supplier price with freight still to add, or a figure that is already landed. That single answer is why freight never gets counted twice, and it is stamped on every screen where a cost appears so nobody has to remember which was chosen.
When goods are received, the landed cost for that batch is recorded and the blend runs by itself. Each receipt is appended to a ledger rather than overwriting the last figure, so any value on the valuation screen traces back to the delivery that produced it, and nothing is recalculated on the fly. The blended figure is also written back to Shopify, so the store and the books hold the same number instead of drifting apart quietly.
Where the inputs are not trustworthy the app says so rather than guessing. A missing previous cost, zero or negative stock, or a landed cost more than double the previous average each raise a warning and stop the figure being applied until somebody has looked at it. The valuation screen exports to CSV with the average cost, the currency, the date of the last receipt, and how the purchase price has moved since the first one.
What it does not do
It does not count your warehouse, and it should not. The law requires a physical count, item by item, and that is the half no software has any business asserting. The division is clean: your count gives the quantity, the ledger gives the value per unit. One honest detail about the export, because it decides how you use it: the quantity column holds the units on hand at the last receipt, not today's stock, so it is a per-unit valuation source rather than a finished inventeringslista.
Duty is only inside the figure if it was inside what you typed. Buy DDP and your forwarder's all-in rate already contains duty and clearance, so adding a duty line on top would count it twice. Buy FOB and duty is genuinely missing from purchase price plus freight, and has to come off your broker's invoice. Restocio does not know which of those you have unless you tell it.
Then the obvious one. We build purchasing software, not accounting software, and none of this is tax advice. Whether a product needs writing down under lägsta värdets princip, and whether to use the main rule or the schablonregel that lets you take the stock up at 97 percent of total acquisition value, are decisions for your accountant. Worth knowing, though: 97 percent of a number that is missing freight is still a number that is missing freight. The simplification does not rescue the input.
Where these rules come from
Every rule quoted above was read from its primary source on 6 September 2026. All of them are in Swedish.
- Skatteverket, Varulager: what belongs in the acquisition value, the annual count, and the 97 percent rule.
- Årsredovisningslag (1995:1554) 4 kap 9 § and 11 §: lägsta värdets princip, and which cost formulas are allowed.
- Lag (1955:257) om inventering av varulager för inkomstbeskattningen: the per-item list and the signed declaration.
These are Swedish rules. The principle that inbound freight belongs in the cost of stock is common across accounting frameworks, but the wording, the specifics and the 97 percent option are not, so check your own country's rules before applying any of this outside Sweden.
Common questions
Does the value of my stock include freight?
In Sweden, yes. Skatteverket states that the acquisition value of purchased stock includes inköpspris, frakt, tull och liknande kostnader, so purchase price, freight, duty and similar costs. A stock value built from supplier invoices alone is understated by the inbound freight and any duty you paid.
Can I use a weighted average instead of FIFO in Sweden?
Årsredovisningslagen 4 kap 11 § allows the acquisition value for stock of similar assets to be calculated using first in first out, weighted average prices, or another similar principle. Last in first out is not permitted. A moving average cost per product is therefore a named method rather than an approximation, which matters when your store can only hold one cost per product anyway.
Do I have to count my stock every year?
Yes. An inventering must be done at least once a year, and it means noting the value of each item in the stock, post för post. Under Lag (1955:257) the resulting list also carries a declaration given på heder och samvete, so it is signed personally rather than simply filed.
What is the 97 percent rule?
A simplification in Swedish tax law, the schablonregel, which lets you take the stock up at 97 percent of its total acquisition value instead of applying the main rule item by item. It changes the total you report, not what belongs in the acquisition value, so it does not compensate for a cost base that is missing freight and duty. Which rule suits you is a question for your accountant.
Should the cost in Shopify match the value in my accounts?
It is far easier if it does. Shopify holds one cost per product, and if that field carries the blended landed cost then margins on screen, stock valuation and the figures your accountant works from all come from the same number. When the two drift, somebody has to reconcile them later from purchase invoices, which is the manual work most importers are trying to escape.
Marcus co-founded Restocio and works on it daily with a Swedish importer who plans their purchasing in it every working day. Restocio is built in Sweden by two founders, one Swedish and one Danish, and Marcus is the Danish one. Most of the examples on this blog come from that store's real ordering decisions rather than from a textbook. Why we are building it.
Related reading
- Landed cost for Shopify stores, and why your margin is wrong
- Profitable but no cash, and where the money actually went
- Supplier lead time, and why yours is probably too short
Restocio plans purchasing for Shopify stores that import. It works out what to order, how much, and whether it should travel by sea, rail or air, so you pay air freight only for the units that genuinely cannot wait.