B2B measurement tool

ROAS calculation: formula, examples and B2B calculator

Divide the revenue from your ads by what you spent on them. $40,000 of revenue on $10,000 of spend is 4.00x, or 400%. See the steps.

Quick calculator

Calculate or solve a target

Recognized revenue ROAS3.85x · 384.62%

$75,000 ÷ $19,500

Status
Quick calculation
Cohort and evidence
Not reconciled
Provenance
Manual inputs

Next: Load the synthetic example or import a complete redacted record.

Import a record or exact build-prompt response

Paste a canonical record, a COMPLETE build-prompt response, or a hash-bound export envelope. Existing decisions are recomputed.

On this page
  1. How to calculate ROAS
  2. Use the calculator
  3. Which return should a B2B company use?
  4. Reconcile one cohort before trusting the ratio
  5. Apply spend and revenue adjustments explicitly
  6. Check source and join coverage
  7. Result states
  8. Synthetic example: mature B2B cohort
  9. Synthetic example: cohort still open
  10. Synthetic example: partial finance join
  11. How to hand the calculation to finance and revenue operations
  12. Quick answers
  13. Related resources
  14. Sources and viewing notes

How to calculate ROAS

ROAS formula

ROAS = ad revenue / ad spend
  1. Choose the campaigns and dates you are measuring.
  2. Add up the ad spend for those campaigns and dates, after any credits or refunds.
  3. Add up the revenue from the customers those same campaigns produced, after refunds.
  4. Divide revenue by spend. The result is your ROAS as a multiple.
  5. Multiply by 100 if you want a percentage.
Ad spendRevenueCalculationROASPercentage
$2,000$1,000$1,000 / $2,0000.50x50%
$5,000$15,000$15,000 / $5,0003.00x300%
$10,000$40,000$40,000 / $10,0004.00x400%
$19,500$75,000$75,000 / $19,5003.85x384.62%

4:1, 4.00x and 400% are the same result written three ways. Google Ads sets targets as a percentage: $5 in sales for each $1 of ad spend is a 500% target ROAS.

A 4:1 ROAS means the selected return basis contains $4 for every $1 of matching ad spend. It does not say that the company earned $3 of profit. Payroll, agency fees, software, cost of service and other expenses may sit outside this calculation.

In B2B, a deal can close months after the click, so the ad platform and finance may report different revenue for the same spend. The division stays the same. What changes is which return you put on top, and this page counts only recognized revenue or collected cash as realized ROAS.

Mistakes that change the answer

  • Mismatched dates: dividing June revenue by June spend when those deals came from a March campaign. Compare them with March spend.
  • Mismatched campaigns: dividing all company revenue by the spend of one channel.
  • Counting open deals: adding pipeline to revenue before those deals close.
  • Mixing sources: using the platform's conversion value and calling it finance revenue.
  • Small samples: at low spend, one deal can swing ROAS, so name the deal count.

Solve for a target

The same arithmetic works in reverse:

required return = target ROAS × net ad spend
allowed ad spend = return / target ROAS

With a $25,000 budget and a 2.5x target, the required return is $62,500. With $62,500 of return and a 2.5x target, the allowed spend is $25,000.

Break-even ROAS

Break-even ROAS is the point where gross profit from the revenue covers the ad spend and nothing else.

break-even ROAS = 1 / gross margin

At a 70% gross margin, break-even is 1 / 0.70 = 1.43x, or 143%. At a 40% margin, it is 2.50x. Below that level, the ads lose money before payroll, agency fees or software. To turn it into a revenue goal, choose Required return in the calculator and enter 1.43 as the target: a $10,000 budget needs $14,300.

This uses only the revenue counted so far. If customers renew later, a low early ROAS can still pay back, so state how many months of revenue you included.

ROAS vs. ROI

ROAS compares revenue with ad spend. ROI takes costs out of the return and compares what is left with the investment. ROI definitions vary, so state which costs you included.

ROI = (gross profit - investment) / investment

Take $40,000 of revenue, a 70% gross margin and $10,000 of ad spend. ROAS is 4.00x. Gross profit is $28,000, so ROI on ad spend alone is ($28,000 - $10,000) / $10,000 = 180%. Add $8,000 of agency fees to the investment and ROI falls to ($28,000 - $18,000) / $18,000 = 55.56%. ROAS stays at 4.00x, because this example leaves agency fees out of ad spend.

Use the calculator

Choose what you want to solve:

  • ROAS from ad spend and return
  • Required return from ad spend and target ROAS
  • Allowed ad spend from return and target ROAS

Then choose the return basis. The calculator keeps four values separate:

  • Recognized revenue ROAS: net recognized revenue divided by matching net ad spend
  • Collected cash ROAS: cash collected divided by matching net ad spend
  • Platform-attributed value multiple: the ad platform's attributed conversion value divided by matching platform spend
  • Open pipeline multiple: open opportunity value divided by matching spend

Open pipeline is never labeled ROAS. It describes deals that may still change or never close.

The workspace shows the calculated result beside its evidence state. It also names the next missing input or source, so a valid ratio cannot hide an immature cohort or incomplete record.

