Cash flow
Your supplier invoices in dollars, and your cost price moved on its own
A price rise arrives on an invoice with a new number on it. A currency move arrives on an invoice that looks exactly like the last one, and it is often the bigger of the two.
If you buy in one currency and sell in another, your cost price changes every time the exchange rate does, whether or not the supplier touches the price. A unit invoiced at 10.00 USD cost 110.67 SEK on 2 January 2025 and 94.49 SEK on 1 July, at the central banks' own reference rates, with the same number on both invoices. Nobody announces this. That is the whole difference from a price increase, and it is why this one gets missed.
The arithmetic that follows, an average that walks towards the new cost one delivery at a time, is the same as after a supplier price increase, and it is worked through there with a table. This page is about what is different: there is no event, the move hits your whole import side at once, it runs in both directions, and the question of which day's rate belongs in the cost has an answer you can look up.
Why did the cost price change when the supplier's price did not?
Because two currencies are involved and the cost field holds one. Shopify's cost per item is a single number, and its Help Center describes it as the price you paid the manufacturer, excluding taxes, shipping, or other costs, without a word about currency, read 28 September 2026. On a dollar invoice into a krona or euro store, somebody converts before typing. They do it once, at whatever rate they had in front of them that day, and the field keeps the result and nothing else. Not the rate or the date, and not the dollar figure it came from.
From that day the number stands still while the rate carries on moving. The next order is placed at a different rate, paid at another, and lands as stock that cost a different amount in your money, from an invoice that reads exactly like the previous one. Your supplier is being straight with you when they say nothing changed. In their currency, nothing did.
A price rise has a moment attached to it. Somebody writes to you, a new price list arrives, you decide whether to accept it, and you can go back and argue. A currency move has none of that. There is no email, nobody to call, and no version of the conversation in which the rate comes down because you asked. The only defence is noticing, and noticing needs a record the cost field cannot hold: the rate and the date, beside every order.
How far did it move in 2025?
Far enough to dwarf most price increases, and downwards, which is the direction people forget exists. The table converts one unit invoiced at 10.00 USD into four Nordic and European currencies on three days in the first half of 2025, using the European Central Bank's euro reference rates for each day, crossed through the euro for the three krone currencies. Sveriges Riksbank's published USD/SEK rate for the same days gives 11.067, 10.026 and 9.449, the same figures, as it should: since 27 November 2023 the Riksbank publishes the ECB's rates converted to kronor rather than a fixing of its own, so it is the same number in a second place, not a second source. Both series were read on 28 September 2026.
| Date in 2025 | In SEK | In NOK | In DKK | In EUR |
|---|---|---|---|---|
| 2 January | 110.67 | 113.53 | 72.26 | 9.69 |
| 1 April | 100.26 | 104.91 | 69.17 | 9.27 |
| 1 July | 94.49 | 100.29 | 63.17 | 8.47 |
| Change over the half year | −14.6% | −11.7% | −12.6% | −12.6% |
Read the first quarter on its own, because that is roughly one sea order cycle. Between 2 January and 1 April the same dollar price fell 9.4 per cent in kronor and 4.3 per cent in euros. Two orders placed a quarter apart at an unchanged dollar price landed nearly ten per cent apart in Sweden, and every product from every dollar supplier moved by that same ten per cent on the same days. The Danish column tracks the euro column almost exactly, and that is by design rather than by chance. Danmarks Nationalbank keeps the krone “very stable around the central rate of DKK 7.46038” to the euro, so a Danish importer buying in dollars gets the euro's move and none of the krone's own.
Nothing in this table is a forecast. 2025 happened to be a half year in which the dollar fell against every currency in it, and another year runs the other way. The point is the size rather than the direction: the number in your admin that every margin figure is built on moved by more in six months than most supplier price increases, and it did so without an invoice changing.
Which day's rate belongs in the cost?
Three candidates present themselves for every order, and they can sit far apart. The rate on the day you placed the order, the rate on each day you paid, and the rate on the day the goods arrived. The third is the tempting one, because it is what the currency app on your phone shows while you are standing in the warehouse with the delivery. It is also the one with the weakest claim: by the time the goods land, the money left your account weeks or months earlier, at those weeks' and months' rates.
The accounting answer is the transaction date. IAS 21, the international accounting standard on foreign exchange, says a foreign currency transaction “shall be recorded, on initial recognition in the functional currency, by applying to the foreign currency amount the spot exchange rate between the functional currency and the foreign currency at the date of the transaction”, and that stock carried at historical cost keeps the rate of that date afterwards rather than being restated at the closing rate.
IFRIC 22, the follow-up interpretation in force for periods from 1 January 2018, settles what the transaction date is when you pay before you own the goods, which is what a deposit is, and often the balance too when it falls due before shipment. For a payment in advance, the date is “the date on which an entity initially recognises the non-monetary asset or non-monetary liability arising from the payment or receipt of advance consideration”, and “if there are multiple payments or receipts in advance, the entity shall determine a date of the transaction for each payment or receipt of advance consideration”. Both quoted from the IFRS Foundation's own text, read 28 September 2026. In plain words, the deposit's share of the cost is fixed on deposit day and, when it too is paid before the goods are yours, the balance's share on balance day. A balance paid after you already own the goods is fixed at the rate of the day you took them on instead, and the questions at the foot of the page say where the difference goes.
Whether the small-company rules in your own country say it the same way is not something this page has checked, and it is not tax advice. Give your accountant the dates and ask which rate they book. What follows is the arithmetic, which does not depend on the answer.
Take 1 000 units at 10.00 USD, ordered on 2 January 2025 with a 30 per cent deposit paid the same day, the balance paid on 3 February before the goods ship, and the container landing on 22 April. The rates are the ECB's for those days, crossed to kronor.
| Rate you might use | USD/SEK that day | Cost of the 1 000 units | Per unit |
|---|---|---|---|
| Order day throughout, 2 January | 11.067 | 110 670 | 110.67 |
| Each payment at its own day: 3 000 USD on 2 January, 7 000 USD on 3 February | 11.067 and 11.175 | 111 425 | 111.42 |
| Receipt day, 22 April | 9.511 | 95 114 | 95.11 |
Between the figure a phone would give you on delivery day and the one the bank actually took there is about 16 300 SEK on a single order of a thousand units, one unit in seven. Type 95.11 into the cost field in April and every margin on that product is flattered by the whole gap, on stock you paid January's price for. The order-day row lands close to the payment row here only because the rate barely moved between the order and the balance. In a month where it did move, it would not.
One more thing about the rate itself. The reference rates in this post are the central banks' published fixings, and the rate on your bank statement is a different number, worse for you by whatever spread the bank charged. When you have the statement, that is the rate that belongs in the cost, because it is what the goods cost you. The reference rate is what you use when you do not, and the gap between the two is a cost you have already paid and very likely never measured.
What it moves, and what it leaves alone
Not the quantity. How many units to order follows the sales rate and the lead time, and the rate touched neither, which is the same argument as for any other cost error. What moves is the cash the order takes and every margin figure built on the cost, and it moves them in a pattern a price rise does not produce.
A supplier raises one price list, so one supplier's products drift while the rest of the catalogue stands still. A currency move shifts every product bought in that currency by the same percentage on the same day. The ranking among your dollar-bought products does not change at all, since they all moved together, which is why the margin report looks normal. What changes is their position against everything bought at home, and the total. A store sourcing half its range in dollars and half from a domestic wholesaler would have seen its two halves pull apart by the 14.6 per cent in the table during the first half of 2025, and a list of products sorted by margin would have reshuffled around that line without anyone deciding anything.
Then there is the direction. The other cost pages on this site describe a field that flatters you, because supplier prices and freight rates mostly rise and a field filled from an old invoice sits below the truth. 2025 ran the other way. A krona store whose costs were typed in January and never touched was, by July, scoring units bought in the spring at January's cost when they had actually cost up to 14.6 per cent less, so their margin read lower than it was, and budgeting the next container at January's rate when July's was a seventh lower. A pleasant error is still an error, and it moves the same decisions the unpleasant one does: what to promote, how far the ad budget may reach, and how much cash the next order needs.
The weighted average handles a currency move the way it handles anything else. Each delivery is blended in at what it cost and the average walks. Two consequences are worth knowing. A jump guard set at double or half the previous cost, which is the sensible default, will never fire on a currency move, because a fifteen per cent change is nowhere near it. That is correct behaviour, and it means the guard is not your detector. And because the move runs one way for months at a time, the average lags it for as long as old stock lasts, exactly as it lags a price rise, so a cost that is current on the day a delivery lands is stale again by the next one.
How do you notice it, since nobody is going to tell you?
With the one record you can build in an afternoon and should have been keeping all along: the rate and the date beside every foreign-currency order. Start with the past. Pick one product you buy in dollars and find its last three invoices on which the dollar price did not change. For each, write down the invoice date, the dollar unit price, and the rate on the day you paid, from the bank statement if you have it and from the ECB's or the Riksbank's published rate for that day if you do not. Multiply. Three invoices with the same number on them give you three different costs in your own money, and the spread between them is what this page is about, measured on your own stock. Then compare the newest with what the cost field says today.
That is a different check from the ten-minute COGS audit, which asks whether the field is missing freight and duty, and from the price-increase check, which blends old and new stock. This one holds the supplier's price constant on purpose, so that everything left over is the currency. Run it on the product you sell most of, because that is where a percentage costs money.
Going forward, the fix is not to update the cost field every time the rate moves. Stock you have already bought and paid for cost what it cost, and a rate move afterwards changes nothing about it. Update the field when a delivery lands, at the rate you actually paid, blended with what was already on the shelf, and watch today's rate for one purpose only: what the next order is going to cost, which is a cash question rather than a margin one. Why the field otherwise sits untouched for years is its own story.
Where the rate lives in Restocio
On the order, which is the only place it can be a fact. A purchase order is placed in a currency you pick from SEK, NOK, DKK, EUR or USD, and every line on it is in that currency. When the order is saved, the European Central Bank's reference rate for that day, and the date it was published for, are frozen on the order, so the store-money figure does not drift after the fact. If no rate can be fetched, the order is not saved, because a silent one-to-one would be exactly the wrong number.
Each payment you record against the order carries the rate of its own payment day, and a payment in the store's own currency is stored without any conversion. Goods on the way, on the Stock valuation page, states the rule on screen: the order at the rate of the order day, each payment at the rate of its payment day. The cash panel on Purchase Orders adds the warning that paid and still to pay need not add up on a foreign-currency order, because they are netted at different days' rates. That is the deposit-and-balance arithmetic from the table above, kept per order instead of reconstructed afterwards, and the Purchase Orders export carries the currency and the rate at the last payment as columns, so the record this page asks you to keep can be a download.
The catalogue cost in SKU Manager is one number in store money, deliberately. It is the starting cost, what Shopify holds and what margin and valuation run on before any order exists, so currency, rate and date belong to the order and its receipt rather than to the product. A cost CSV can still carry a Currency column, and a price in another currency is kept as the supplier's price and converted at that day's ECB rate, with the rate and date saved beside it. Once any product's cost is held in another currency, a Today's rate button on the Costs & weight tab re-derives the store-money figures at today's rate, leaves the supplier's price untouched and, with the write-back switch on, sends them to Shopify. Use it knowingly. It is right for a product you are about to order and wrong for stock you already paid for at another rate. A valuation never adds a dollar figure into a krona total. Rows in another currency are counted and named on screen instead.
One gap is still open, and it is at the receiving door. The receiving screen does not yet carry the order's currency through to the landed cost it suggests. It builds the suggestion from the line price as it sits on the order, and on an order placed in dollars that price is still in dollars, so on a foreign-currency delivery you check the suggested figure and type the store-money landed cost yourself before saving it. The rate the app freezes is the ECB's reference rate rather than the one your bank gave you, and the spread between the two is not measured anywhere in the app. Duty is still outside the landed figure too, as the other cost pages on this site say, and a correct exchange rate does not close it.
Common questions
My supplier did not raise prices. Why did my cost price change?
Because you pay in one currency and sell in another, and the cost field holds only one of them. Each order converts at the rate of its own day, so an unchanged dollar price lands at a different cost in your own money every time. In the first half of 2025 a 10.00 USD unit went from 110.67 to 94.49 SEK and from 9.69 to 8.47 EUR at the central banks' reference rates, with nothing on the invoice changing.
Which day's exchange rate goes into the cost price, the day I ordered, the day I paid, or the day the goods arrived?
For money paid before you own the goods, the day you paid, for each payment. IAS 21 records a purchase at the spot rate on the transaction date, and IFRIC 22 says that when you pay before you own the goods, the date for that part of the cost is the day of that payment, with a separate date for each advance payment. So a 30 per cent deposit is fixed at the deposit day's rate and a balance paid before shipment at the balance day's. A balance you pay after the goods are yours is different: that part of the cost is fixed at the rate of the day you took the goods on, and whatever the rate does before you pay is a currency gain or loss in the accounts, not a change to the cost of the stock. Ask your accountant whether your local rules say the same.
Should I update Shopify's cost per item every time the exchange rate moves?
No. Stock you have already paid for cost what it cost, and a later rate move does not change that. Update the field when a delivery lands, at the rate you actually paid, blended with what was already on the shelf. Watch today's rate for one thing only: what the next order will cost in your own money, which is a cash question rather than a margin one.
Does a currency move change how much I should order?
Not the quantity. That follows your sales rate and the lead time, and the rate moved neither. It changes the cash the order takes, in either direction, and how much of your money a minimum order value stated in dollars now represents. Budget the next order at today's rate, not at the rate buried in a cost field typed months ago.
Can I record the exchange rate in Shopify?
Not in the cost field. It holds one number and no rate or date, and the inventory item behind it carries no cost history. Keep the rate and the date with the purchase order, in whatever system holds your orders, and put the store-money figure into Shopify when the goods land.
Is a currency move the same as a supplier price increase for my margins?
The arithmetic is the same: old stock at one cost, new stock at another, and a weighted average that walks between them. The difference is in the shape. A currency move shifts every product bought in that currency by the same percentage on the same day, and it runs in both directions. It also comes with no invoice and nobody to negotiate with. The ranking among your imported products does not change, the gap between them and your domestic products does, and the only way to see it is to write down the rate.
Sources
Every source below was opened and read on the date shown against it. Rules, rates and schedules change, so check the current page before you act on a number that matters. If anything here is out of date or wrong, tell us and we will correct it.
- European Central Bank, euro foreign exchange reference rates, daily USD, SEK, NOK and DKK series for 2 January to 1 July 2025 (ECB Data Portal API, CSV) (read 28 September 2026)
- European Central Bank, US dollar (USD) euro reference exchange rate page (read 28 September 2026)
- Sveriges Riksbank, SWEA API, series SEKUSDPMI (USD/SEK), 2 January to 1 July 2025 (read 28 September 2026)
- Sveriges Riksbank, FAQ on new publication time and new source for exchange rates (rates set by the ECB and converted to kronor since 27 November 2023) (read 28 September 2026)
- IFRS Foundation, IAS 21 The Effects of Changes in Foreign Exchange Rates, 2021 issued edition, paragraphs 21 to 23 (read 28 September 2026)
- IFRS Foundation, IFRIC 22 Foreign Currency Transactions and Advance Consideration, 2021 issued edition, paragraphs 8 to 9 and A1 (read 28 September 2026)
- Danmarks Nationalbank, Exchange rates (the krone's central rate against the euro) (read 28 September 2026)
- Shopify Help Center, Product details page (what the cost per item field contains) (read 28 September 2026)
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. Why we are building it.
Related reading
- Your supplier raised prices, and what it does to your numbers
- What a unit actually costs you
- How to check your COGS in ten minutes
- The cost price nobody ever updates
- How much cash the next container needs
- Shopify replenishment, end to end
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.