The ROAS Formula Explained Step-by-Step by Marketers
Written by Leadscale on Oct 08, 2025
Why This Guide — and Who It’s For
Enterprise B2B buying is long, multi-stakeholder, and messy. Leaders still need a number that travels in the board pack and shows, credibly, whether paid media is pulling its weight. That number is ROAS — a financial ratio showing how much revenue is generated for each unit of advertising cost. Used with a fixed scope and steady lookback, it becomes a common language with finance and a practical steering wheel for weekly optimisation. 
This guide gives senior B2B marketers and demand leaders a replicable, defensible way to calculate, communicate, and act on ROAS in complex journeys. The focus is on locking scope before computing, protecting attribution integrity, and raising signal quality so the number reflects reality — not noise. When scope is clear and attribution is stable, ROAS stops being a vanity ratio and starts guiding where to invest, what to pause, and what to scale.
The Core ROAS Formula (and Notation)
Return on Ad Spend comes down to one simple equation — but if you want the bigger picture of ROAS in B2B marketing, see our complete guide first.
ROAS = Attributed Revenue ÷ Advertising Cost
The result is expressed as a ratio or multiplier. If a SaaS company invests £100,000 into a LinkedIn ABM programme and attributes £450,000 in subscription revenue over an 18-month cycle, the ROAS is 4.5:1 (or 4.5×).
Why Not Percentages?
Percentages are better reserved for ROI. ROI accounts for profit relative to cost, whereas ROAS is a top-line revenue efficiency ratio. Reporting ROAS as a ratio or multiplier avoids confusion and helps non-marketers scan results more easily across channels.
The scope should also state whether VAT, rebates, or co-op funds are netted out. Without clarity, two teams can report different ROAS figures for the same campaign.
Step 0 — Lock Scope Before You Calculate (Non-Negotiables)
Before you run the math, decide the scope. Scope defines what counts as revenue, what counts as cost, and the attribution rules. Without it, your ROAS may look precise but mislead decision-makers. With a locked scope, your ratio can travel from dashboards to board packs with confidence.
How to Choose the Right Time Window for ROAS in B2B
B2B deals rarely close overnight. A 30-day window might capture the full value of an e-commerce ad, but it will undercount enterprise sales cycles that run to 90, 180, or even 365 days. Decide whether you’re using:
- Cohort windows (e.g., revenue from leads generated in Q1 measured over 180 days).
- Rolling windows (e.g., revenue attributed to campaigns in the last 90 days).
Document the choice so trend lines remain consistent over time.
Defining Attributed Revenue: What Counts in ROAS Calculations
Attributed revenue is the portion of customer spend that can be linked back to advertising activity within a chosen time frame. In B2B, this may mean:
- Booked or recognised revenue tied to closed opportunities.
- Weighted pipeline value, clearly marked as such, if deals are still in progress.
- Gross vs. net treatment, depending on whether discounts, rebates, or taxes are included.
Consistency is what matters. If you switch from pipeline to bookings without documenting the change, your ROAS trend line becomes meaningless.
Defining Advertising Cost: What Should Be Included in ROAS
Advertising cost is the spend you choose to hold accountable. In practice, marketers may define it in three tiers:
- Media spend only — the most common definition.
- Media plus platform/agency fees — closer to the true cost of running campaigns.
- Media plus fees plus production/staff time — the fullest definition, though less standard.
The scope should also state whether Sales Tax, VAT, rebates, or co-op funds are netted out. Without clarity, two teams can report different ROAS figures for the same campaign
How Attribution Models Shape Your ROAS Results
Attribution rules decide how revenue is credited back to campaigns:
- Data-driven or position-based models capture multi-touch journeys.
- Lookback windows set how far back to give credit (e.g., 30, 90, 180 days).
- Channel inclusion clarifies whether brand search, affiliates, or partner traffic are in or out.
- View-through rules decide if impressions without clicks are credited.
Governance: How to Document Scope for Reliable ROAS
For defensible reporting, create a simple scope summary file with:
- Scope statement (time window, revenue, cost, attribution).
- Version number and date.
- Change log of any revisions.
This prevents silent scope changes and provides a single source of truth across teams.
Step 1 — Assemble the Data
With scope locked, the first operational step is assembling the right data. ROAS can only be as accurate as the inputs, and in B2B that means drawing from multiple systems and stitching them together into a single view.
Core Data Sources
To calculate ROAS consistently, you’ll usually need three categories of input:
- Ad platforms — spend, impressions, clicks, and platform-level conversions.
- Analytics tools — session data, UTM parameters, user journeys.
- CRM or finance systems — leads, accounts, opportunities, and closed revenue.
A common mistake is relying only on ad platform data. That shows cost and clicks, but without CRM or finance data you’re blind to the revenue side of the equation.
Essential Fields to Capture
Every record must be traceable from ad spend to revenue. At minimum, collect:
- Campaign and creative IDs from your ad platforms.
- UTM parameters or click IDs to link traffic into analytics.
- Email addresses or company domains to tie contacts back to accounts.
- Opportunity IDs and revenue values from your CRM or finance system.
Think of these as your “join keys.” Without them, you can’t connect spend and revenue into a single dataset.
Practical Workflow
- Export raw data from each system with the required fields.
- Create a staging area — whether that’s a spreadsheet, SQL database, or cloud data warehouse — to hold the combined dataset.
- Check for alignment: does every campaign ID match an ad? Does every conversion link to an account?
Pro tip: Run a completeness check before moving on. If 20–30% of opportunities are missing UTMs or account IDs, your ROAS calculation will be compromised no matter how clean the math looks.
Step 2 — Clean and Join the Data
Once you’ve assembled the raw inputs, the next step is to clean and join them. This is where most B2B ROAS calculations break down: ad platforms, analytics, and CRM rarely align neatly without some careful preparation.
Why Cleaning Matters
ROAS is only as trustworthy as the dataset behind it. Duplicate leads, missing UTMs, or inconsistent company names can produce distorted results. A number that looks precise but is based on messy joins will quickly lose credibility at senior level.
Identity Resolution
In B2B, multiple leads often belong to the same buying committee. To prevent overcounting, resolve identities at the account level:
- Email-to-domain matching (e.g., jane@company.com → company.com).
- Company name standardisation (Acme Ltd, Acme Limited, and Acme UK all map to the same entity).
- CRM deduplication rules to avoid duplicate accounts or opportunities.
Data Validation
Before joining datasets, check for:
- Missing campaign IDs or UTMs that block attribution.
- Invalid or incomplete revenue entries (e.g., opportunities marked as won with no value).
- Test or internal traffic that should be excluded.
Joining the Datasets
The goal is a single, unified dataset where every revenue event can be traced back to a marketing source. The key joins are:
- Ad platform spend ↔ Analytics sessions (via UTMs or click IDs).
- Analytics sessions ↔ CRM contacts/accounts (via email addresses or domains).
- CRM opportunities ↔ Revenue (closed-won value or weighted pipeline).
A best practice is to run the join in a controlled staging area (spreadsheet, SQL, or warehouse table) and validate each link before calculating.
Pro tip: Document your “join map” — a table or diagram showing which fields connect each system. When numbers don’t reconcile, this is the first place you’ll look.
Step 3 — Attribute Revenue
With scope locked and data cleaned, the next step is to attribute revenue back to the campaigns and ads that influenced it. This is where the chosen attribution model (set in Step 0) is applied in practice.
Why Attribution Matters
In B2B, sales cycles are long and multi-touch. A single closed deal may involve search ads, LinkedIn campaigns, partner webinars, and multiple nurture emails. Without clear attribution rules, the same revenue can be over-credited — or not credited at all.
Choosing the Attribution Model
- Single-touch (first-touch or last-touch) is easy to apply but risks oversimplifying complex journeys.
- Position-based (e.g., U-shaped, W-shaped) spreads credit across multiple interactions.
- Data-driven models (from Google Ads or custom MMM) use machine learning to assign credit based on actual influence.
The model you choose defines what “counts” in your ROAS number, so it must be declared in the scope file.
Applying the Model
- Map interactions: pull all touchpoints for each opportunity.
- Apply the lookback window: only credit interactions within the declared timeframe (e.g., 90 or 180 days).
- Distribute revenue: assign revenue to touchpoints based on your chosen model.
- Example: in a U-shaped model, 40% goes to first touch, 40% to last touch, 20% shared across middle touches.
Sharing Data Back to Platforms
Closed revenue can be sent back into ad platforms as offline conversions. This closes the loop and allows bidding algorithms to optimise toward actual revenue, not just leads or form fills.
Pro tip: Keep a record of which attribution model was applied to each report. Silent model changes (e.g., when Google Ads defaults to data-driven) are a common cause of ROAS inconsistencies across teams.
Step 4 — Compute Gross ROAS
At this stage you have everything in place: a locked scope, assembled datasets, cleaned joins, and revenue attributed back to campaigns. Now you can run the base calculation.
The Formula
Gross ROAS = Attributed Revenue ÷ Advertising Cost
Example:
- A cybersecurity SaaS company spends £200,000 on LinkedIn ABM campaigns in H1.
- Revenue attributed under the declared 180-day window totals £900,000 in closed contracts.
- Gross ROAS = £900,000 ÷ £200,000 = 4.5×.
This is the simplest and most widely used form of ROAS. It expresses how much top-line revenue is returned for every £1 of advertising cost.
To see how this compares with industry norms, check our overview of ROAS benchmarks in B2B.
Why “Gross” Matters
Gross ROAS does not account for margin, cost of goods sold (COGS), or service delivery. It is a revenue efficiency metric, not a profitability measure. That distinction is critical: a 4.5× ROAS may look strong, but if gross margin is only 20%, the campaign could still be value-neutral after costs.
Governance Checklist
- Confirm that the revenue used is the same definition locked in Step 0 (booked vs. pipeline).
- Confirm that the cost base matches the agreed tier (media only, media + fees, or full).
- Publish the gross ROAS figure with its scope clearly stated (e.g., “Gross ROAS, 180-day window, media + fees”).
When to Use Gross ROAS
- Board reporting: it’s easy to scan and compare across channels.
- Channel diagnostics: shows relative efficiency between paid search, LinkedIn, and display.
- Trend analysis: when the scope is consistent, gross ROAS highlights directional performance over time.
Pro tip: Always label gross ROAS explicitly. Leaving out “gross” invites confusion with net or margin-adjusted variants.
Step 5 — Compute Net ROAS (margin-adjusted)
Once you’ve calculated Gross ROAS, the next, essential step for board-level clarity is Net ROAS — the same top-line efficiency ratio adjusted for the direct costs that actually affect profitability. Net ROAS answers the question: after the cost of delivering the product/service, how much revenue per £1 of ad spend remains?
The Formula
Net ROAS = (Attributed Revenue − Direct Costs) ÷ Advertising Cost
Where “Direct Costs” are the COGS or delivery costs that reduce the revenue you actually keep. In practice many teams compute net revenue as Attributed Revenue × (1 − Direct cost %), then divide by advertising cost.
Worked example (board-ready):
- Advertising cost (media + fees): £200,000.
- Attributed revenue within the declared 180-day window: £900,000.
- Direct costs (COGS / delivery): 40% of revenue → £360,000.
- Net revenue = £900,000 − £360,000 = £540,000.
- Net ROAS = £540,000 ÷ £200,000 = 2.7×.
Why Net ROAS Matters
Gross ROAS can look impressive while economics are weak. Net ROAS brings margin into view so the metric is closer to profitability — essential for decisions where Finance expects a P&L perspective (for example, assessing whether a channel funds itself after delivery). Use Net ROAS when you’re briefing board finance, evaluating campaign-level profitability, or comparing motions with materially different fulfilment costs.
Governance Checklist for Net ROAS
- Confirm the direct cost definition (what’s included: COGS, implementation, onboarding, support) and how it’s sourced (finance ledger vs. standard percentage).
- Publish Net ROAS with the same scope metadata as Gross ROAS (time window, attribution model, cost base).
- If direct costs vary by product line, compute Net ROAS per product or bucket, not as a single blended figure.
When to Use Net ROAS vs Gross ROAS
- Use Gross ROAS for quick channel comparability and trend signals.
- Use Net ROAS for profitability assessments, budget approvals, and cases where delivery economics materially change the campaign outcome. Always show both side-by-side for full context.
Pro tip: publish both figures in your dashboard and label them clearly (e.g., “Gross ROAS — 180-day window — media only” and “Net ROAS — 180-day window — media+fees; direct costs = 40%”) so stakeholders immediately understand the economics behind each number.
Step 6 — Useful ROAS Variants
Gross and Net ROAS are the foundation, but senior marketers often need different lenses depending on the decision at hand. Variants allow you to stress-test efficiency under different assumptions — pipeline value, lifetime value, incremental impact, or profit contribution.
Common ROAS Variants
- Pipeline ROAS
- Formula: Weighted pipeline value ÷ Advertising cost
- Example (SaaS ABM): £1,200,000 weighted pipeline ÷ £200,000 = 6.0×
- When to use: Early in the cycle, when deals are still open but weighted forecasts are trusted.
- LTV-Adjusted ROAS
- Formula: (Attributed LTV × Gross Margin) ÷ Advertising cost
- Example: £900,000 booked revenue equates to £2,700,000 in projected LTV; gross margin 60% = £1,620,000 net LTV ÷ £200,000 = 8.1×
- When to use: Subscription businesses where customer lifetime value is the real economic driver.
- Incremental ROAS (iROAS)
- Formula: Incremental revenue from test group ÷ Advertising cost
- Example: Controlled experiment shows £250,000 incremental lift vs holdout group ÷ £200,000 = 1.25×
- When to use: Proving causality; isolating the real contribution of ads vs. background demand.
- Profit on Ad Spend (POAS)
- Formula: Profit contribution ÷ Advertising cost
- Example: Net profit contribution £180,000 ÷ £200,000 = 0.9×
- When to use: Finance-led decision-making where profit is the only currency.
- Marketing Efficiency Ratio (MER)
- Formula: Total revenue ÷ Total marketing cost (all-in)
- Example: £5,000,000 total revenue ÷ £1,000,000 total marketing = 5.0×
- When to use: Macro lens for the CMO or CFO to assess the whole marketing budget.
| Variant | Formula | Example (SaaS ABM) | Best Used For | Key Watch-outs |
|---|---|---|---|---|
| Gross ROAS | Attributed revenue ÷ Ad cost | 4.5× | Channel comparability, trend analysis | Ignores margins |
| Net ROAS | (Revenue − Direct costs) ÷ Ad cost | 2.7× | Profitability lens | Needs accurate COGS |
| Pipeline ROAS | Weighted pipeline ÷ Ad cost | 6.0× | Early-stage reporting | Risk of overstating if pipeline inflates |
| LTV-Adjusted ROAS | (LTV × Margin) ÷ Ad cost | 8.1× | Subscription / SaaS | Requires churn + margin accuracy |
| Incremental ROAS | Incremental revenue ÷ Ad cost | 1.25× | Experimentation, causality | Costly to test; small sample risk |
| POAS | Profit contribution ÷ Ad cost | 0.9× | Finance reporting | Needs robust profit allocation |
| MER | Total revenue ÷ Total marketing cost | 5.0× | Macro budget lens | Too broad for channel-level optimisation |
Governance Checklist
- Always label the variant clearly (“Gross ROAS”, “LTV-Adjusted ROAS”), never just “ROAS.”
- Publish formulas and assumptions alongside results (margin %, pipeline weights, test design).
- Use consistent scope metadata: time window, attribution model, cost base.
Pro tip: Don’t overload dashboards with every variant. Choose the one that matches the decision context (board vs. channel vs. finance) and publish others in a supporting appendix.
Step 7 — Reconcile and QA
A ROAS figure that looks precise but fails to reconcile is worse than useless — it damages trust. Before publishing numbers, run a structured reconciliation to ensure accuracy and defensibility.
Why Reconciliation Matters
In B2B, data passes through multiple systems — ad platforms, analytics, CRM, finance. Each system applies its own rules. Without reconciliation, discrepancies creep in: one team reports 4.5×, another 3.2×, and the board no longer trusts either.
Three Essential Reconciliations
Platform vs. Warehouse Spend
- Compare ad platform spend (Google Ads, LinkedIn) with finance or data warehouse entries.
- Acceptable variance: ≤2% (currency rounding, rebates). Anything larger requires investigation.
Pipeline vs. Bookings
- Reconcile weighted pipeline revenue with closed-won bookings.
- Flag large pipeline-to-booking gaps; investigate stage weighting accuracy.
Scope Change Audit
- Check that time windows, revenue definitions, cost bases, and attribution models are consistent with Step 0.
- Silent changes (e.g., a 90-day window drifting to 30 days in a platform report) are a leading cause of ROAS volatility.
Red-Flag Diagnostics
- Sudden swings in brand/non-brand mix (may signal misclassification).
- Window drift (lookback period accidentally reset).
- Attribution model changes (Google Ads switching default to data-driven without notice).
- Duplicate accounts in CRM (overstating revenue).
Governance Practices
- Maintain a reconciliation log that records each variance check, with owner and date.
- Document all adjustments made (e.g., currency normalisation, rebate inclusion).
- Require sign-off before ROAS numbers are published in board decks or performance reviews.
Pro tip: Assign reconciliation ownership to one role (e.g., Marketing Ops). Shared responsibility almost always means missed responsibility.
ROAS Cheat Sheet — 60 Seconds to Recall
Formula Basics
- Gross ROAS = Attributed revenue ÷ Advertising cost
- Net ROAS = (Attributed revenue − Direct costs) ÷ Advertising cost
Scope Checklist (set before calculating)
- Time window (cohort vs rolling)
- Revenue definition (booked, pipeline, gross/net)
- Cost base (media only; media + fees; full)
- Attribution model (lookback, channel inclusion, view-through rules)
- Governance log (scope file with versioning and changes)
Key Variants
- Pipeline ROAS — early pipeline view
- LTV-Adjusted ROAS — SaaS and subscription models
- Incremental ROAS (iROAS) — experiment-based
- POAS — profit lens
- MER — whole-budget view
Red Flags to Watch For
- Silent scope changes
- Attribution model drift
- Large platform vs finance discrepancies
- Inconsistent pipeline weighting
Five Fast Levers
- Align attribution window to sales cycle.
- Validate campaign IDs and UTMs at intake.
- Document direct cost assumptions.
- Separate brand and non-brand performance.
- Reconcile pipeline with bookings every reporting cycle.
Next Step: Put ROAS to Work
Numbers only matter if they inform decisions. For a wider framework on how to apply the formula — from pipeline vs. bookings to gross vs. net calculations — explore our complete ROAS guide. It brings together the principles in this article and shows how they fit into a defensible, board-ready approach.
FAQs
Gross ROAS is calculated as Attributed Revenue ÷ Advertising Cost. For example, £900,000 in closed revenue against £200,000 in spend gives a Gross ROAS of 4.5×. It shows top-line efficiency but does not account for margins or delivery costs.
Gross ROAS is calculated as Attributed Revenue ÷ Advertising Cost. For example, £900,000 in closed revenue against £200,000 in spend gives a Gross ROAS of 4.5×. It shows top-line efficiency but does not account for margins or delivery costs.
Gross ROAS measures revenue efficiency, while Net ROAS adjusts for direct costs such as COGS or service delivery. Net ROAS provides a closer view of profitability and is essential when decisions require a finance-ready number.
Scope defines the rules of the calculation: attribution window, revenue definition, cost base, and attribution model. Locking scope before you calculate ensures that results are consistent, comparable over time, and defensible in the boardroom.
Enterprise deals rarely close in 30 days. Without a 90, 180, or 365-day window, you risk undercounting revenue. Declaring whether you use a cohort window or a rolling window prevents scope drift and keeps trend analysis valid.
Resolve identities at the account level (e.g., email-to-domain matching), validate revenue entries, and exclude internal/test traffic. Documenting a “join map” of how ad, analytics, and CRM fields connect ensures consistency and makes reconciliation easier.
Pipeline ROAS replaces closed revenue with weighted pipeline value. It’s useful for early-stage reporting, especially in long-cycle B2B sales where deals may take months to close. The key is to label it clearly so it’s not confused with booked revenue.
Sending closed revenue back as offline conversions lets platforms optimise toward actual revenue rather than leads. This closes the feedback loop, improving bidding efficiency and ensuring campaigns optimise for true business outcomes.






