ROAS Calculator
Turn the return-on-ad-spend figure the platform reports into one your accounts would recognise: corrected for margin, refunds and incrementality, against the break-even ROAS your margin actually requires. Runs entirely in your browser. Nothing is uploaded.
Version 1.0.0 · Updated Aug 20, 2026
Use ROAS Calculator now
Runs in your browser · nothing is uploaded
This in-page version cannot save your work between visits — browser storage is switched off inside the sandbox. The full version saves your work locally after download.
Overview
Frequently asked questions
How does the ROAS Calculator licence work?
It is a one-time purchase for a downloadable tool — no subscription. You buy it once and the file is yours to keep and use.
Can I try the ROAS Calculator before buying?
Yes. Use the Try online button for a fully interactive demo with sample data already loaded — nothing to install and nothing is saved.
Can I import my data from a spreadsheet?
Yes. Use the Spreadsheet template button to save a CSV with the right headings, fill it in Excel or any spreadsheet, then Import spreadsheet to load it back. The file is read in your browser — nothing is uploaded.
Does my data stay private?
Yes. The tool is a single HTML file that runs entirely on your computer and makes no network requests, so nothing you enter is ever uploaded or shared.
Do I need Excel or any other software?
No. It replaces the spreadsheet template entirely: open the file in your browser (Chrome, Edge, Firefox or Safari) on Windows, Mac, Linux or a tablet, and start working.
How to use ROAS Calculator
The complete in-tool guidance, reproduced here so you can read it before you download.
What this tool does
CM8-369 takes the return-on-ad-spend figure your advertising platform reports and turns it into one your accounts would recognise. It applies the corrections that can be quantified — margin, refunds, fees and measured incrementality — and compares the result against the ROAS your margin actually requires you to reach.
Everything runs inside this single file — no account, no upload, no network request of any kind.
Why the reported figure is not the real one
A platform reports revenue it can claim, within its own attribution window, on its own definition. It does not know four things, and every one of them makes its figure too high:
- Your gross margin. Revenue is not profit.
- Your refunds. Revenue that came back is not revenue.
- Your fees. Agency and tool costs never appear in a platform's ROAS.
- Whether the sale would have happened anyway.
None of this is the platform being dishonest — it is measuring what it can see. The mistake is treating what it can see as the whole answer.
Break-even ROAS
Break-even ROAS = (1 + fee rate) ÷ gross margin ÷ (1 − refund rate)
This is the number most advertisers cannot state for their own business, and everything else depends on it. At a 60% margin you need about 1.67× to stand still. At 25% you need 4×. At 15% you need nearly 7×, which is why advertising rarely works on thin margins however good the targeting.
The reference table prints break-even at every common margin. It is worth pinning up: it turns "our ROAS is 3" from a fact into a question about which product mix was sold.
The margin correction
Set a default margin in Settings and override it per campaign where the product mix differs. That override matters more than it sounds: discount and clearance campaigns sell a worse mix, so the campaign with the highest reported ROAS often has the lowest margin behind it.
The sample has exactly this. Clearance shopping reports 3.6×, which sounds respectable, and sits below break-even because the stock carries 28% margin rather than 61%.
Refunds
Entered per campaign as a share of attributed revenue, because the variation between channels is large and rarely compared. Prospecting on social routinely refunds at two or three times the rate of branded search, for the obvious reason: it sells to people who were not looking.
Refunds raise break-even as well as reducing revenue, which is why they appear on both sides of the calculation.
Fees
Agency retainers, management percentages and platform tools are real money spent to run the advertising, and no platform includes them. A 15% management fee raises break-even ROAS by 15%, which is usually enough to move a marginal campaign onto the wrong side of the line.
Incrementality, and why the tool will not guess it
The hardest correction, and the largest. Some of the revenue a campaign claims would have arrived without it — most obviously on brand search, where you are paying for people who typed your name, and on retargeting, where you are paying to reach people who already visited.
Incrementality is a measurement, not a setting. The only way to know is to run a test: hold out a region or an audience, turn the campaign off there, and see what happens to revenue.
The tool therefore assumes 100% incremental unless you have tested, which is deliberately the least flattering possible treatment of your evidence. It will not accept an incremental share on a campaign not marked as tested, and it will not accept a tested campaign without the test written down in the notes. An assumed uplift is a way of getting the answer you wanted.
The sample shows why it matters: brand search reports 17× and measures 21% incremental, which brings it to roughly 3.6× — still good, and a fifth of what the platform claimed.
Attribution windows
Recorded per campaign because comparing a 1-day window against a 28-day one is not a comparison. A longer window always reports more revenue for the same advertising.
View-through attribution — crediting a campaign when somebody saw an advert and did not click — is the most generous of all, and a campaign using it that has never been tested is flagged on that basis alone. It may still be working. Nothing in the reported figure tells you either way.
Profit ROAS
Revenue after refunds = revenue × (1 − refund rate) Incremental revenue = that × incremental share Gross profit = that × gross margin Profit ROAS = gross profit ÷ (media spend × (1 + fee rate)) Profit = gross profit − spend including fees
Profit ROAS is scaled so that 1.0 means the advertising exactly paid for itself in gross profit. Above 1.0 it contributed; below it, every additional unit spent made things worse. That is a cleaner reading than a reported multiple, which means something different for every business.
Multiples against money
Do not manage by the multiple alone. A campaign at 8× on a small budget contributes less than one at 1.4× on a large one, and cutting the second to protect an average is how advertisers reduce profit while improving their reporting.
The profit chart is in money for that reason. Use the multiple to decide whether a campaign should exist, and the money to decide what to do next.
What this does not do
- It cannot measure incrementality. It records what your test measured, and refuses to substitute a guess.
- It stops at the first purchase window the platform reports. A customer who buys again next year is not in here — that is a lifetime value question.
- It cannot see one campaign helping another. Prospecting that generates the retargeting audience looks worse here than it is, and retargeting looks better.
- It has no view about diminishing returns. A campaign at 4× may still be at 2× after you double it.
- It assumes attributed revenue is at least approximately real. Where tracking is broken, no correction here fixes it.
Printing and sharing
The Report tab prints the tiles, charts and both tables with a title block you fill in. The workings table walks from reported ROAS to profit in one line per campaign, which is the fastest way to settle a disagreement with whoever is quoting the platform figure.
Saving your work
Campaigns are held in this browser, on this computer, and stay there between visits. Use the backup button to write a JSON file you control.
Accuracy & disclaimer
Every figure here is one you entered, including the reported revenue, which came from a system with its own definitions. The tool applies the stated corrections exactly and takes no view on whether a campaign should run.
Where this fits
Part of Paid Media in Marketing & Growth.
Related tools
Work out cost per lead and cost per acquisition, then break it apart: what you pay for a thousand impressions, what share click, and what share convert. Shows which of the three is actually driving the cost. Runs entirely in your browser. Nothing is uploaded.
Plan where the media budget goes, what each channel is expected to return, and whether spend is pacing to plan. Shows what the whole plan delivers against the target before you commit. Runs entirely in your browser. Nothing is uploaded.
Before spending anything, work out what a campaign has to achieve to break even: the ceiling on cost per click, the conversion rate needed, and the volume that makes the fixed costs worthwhile. Runs entirely in your browser. Nothing is uploaded.
Plan what gets published and when, keep the cadence steady, and see which topics and buying stages you are covering — and which you have quietly stopped writing for. Runs entirely in your browser. Nothing is uploaded.
Map every search term to the one page that should own it: find the terms with no page, the pages competing with each other, and rank the work by the traffic value actually within reach. Runs entirely in your browser. Nothing is uploaded.
Judge content on what it returns over its whole life rather than its first month: cost per visit falling with age, pieces still growing against pieces decaying, and which ones are worth updating. Runs entirely in your browser. Nothing is uploaded.