The dashboard says the month is working: orders every hour, revenue ahead of last month, maybe a record day in the middle of it. The bank account disagrees. After the suppliers, the ad platforms and the VAT you set aside, there is somehow less in it than there was on the first, and the question stops being polite: where is the money actually going? This post is that audit, in the order the euros leave, with real numbers at every step, and it ends at the one habit that makes the question answerable every morning instead of once a quarter in a panic.
- Your shop's dashboard reports the money arriving with real precision; four of the costs that decide profit have no field in it at all.
- Followed all the way down, an €85 order on the example store keeps €23,43 once goods, parcel, payment fee and its share of the ad budget are out, before rent has taken anything.
- Even a genuinely profitable month can drain the account: refunds land weeks later, stock is paid for before it sells, the VAT in your revenue was never yours, and payouts lag sales.
- The difference between a profit problem and a timing problem is decided by one discipline: a P&L computed per day, with every cost on the day it belongs to.
The dashboard shows the half that arrives
Shopify measures incoming money superbly: sessions, conversion, orders, gross sales, all live and all accurate. What it has no field for is most of what that money is already committed to. Your unit costs are a single optional field with no history. Your shipping contract, your pick and pack, your packaging: absent. Your payment fees: charged by the gateway but never lined up against profit. Your ad spend: sitting in three other dashboards, each claiming credit. The full inventory of that blind side is its own article, what Shopify Analytics does not tell you; the short version is that a revenue dashboard cannot say what a month kept, only what it took.
This is not a flaw being hidden from you; it is scope. Shopify is the system of record for the sale, and the sale is the one moment when money moves toward you. Everything after that moment, the supplier invoice, the carrier bill, the gateway statement, the ad platform charge, happens in other systems on other days. The dashboard is telling the truth about its half. The mystery lives entirely in the half nobody assembled.
Where the money goes first: the four silent costs
The goods are the biggest single leak and the easiest to misjudge. Most operators know their headline purchase prices and almost nobody knows their current blended cost share, because supplier prices creep one product at a time. Worse, a product with no recorded cost silently reports a 100% margin, so the worse your cost data, the better the month looks. If your cost records live in an old spreadsheet and three email threads, assume the dashboard's implied margin is flattered.
Fulfilment leaks per parcel, not per euro. The label, the picker's minutes, the box and the filler cost roughly the same whether the parcel holds €30 or €300, which is why a falling basket quietly destroys margin while revenue holds. Split shipments double the leak: the second box carries its own label, picking and packaging, and any per-order average hides it. Most merchants can name their carrier's headline rate; very few can name their true all-in cost per parcel.
Payment fees look small and compound strangely. Every gateway takes a percentage plus a fixed fee, and the fixed part is a percentage in disguise: twenty-five cents is 1,25% of a €20 order and noise on a €250 one. An order paid with two methods, gift card plus card, is charged two fixed fees. And the fee is charged on the gross amount including VAT and shipping, so it is always slightly bigger than the mental arithmetic suggested.
Advertising is the leak with the best PR. Each platform reports a return on ad spend computed from the conversions it claims, every platform claims every conversion it can plausibly see, and the same order is routinely claimed twice or three times. Add the claimed revenues together and they exceed what the store took. Meanwhile the actual cash left your account daily, unallocated to any order, which is exactly why it never appears between a dashboard's revenue and your bank balance.
Follow one €85 order out of the account
Numbers make the leak visible, so here is one order on the example store the calculators on this site use: an €85 basket, stated net of VAT, from a store doing about 706 orders a month on a €15.000 ad budget with €7.000 of monthly fixed costs.
| Step | Amount | |
|---|---|---|
| 16 | Basket, net of VAT | €85,00 |
| 17 | Goods, at a 38% cost share | −€32,30 |
| 19 | CM1: after the products | €52,70 |
| 21 | Parcel: pick, pack, box, label | −€6,40 |
| 23 | Payment fee | −€1,62 |
| 25 | CM2: what the order contributed | €44,68 |
| 27 | Share of the month's ad budget | −€21,25 |
| 29 | CM3: what the customer contributed | €23,43 |
About 72% of the revenue left before a single fixed cost was paid, and every euro of it left for a reason the dashboard never showed. Note what the walk did NOT require: no accountant, no attribution model, no software. Five numbers you can assemble for your own best seller in an afternoon, and the per-unit version is exactly what a profit margin calculator does in ten minutes.
The month on paper, and the account that still fell
| The month | Amount | |
|---|---|---|
| 14 | Net revenue, 706 orders | €60.000 |
| 29 | CM3, about €23,43 per order | ≈ €16.500 |
| 31 | Fixed costs | −€7.000 |
| 33 | Operating profit | ≈ €9.500 |
Here is the part that breaks people's trust in their own numbers: that month is real, the €9.500 is real, and the account can still finish lower than it started. Profit and cash run on different calendars, and four mechanisms cause almost all of the divergence.
The four timing traps, properly
Refunds arrive late. A return from a strong week lands two or three weeks after its order, so a good month's refunds drain a mediocre month's account. The spot check: compare this month's refund total against this month's revenue and against last month's; if refunds track last month's stronger sales, the drain is inherited, not current. The reporting rule that keeps this visible is booking refunds to the day they were issued, never back against the original order, because backdating them makes last month improve every time this month bleeds.
Stock is paid for before it sells. The reorder your growth forced was paid this month; the revenue it produces arrives over the next quarter. This is the single biggest reason growing stores are profitable and broke at the same time, and it scales with success: double your growth rate and the gap widens. The spot check is one number: what did you transfer to suppliers this month? Put it next to the month's profit and the bank movement usually stops being mysterious immediately.
The VAT in your revenue was never yours. Roughly a fifth of every gross euro is collected on behalf of the tax authority, and it sits in your account looking spendable until the declaration collects it in a lump. A store that reads its bank balance as its money is structurally overestimating itself by the VAT rate. The fix is mechanical: treat the VAT share as already gone on the day of the sale, in a separate account if discipline needs help.
Payouts lag sales. The gateway pays out days after the customer paid, holds reserves on top, and pauses payouts entirely when something trips a risk rule. A spike weekend reads as an empty Monday, and a big campaign's cash arrives after the campaign's invoices. This is the smallest of the four traps, but it is the one that makes daily bank-balance-watching so misleading: the balance answers 'what has settled', never 'what did we earn'.
Profit problem or timing problem? The diagnosis
The two need opposite responses, which is why the diagnosis matters more than the panic. If the store keeps too little per order, the levers are price, goods, parcel, fees and ad efficiency, and no amount of cash-flow discipline fixes them. If the days are genuinely profitable while the account falls, the drain is timing, and the fix is planning: a VAT account, a reorder calendar, a refund reserve.
| Symptom | Points to | Check first |
|---|---|---|
| Revenue up, margin flat or down | a cost problem | blended cost share of the goods; basket size against per-order costs |
| Margin fine on paper, account falling | a timing problem | supplier transfers this month; refunds inherited from last month; VAT set aside or not |
| Bank fine, but 'profit' feels invented | missing cost data | products without a recorded unit cost; ad spend not lined up against orders |
| Every month a surprise, both directions | recognition chaos | refunds booked to the wrong day; fixed costs landing as lumps |
You can only run that table on a statement computed per day, on the days the amounts belong to: refunds on the day they were issued, ad spend on the day it was spent, fixed costs spread across the days they cover. On that basis, the CM3 line against a single day's share of fixed costs answers the profit question every morning, and whatever gap remains between profit and the bank is, by elimination, timing.
The week-one checklist
- Day one: take yesterday's orders and strip the VAT, because margins are only real against net revenue, and the gross figure flatters everything by the VAT rate.
- Day one, same sheet: price the goods you actually shipped, at what they actually cost you now, not at the price on last year's supplier list. Every product without a known cost goes on a separate list; that list is a finding in itself.
- Day two: add the parcels at your true all-in cost (label plus picking plus box), and the payment fees at each gateway's percentage plus fixed fee on the gross.
- Day three: subtract yesterday's ad spend from every platform, taken from the platforms' billing pages, not from their attributed-revenue screens.
- Day four: put the result against one thirtieth of your monthly fixed costs. That line is the day's honest bottom line.
- Day five: list this month's supplier transfers and the VAT share of the month's takings next to the profit figure. The gap between profit and the bank is now itemised instead of mysterious.
- Keep it daily for two weeks before changing anything: patterns, not single days, are what you act on.
Three questions that always come next
Is my niche just low margin? Sometimes, but check before concluding: most 'low margin niches' turn out to be normal-margin niches with an untracked cost, usually the goods share drifting upward or a basket too small for its parcel. The walk above tells you which. A genuinely thin niche shows thin numbers at every step; a leaky store shows one step eating everything.
Should I pause the ads? Not from a bank balance, and not from a platform's own report either. Decide it from the walk: if an order's contribution after goods, parcel and fees is bigger than what the order costs to win, the ads are building profit even while the account tightens, and pausing them shrinks the business to protect the cash. If it is smaller, every ad euro buys a loss and the pause is overdue.
Do I need an accountant or a profit tracker? Both, for different questions. The accountant owes the state a correct year; their numbers arrive months later and follow invoice logic. The question this post answers, what did yesterday actually earn, needs order-level numbers on operating logic, daily. One does not replace the other, and confusing the two is how stores end up with perfect books and no idea whether Tuesday made money.
See it every morning instead of once a quarter
The checklist above works, and it is also, honestly, a spreadsheet you will stop enjoying by the second week: every day it needs yesterday's orders re-fetched, refunds re-checked, costs re-priced, and one skipped Tuesday quietly ends the habit. That is the gap nouz exists for: a Shopify profit tracker that rebuilds the exact statement above every night from your own orders, costs and ad accounts, books every amount to the day it belongs to, flags missing costs instead of guessing them, and never lets a closed day change.
The mystery in the question you typed does not survive contact with a number that is computed daily and stays put. Where the money is going has a boring, itemised, per-day answer, and once you can read it at breakfast, the bank account goes back to being a consequence instead of a puzzle.