Zero spend has no valid ROAS denominator. The calculator returns INVALID instead of infinity. A missing return stays Unknown; it never becomes $0. An observed $0 return remains a real zero and produces 0.00x when spend is valid.

Which return should a B2B company use?

Original Maestro diagram. Open full size.

Choose the return number that answers the question under review, then name that basis in the result.

Use recognized revenue when the question is how much revenue finance has recognized from the cohort. Finance must apply the company's accounting policy, and the spend must cover the same customers and time period. The IFRS 15 overview explains at a high level that revenue recognition follows performance obligations and the transfer of promised goods or services. Your finance team decides which policy applies to your company and contract.

Collected cash answers a different question: how much cash from the cohort has arrived by the cutoff? Cash timing can differ from revenue timing. IRS Publication 538 gives a narrow US federal tax explanation of cash and accrual methods. It is not a replacement for your accounting policy.

Platform-attributed conversion value is an advertising measurement value. Google Ads explains that advertisers configure conversion values, and that the selected attribution model changes how credit is assigned. Record the platform, conversion actions, attribution model and conversion window beside this number. Keep it separate from finance-confirmed revenue and cash.

Open pipeline is a forecast of opportunities that remain open. Show it as open pipeline / spend. Do not add it to recognized revenue, collected cash or platform value.

Reconcile one cohort before trusting the ratio

Original Maestro diagram. Open full size.

Start with one population. Freeze these fields before comparing spend with return:

  1. Cohort: the accounts, leads, opportunities or customers included.
  2. Spend window: the dates and campaigns that created the matching spend.
  3. Attribution window: the period in which the platform assigns conversion credit.
  4. Outcome cutoff: the last date included for CRM and finance outcomes.
  5. Revenue rule: the exact finance basis used for recognized revenue or cash.
  6. Currency: one currency for every value in the calculation. Normalize foreign-currency amounts before import and record the conversion provenance.

Google Ads defines a conversion window as the period after an ad interaction in which a conversion can be recorded. That window does not tell you when a B2B sales cohort is mature. Use your documented sales-cycle horizon and finance close rule. Show the outcome cutoff and the next observation date.

When the cohort is still open, the calculator can display valid arithmetic as PENDING_MATURITY. It cannot call the result review-ready.

Apply spend and revenue adjustments explicitly

Original Maestro diagram. Open full size.

Start with gross values. Record each adjustment and its source, then calculate the net basis.

net ad spend = gross platform spend + included fees - spend credits - spend refunds
net recognized revenue = gross recognized revenue - revenue refunds + approved revenue adjustments

Keep fees outside net ad spend when your review policy excludes them. State the fee rule in the record and apply the same rule to every cohort you compare.

Google Ads documents conversion adjustments that can restate a conversion value after a partial return or retract a conversion after events such as a cancellation. This supports keeping adjustments visible. It does not decide how finance should account for a refund.

Negative net spend or negative net revenue requires review. The tool preserves the values and returns an exact repair request instead of silently forcing them to zero.

Check source and join coverage

Original Maestro diagram. Open full size.

List the source for each lane:

LaneTypical ownerEvidence to record
Ad spendPaid mediaPlatform or invoice source, campaign scope, spend dates, currency
Platform valuePaid media or analyticsPlatform, conversion actions, model, window and reporting date
Open pipelineRevenue operationsCRM source, stage definition, cohort join key and cutoff
Recognized revenueFinanceLedger or revenue system, recognition rule, cohort join key and cutoff
Collected cashFinancePayment or ledger source, currency, cohort join key and cutoff

This calculator defines join coverage as:

join coverage = eligible source records with a validated match / eligible source records

Show the numerator, denominator, unmatched count, join key, date coverage and exclusions. A 90% match rate does not prove that attribution is correct. A missing source also cannot prove a measured zero.

For example, 90 matched finance records out of 100 eligible CRM records produces 90% join coverage and 10 unmatched records. The result stays provisional until the reviewer accepts the missing population or repairs the join.

Result states

The calculator uses five states. The ratio remains visible when the arithmetic is valid, while the state records whether the evidence supports a decision.

StateMeaningWhat to do next
REVIEW_READYThe selected realized-return lane has matching scope, mature cutoff, compatible currency, required sources and valid nonzero spend.Send the exported record to finance, revenue operations and paid media for review.
PROVISIONALThe arithmetic is valid, but a reconciliation field prevents a final conclusion.Complete the named field or accept the documented exclusion.
PENDING_MATURITYThe cohort's outcome window remains open.Keep the result frozen and repeat it after the next observation date.
INSUFFICIENT_EVIDENCEA required value or source is Unknown.Collect the exact source named in the evidence request.
INVALIDSpend is zero, currencies conflict, dates are impossible or scope definitions disagree.Repair the conflicting input before using the ratio.

A missing pipeline value does not block recognized-revenue ROAS. A missing finance source does block a finance-confirmed result. Platform value cannot fill that gap.

Synthetic example: mature B2B cohort

Synthetic example. No client or Maestro performance data is used.

