"We did $48k last month at a 55% gross margin" and "there is no money in the account" are both true in thousands of stores at the same time. That's not a bookkeeping mystery — it's the gap between the profit you see (revenue minus COGS, roughly) and the profit you keep (after ads, fees, refunds, shipping, subscriptions and returns, per order, per product).
Here are the five leaks that cause almost all of it, in the order they usually bite.
1. Ad-spend creep — the silent per-order tax
Ads are the only cost that can grow faster than revenue while everything looks great. CPMs rise, audiences fatigue, and your cost to acquire an order drifts from $12 to $17 without a single alarming dashboard. If your contribution per order is $14.50, that drift is the whole business.
The tell: revenue up, ROAS "fine", cash flat. The fix starts with one number — your break-even ROAS — and the discipline of judging every campaign against it, not against a generic "3× is good". (Full walkthrough: ROAS vs POAS.)
2. The fee stack — 3% becomes 8% when nobody's counting
Card processing is only the visible part: add the third-party gateway surcharge (up to 2% extra if you're not on Shopify Payments), the plan subscription, and the app stack that grew one "$9/mo" at a time. On a $60 AOV store doing 300 orders, fees plus subscriptions routinely eat 4–6% of revenue — more than many stores' entire net margin.
Ten seconds in the Shopify fee calculator shows your real effective rate, including the plan and the gateway surcharge.
3. Refund lag — this month's sales, next month's clawback
Refunds arrive 1–4 weeks after the revenue they cancel, so every monthly snapshot flatters you: it contains this month's full sales but only part of this month's eventual refunds. A 5% refund rate quietly removes a quarter of a 20%-margin store's profit — and it removes it after you already paid the ad cost and the processing fee for that order.
4. The negative-margin SKU hiding in a healthy average
Store-level margin is an average, and averages hide the one product that loses money on every unit — usually something heavy (shipping), discount-prone, or acquired through expensive ads. A store with three SKUs at +38%, +22% and −12% can show a comfortable blended margin while the third SKU converts every marketing win into a loss.
This is the single most common thing Marginflow's AI analyst flags on a newly connected store: "Product X has negative contribution after ad spend — every order loses money." You can't see it without per-product costs; with them, it's obvious in a day.
5. COGS drift — your margins were true last year
Supplier price increases, freight surcharges, currency moves, packaging upgrades — unit costs drift up in small steps, while the COGS numbers in your spreadsheet (or your app) stay whatever you typed in when you set things up. If you haven't re-verified per-unit costs in six months, your "margin" is a historical document.
The 15-minute audit
- Pick your top 5 products. For each, write down current price, real COGS (ask your supplier, not your memory), shipping, and fee estimate.
- Run each through the profit calculator with your actual per-order ad spend. Note which are under 1.0 POAS.
- Compute break-even ROAS per product with the break-even calculator and compare against each campaign's actual ROAS.
- Check your fee rate in the fee calculator — including the plan and any gateway surcharge.
- Pull last quarter's refunds by product. One SKU usually owns most of them.
Ninety percent of the time, this surfaces one specific leak with a name on it — a SKU, a campaign, or a fee — and fixing that one thing moves more money than any growth tactic would have.
If you'd rather have this run continuously instead of quarterly: that's literally what Marginflow is. It connects to Shopify, computes true per-order profit after every cost, and the AI analyst tells you where the leak is before the month ends — not after.