Blog · Finance metrics and formulas · Sales teams
Compare advertising media using contribution after complete campaign costs. This guide aligns attribution, revenue, margin, and observation windows, then works through a spreadsheet comparison and the checks behind its totals.
Advertising ROI by medium compares contribution after advertising investment using the same rules for every channel. Deduct product and variable delivery costs from attributed net revenue, subtract the complete campaign cost, then divide by that campaign cost. A useful comparison starts with aligned evidence; it cannot supply a universal ranking of media.
The marketing ROI versus ROAS guide owns the underlying definitions. Here the job is to make several media reports comparable, so finance and marketing should approve a short measurement statement before calculating the returns.
Record the campaign cohort, eligible sales, attribution rule, response window, refund cutoff, currency, and campaign cost categories. Distinguish the response window from the reporting cutoff: a campaign still waiting for eligible sales has less mature evidence than a completed campaign.
Attribution assigns credit; it does not identify which purchases would disappear without advertising. Google's attribution settings documentation distinguishes the credit assignment method from the lookback window that determines eligible interactions. Preserve both when using an exported attribution report.
Do not compare one medium's tracked responses with another medium's estimated incremental sales in a single ranked column. If the evidence cannot support the same method, show separate panels and explain the limitation. An honest gap is more useful than an apparently precise league table.
Start with a campaign register containing campaign ID, medium, market, dates, and the approved method. Add an outcome export with order or invoice ID, net revenue, return adjustments, product costs, and relevant variable delivery costs. Keep sales tax outside net revenue.
Add a campaign cost export with supplier invoice ID, campaign ID, media charges, creative, production, agency fees, and approved labor allocations. Separate shared campaign costs from costs already assigned directly. Retain the allocation basis so a revised allocation can be rebuilt.
Use a deduplicated outcome register across media. If multiple touches receive credit, the combined credit on each sale must not exceed the eligible sale. Keep unmatched revenue visible instead of assigning it to the medium with the most complete tracking. The marketing attribution guide explains the allocation choices in detail.
Consider an illustrative US equipment retailer reviewing completed campaigns. All outcomes use the same eligibility rule and cutoff, and the sales register has already been deduplicated. Variable costs include the product and delivery costs allocated to those sales; campaign costs are excluded from that column.
Enter this input table in columns A through E, with headers in row 1:
| Medium | Attributed net revenue (USD) | Variable costs (USD) | Media cost (USD) | Other campaign cost (USD) |
|---|---|---|---|---|
| Paid search | 120,000 | 72,000 | 18,000 | 6,000 |
| 90,000 | 45,000 | 18,000 | 12,000 | |
| Radio | 100,000 | 55,000 | 15,000 | 5,000 |
| Total | 310,000 | 172,000 | 51,000 | 23,000 |
Medium ROI = (attributed contribution before advertising − full campaign cost) / full campaign cost
Add these calculated columns F through J to the same worksheet. Each result follows from the input row above; percentages are displayed to one decimal place and revenue multiples to two decimals.
| Medium | F: Contribution before advertising (USD) | G: Full campaign cost (USD) | H: Contribution after advertising (USD) | I: ROI | J: Revenue / media cost |
|---|---|---|---|---|---|
| Paid search | 48,000 | 24,000 | 24,000 | 100.0% | 6.67 |
| 45,000 | 30,000 | 15,000 | 50.0% | 5.00 | |
| Radio | 45,000 | 20,000 | 25,000 | 125.0% | 6.67 |
| Total | 138,000 | 74,000 | 64,000 | 86.5% | 6.08 |
In Excel or Google Sheets, enter these formulas in row 2 and fill down through row 4:
F2 = B2-C2
G2 = SUM(D2:E2)
H2 = F2-G2
I2 = IF(G2=0,NA(),H2/G2)
J2 = IF(D2=0,NA(),B2/D2)
Format I as a percentage. A zero denominator produces an unavailable result rather than an invented zero return. Confirm that missing invoices are truly absent before treating blank cost cells as zero.
Sum each dollar column into row 5. The input total reconciles revenue and variable costs: $310,000 minus $172,000 leaves $138,000 before advertising. Media and other campaign costs total $74,000, leaving $64,000 after advertising.
The combined ROI is $64,000 divided by $74,000, or 86.5% after rounding. Calculate it from dollars, then check it against the cost-weighted channel returns:
I5 = SUM(H2:H4)/SUM(G2:G4)
Check = SUMPRODUCT(G2:G4,I2:I4)/SUM(G2:G4)
Microsoft documents that SUMPRODUCT multiplies corresponding entries and sums the products. Use the underlying unrounded ROI cells in the check. Averaging the displayed channel percentages instead gives 91.7%, which overstates this combined return by giving unequal investments equal weight.
Reconcile the $74,000 cost total to the campaign invoices and approved allocations. Reconcile attributed revenue to the deduplicated sales register, with an explicit bridge for revenue outside the campaign scope. A matching grand total alone does not prove that individual channel assignments are correct.
Radio has the highest attributed return in this example, while print has the lowest. That is a finding about these campaign rows, their cost boundaries, and their attribution rule. It does not predict the return on the next advertising dollar.
Check capacity, audience overlap, creative reuse, and tracking coverage before reallocating spend. A medium may close existing demand while another introduces buyers earlier in the journey. Use a controlled budget test when the decision needs incremental evidence.
For channel-specific evidence, see billboard advertising ROI, newspaper advertising ROI, and TV advertising ROI. Their response records differ; the comparison should retain those differences without changing the profit convention.
Covirage is not affiliated with Google or Microsoft.
Bring your campaign cost file, attributed sales export, and product or customer cost records to Covirage. Covirage maps the columns, its tools compute and check the comparison, and the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for sales teams for the business context behind the comparison.
There is no universal ranking. Product margin, customer mix, response timing, creative costs, and the attribution method change the result. Compare your completed campaign cohorts on a common basis, then assess whether the observed differences are strong enough to justify testing a different budget allocation.
Use contribution after the relevant product and variable delivery costs when deciding whether advertising covered its investment. Keep revenue per media dollar as a separate diagnostic. A channel with strong attributed revenue can leave less contribution because it sells lower-margin products or requires more campaign support.
An unweighted average gives every channel equal importance regardless of spending. For the combined return, sum contribution after campaign costs and divide by total campaign cost. A cost-weighted average of the individual ROI percentages produces the same result when every channel uses the same cost convention.
No. Matching windows improves comparability, but customers may have purchased without seeing the advertising. A causal interpretation needs a defensible counterfactual, such as a suitable holdout test. Keep attribution-based returns and experimentally estimated incremental returns clearly labeled in separate comparisons.