A company freezes one paid-search cohort in USD. The campaign ran from 1 January through 31 January. The company's documented outcome horizon has passed, and the outcome cutoff is 30 June.

InputValue
Gross ad spend$20,000
Spend credit$1,000
Included fee$500
Net ad spend$19,500
Gross recognized revenue$78,000
Revenue refund$3,000
Net recognized revenue$75,000
Collected cash$60,000
Platform-attributed value$92,000
Open pipeline$25,000

The four lanes remain separate:

recognized revenue ROAS = $75,000 / $19,500 = 3.85x
collected cash ROAS = $60,000 / $19,500 = 3.08x
platform-attributed value multiple = $92,000 / $19,500 = 4.72x
open pipeline multiple = $25,000 / $19,500 = 1.28x

The 4.72x platform value does not replace the 3.85x recognized-revenue result. The 1.28x pipeline multiple remains open pipeline.

If the finance and CRM records use the declared join key, every required source is present, and the join coverage passes the company's review rule, the recognized-revenue lane can reach REVIEW_READY.

Synthetic example: cohort still open

Synthetic example.

A February cohort has $12,000 of net spend, $8,000 of recognized revenue, $18,000 of collected cash and $140,000 of open pipeline at a 31 March cutoff. The company's documented outcome horizon has not passed.

The tool can show 0.67x recognized-revenue ROAS and 1.50x collected-cash ROAS as provisional arithmetic. The result state is PENDING_MATURITY. The $140,000 pipeline value appears only as an 11.67x open-pipeline multiple.

The next action is to preserve the frozen February cohort and repeat the calculation after the named observation date. Do not move later leads into the old cohort.

Synthetic example: partial finance join

Synthetic example.

A mature cohort has $30,000 of net spend. CRM contains 120 eligible closed records, but only 96 have a validated match in the finance export.

join coverage = 96 / 120 = 80%
unmatched records = 24

Finance-confirmed revenue for the unmatched records is Unknown. The calculator preserves the available arithmetic and returns PROVISIONAL or INSUFFICIENT_EVIDENCE, based on the selected review rule. It does not turn the 24 unmatched records into $0.

The repair request names the missing join source, the expected key, the 24 unmatched records and the cutoff used for both systems.

How to hand the calculation to finance and revenue operations

  1. Freeze the cohort and cutoff.
  2. Export the hash-bound JSON handoff. It contains the canonical input record and recomputed output, including every state, source, adjustment, request and calculation lane.
  3. Export CSV or Markdown for a readable review.
  4. Ask paid media to confirm spend scope, platform settings and conversion values.
  5. Ask revenue operations to confirm the CRM population, stage rules, join key and unmatched records.
  6. Ask finance to confirm the revenue or cash basis, adjustments, currency and cutoff.
  7. Reimport the accepted JSON and require the same normalized result before making a budget decision.

The export should answer four questions without opening the calculator: Which population was measured? Which return basis was selected? What evidence remains missing? What action comes next?

Quick answers

What is a good ROAS?

There is no universal target. A viable target depends on gross margin, sales and service costs, payback timing, cash constraints and which return basis you selected. Set the target from your economics and label the basis. Break-even ROAS gives you the floor.

Is 2.5 ROAS the same as 250%?

Yes. A 2.5x ROAS equals 250% of spend returned on the selected basis. It does not mean 250% profit.

Can pipeline count as ROAS?

No. Show open pipeline as an open-pipeline multiple. Calculate realized ROAS from recognized revenue or collected cash with the matching cohort and spend.

Should I use platform revenue or finance revenue?

Use platform-attributed value for platform measurement and optimization. Use the approved finance source for finance-confirmed realized ROAS. Keep both visible so reviewers can explain the gap.

What happens when spend is zero?

The result is INVALID. Division by zero does not produce a usable ROAS.

What happens when revenue is missing?

The value remains Unknown, and the result becomes INSUFFICIENT_EVIDENCE. A missing value is never treated as zero.

Can I calculate target ROAS in Excel?

Yes. Use =Return/Spend for ROAS, =TargetROAS*Spend for required return, and =Return/TargetROAS for allowed spend. Add explicit checks for blank values, zero spend, currency mismatches and scope. The downloadable record from this page keeps those checks and the evidence fields together.

Sources and viewing notes

Sources were accessed on 1 October 2026, and the Target ROAS page on 31 October 2026. The break-even, ROI and mistakes sections are Maestro's arithmetic and recommendations. Platform documentation and interfaces can change. The calculator records the measurement rule you supply; it does not choose an accounting policy for your company.

Two short explanations to watch

Simple ROAS arithmetic

JEMSU, 00:13–00:28. Use this for the division, then return to the calculator to name the return basis. Watch the passage on YouTube.

Why recognized revenue can follow delivery

Ordway, 10:44–11:20. This is a practitioner illustration, not accounting advice. Watch the passage on YouTube.

Download the complete handoff kit

The review prompt needs a receipt from the shipped evaluator. Keep the evaluator and verifier in one folder, then run node verify-roas-envelope.mjs EXPORTED-ENVELOPE.json > evaluator-receipt.json.

Open original