Free · Private · No sign-up

Are your ad sales actually making money?

ROAS hides product cost, fees, shipping and refunds. Set your margin, then optionally import your account — it runs your real campaigns through that margin and tells you which ones actually profit.

✓ Nothing uploaded ✓ Results as you type ✓ Built on 14 years of PPC

Step 1 — set your margin

What you charge per sale

Your typical order value. Used for the single-sale check, and as order value if an imported file has no revenue column.

$

What the product costs you

Don't know the exact cost? Use the markup you sell at — most people know that.

2.5× cost

What you pay in ads per sale

Your cost per purchase (CPA). Only used for the single-sale check below — the import uses your file's real spend.

$

Payment fees 3%

Shipping you absorb per order

$

Refund / discount allowance 2%

Step 2 — import your account (optional)

Drop a performance report here

A performance report (Cost, Conversions, ideally Conv. value). Add a GA4/analytics revenue export and it uses your true revenue instead of the ad platform's; add a bulksheet and it flags which losers are on autopilot. Matched by campaign name.

? Performance report ? Revenue (GA4 / analytics) ? Bulksheet
How to download each file (Google Ads, GA4, Meta)

Performance report — Google Ads

Performance report — Meta Ads (if you run Meta)

True revenue — GA4

Bulksheet — Google Ads Editor (optional)

Files are matched by campaign name, so the names need to line up across files — your Google Ads campaign name should match GA4's Session Google Ads campaign, and a Meta campaign matches GA4's Session campaign via your UTM. Paths follow the current interfaces; if something's moved, search the platform's own help.

Can't get the revenue to line up?

This only stitches if your campaign names match across Google Ads, GA4 and Meta — and in real accounts they often don't: UTMs, renames, and inconsistent naming leave your revenue stranded from your spend. Mapping it back to the right campaigns is fiddly, one-off work.

I can clean and align your exports so they stitch correctly — a quick paid data-prep job. Send me what you've got.

Get your data aligned

DM @AdSpendAutopsy

How this is worked out
WhatHow it's worked out
Your marginFrom the markup (cost = price ÷ markup, so 2× = 50%) or your exact cost, minus payment fees, refund allowance and shipping.
Profit per saleprice × margin − your CPA. Break-even ROAS = price ÷ (price × margin).
Revenue used (import)Your GA4 / analytics export first (matched by campaign name), then the ad platform's Conv. value, then orders × your price.
True profit per campaignrevenue × your margin − shipping × orders − ad spend.
ROAS mirageFlagged when ROAS looks positive but true profit is negative — i.e. ROAS sits below your break-even ROAS.
Revenue gapWhen both analytics and ad-platform revenue are present, shows how far the platform over- or under-reports — the attribution gap behind an inflated ROAS.
PrivacyEverything is computed in your browser from the numbers you enter and the files you pick. Nothing is uploaded.

Margin thinner than you thought?

This tells you which campaigns lose money after real costs. It won't tell you why, or how to get them under break-even without killing the volume that works.

That's a 30-minute teardown with someone who's run accounts for 14 years. Send your numbers and I'll show you where the room is.

Get a teardown

DM @AdSpendAutopsy

Profit, not just ROAS

A high ROAS can still lose money. This free Google Ads break-even calculator applies your real margin — after product cost, payment fees, shipping and refunds — to show which campaigns actually profit, and the break-even ROAS each one needs to clear. Start with a simple “I sell at ~2× cost” input, then import your Google Ads performance and GA4 revenue to see true profit per campaign.

Because the maths runs entirely in your browser, nothing is uploaded. Use it to catch the “looks fine on ROAS, loses money” campaigns before they drain the budget.