1. Scope
Converts ad spend, impressions, clicks, and conversions into ROAS, break-even ROAS, profit after spend, and the conversion rate required to hit a target. It does not include platform fees, incrementality adjustments, or multi-touch attribution.
2. Inputs and outputs
Inputs
- adSpend number (currency)
- clicks number
- conversionRate percent
- averageOrderValue number (currency)
- grossMargin percent default: 60
Outputs
- conversions
clicks × conversionRate.
- revenue
conversions × averageOrderValue.
- roas
revenue / adSpend.
- breakevenRoas
1 / grossMargin.
- profit
revenue × grossMargin − adSpend.
Engine source: src/lib/ad-spend-roas-calculator/engine.ts
3. Formula / scoring logic
roas = revenue / ad_spend
breakeven_roas = 1 / gross_margin
profit = revenue * gross_margin - ad_spend
target_cvr = (ad_spend * target_roas) / (clicks * aov) 4. Assumptions
- Every reported conversion is incremental. In reality, branded search and retargeting cannibalise organic — the tool overstates ROAS for those campaigns.
- Gross margin is the product-level margin, not a channel blended margin.
- Platform fees, ad agency fees, and returns are assumed to be zero or already netted.
5. Data sources
6. Known limitations
- ROAS is not profit. A 4:1 ROAS at 25% margin breaks even; at 60% margin, it's highly profitable. Always check against breakeven ROAS.
- Incrementality requires a hold-out test (geo-split or audience hold-out). Without it, reported ROAS can overstate channel value meaningfully.
7. Reproducibility
Input
spend = $5,000, clicks = 5,000, cvr = 2%, aov = $75, grossMargin = 60%.
Expected output
conversions = 100, revenue = $7,500, roas = 1.5×, breakeven_roas ≈ 1.67×, profit = -$500 (loss).
8. Change log
- 2026-04-24 methodology page first published.
Worked example
Run live against the same engine this site ships
(/engines/ad-spend-roas-calculator.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- ad_spend_roas_calculator
- ad_spend
- 5000
- revenue_generated
- 20000
- product_cost
- 20
- target_profit_margin_percent
- 20
Output
- revenue
- 20000
- actualRoas
- 4
- breakEvenRoas
- 1
- profitAfterAdSpend
- 14980
- profitMarginPercent
- 74.9
- targetCpa
- 15980
- requiredConversionRate
- 31.29
- roasHealth
- Excellent
- guidance
- ROAS of 4× is well above break-even. Scale budget confidently while monitoring marginal ROAS at higher spend levels.
- cogs
- 20
- grossProfit
- 19980
Frequently asked questions
- What does the Ad Spend / ROAS Calculator calculate?
- Converts ad spend, impressions, clicks, and conversions into ROAS, break-even ROAS, profit after spend, and the conversion rate required to hit a target. It does not include platform fees, incrementality adjustments, or multi-touch attribution.
- What inputs does the Ad Spend / ROAS Calculator need?
- It takes 5 inputs: adSpend, clicks, conversionRate, averageOrderValue, grossMargin (default 60). Outputs returned: conversions, revenue, roas, breakevenRoas, profit.
- What formula does the Ad Spend / ROAS Calculator use?
- The exact computation is: roas = revenue / ad_spend; breakeven_roas = 1 / gross_margin; profit = revenue * gross_margin - ad_spend; target_cvr = (ad_spend * target_roas) / (clicks * aov)
- Can I verify the Ad Spend / ROAS Calculator with a worked example?
- Yes. With spend = $5,000, clicks = 5,000, cvr = 2%, aov = $75, grossMargin = 60%. the tool returns conversions = 100, revenue = $7,500, roas = 1.5×, breakeven_roas ≈ 1.67×, profit = -$500 (loss).
- Where does the Ad Spend / ROAS Calculator get its benchmark data?
- Reference data is sourced from: US FTC ad-attribution guidance (Endorsement Guides) (as of 2023).
- What can the Ad Spend / ROAS Calculator not tell me?
- Known limitations: ROAS is not profit. A 4:1 ROAS at 25% margin breaks even; at 60% margin, it's highly profitable. Always check against breakeven ROAS. Incrementality requires a hold-out test (geo-split or audience hold-out). Without it, reported ROAS can overstate channel value meaningfully.