Plug in your numbers
Free chargeback cost calculator
Enter your AOV, dispute rate, and processor fee. The calculator returns the per-dispute true cost and the monthly drag on your margin. No signup, runs in your browser.
Open the calculator →
// 02Refund transaction fees
This is the one that refunds your customer and refunds you twice. When you refund an $80 order through Shopify Payments (or Stripe, or most processors), the customer gets their $80 back — but the original transaction fee stays with the processor. On a 2.9% + 30¢ schedule that's $2.62 per $80 refund, gone for good.
For most stores this is invisible because it nets out against the gross fee total in your monthly Shopify Payouts statement. You see "fees: $X" and you don't notice that $X is bigger than (revenue × 2.9% + orders × $0.30) — because returns inflated it.
At a 6% return rate on a $50K/month store, that's roughly $98 a month evaporating to processors with nothing to show for it. Small line on its own; non-trivial across a year, and almost no profit app deducts it.
// 03Shipping insurance you opted into
Route, Navidium, Corso, Order Protection — all variations of the same model. The customer pays a small fee at checkout (call it $1.50 on an $80 order). You collect that fee as part of the order total. Then the insurer takes their share, and you keep the spread.
The trap: Shopify treats the full $1.50 as revenue. Your profit app may treat the full $1.50 as revenue. Neither subtracts the carrier's cut — typically $0.80–1.20 of the $1.50, depending on your provider's rate card. You're showing the gross instead of the net spread, and on a 200-order/month store that's $160–200 a month of phantom revenue inflating reported margin.
// 04Currency conversion on cross-border sales
If you sell internationally through Shopify Payments, every non-USD transaction passes through Shopify's currency conversion. The published rate is 1.5%, but the FX spread itself adds another 0.5–1% on top of mid-market. So a £80 sale priced as $100 in your store actually nets you about $97.50 after conversion — not $100.
Shopify Analytics shows the gross USD-equivalent. Most profit apps inherit Shopify's number. If you do 15% of your revenue cross-border on a $50K store, that's $112–150 a month in FX cost that doesn't appear anywhere on your dashboard.
// 05App subscriptions, amortized per order
Most stores don't deduct app subscriptions from per-order economics at all. They're treated as a fixed overhead that shows up once a month on the credit card bill. Fine for accounting; misleading for unit economics.
Sit down and add up your stack: a profit app ($30–50), a review platform ($30), an upsell app ($50), a shipping app ($25), an email tool ($45), one or two niche tools ($30 each). That's $240/month easily. On 1,200 orders that's $0.20 per order — about a quarter of a point of margin on a $40 AOV.
It doesn't move the needle on its own. It does shift the answer to "is this product profitable" by a meaningful amount on lower-AOV SKUs. A $15 SKU with a 30% gross margin loses 1.3 points of margin to your app stack alone. You should know that before you decide whether to keep selling it.
// 06Return processing
The return label is the obvious cost. The hidden costs are everything around it: warehouse labor to receive and inspect (~$3), restocking time ($1–2), the write-off on items that come back damaged (a function of return rate × damage rate × COGS), and the customer service time spent processing the RMA.
For a typical apparel store running an 8% return rate, the all-in cost per return is usually $6–12 once you include damaged write-offs. That's another half a margin point that almost nobody books.
// 07Ad platform reporting inflation
This isn't a small line — it's the worst hidden cost on the list because it doesn't just under-report margin, it changes which products you scale.
iOS 14.5 was four years ago and Meta's self-reported ROAS still runs 15–30% inflated relative to server-side conversion data. A campaign showing 4× ROAS in Ads Manager is often closer to 3× when reconciled against actual orders attributed by your store. TikTok and Pinterest are similar. Google is closer but not exact.
You compound on the error. You scale spend on the campaign that "looks like 4× ROAS." Two months in, the store-level net margin doesn't move. You don't know which campaign is the leak because you've been managing to a number the platform itself reports.
The fix is server-side conversion tracking and reconciliation against actual order data. Doing it well is most of the value in a real profit dashboard at this point — not the COGS line, the ad attribution.
Margin probably didn't change. Visibility did.
The compound effect
Take a $50K/month store with a 1% chargeback rate, a 6% return rate, 15% cross-border revenue, an $80 AOV, a $240 app stack, and Meta as the primary ad channel running $6,000/month in spend. Sum the gaps:
- Chargebacks under-reported: ~$2,200/mo
- Refund fees not deducted: ~$98/mo
- Shipping insurance spread overstated: ~$180/mo
- FX cost not visible: ~$120/mo
- App stack not amortized: ~$240/mo
- Return processing under-counted: ~$280/mo
- Ad-platform inflation (25% over-report on $6K): ~$1,500/mo
Total: roughly $4,600/month of margin missing from the dashboard. On $50K, that's nine points of margin sitting outside the report you make decisions on.
It's also why I'm cautious about apps (including this one) that tell you margin is up four points in a quarter. Margin probably didn't change. Visibility did.
What to do about it
If you're going to do nothing else after reading this, do two things:
- Pull one chargeback dispute from the last 90 days and walk through the full math on it. Use the chargeback cost calculator for the structure. Your number will surprise you.
- Add one column to whatever weekly P&L spreadsheet you keep, called "fees on refunds." Compute it by hand for one month. Decide whether it's worth automating.
If the gap turns out to be material, compare the apps and pick whichever closes the specific gaps that matter to your store. NeoProfit handles per-shipment shipping and chargeback math the way they actually behave, but the bigger point is just that the gap exists and is bigger than most operators expect.
The number on your dashboard is the number you'll make decisions against. Make it real.
— Neo