Blog · Finance metrics and formulas · Sales teams
Measure Facebook advertising ROI using reconciled sales, direct costs, and the full campaign investment. Work the calculation in Excel and check that every cost appears once.
Facebook advertising ROI measures the contribution left after campaign investment, divided by that investment. Start with reconciled attributed sales, deduct the costs of delivering those sales, and include media, agency, and creative spending within one agreed cost boundary. Keep the result labeled attributed ROI unless you have separate evidence of incremental sales.
Contribution before campaign investment = Net attributed revenue minus direct costs of those sales
Campaign investment = Media spend plus other agreed campaign costs
Attributed campaign ROI = (Contribution before campaign investment minus campaign investment) / Campaign investment
The numerator is a dollar contribution after the campaign costs, not sales revenue. The denominator is the complete investment used for this review, not just the media bill. State the definition alongside the result so finance and marketing read the same measure.
This article uses a management contribution measure. It is not company net income: corporate overhead, financing, and tax remain outside the illustrated campaign boundary. Include additional costs if they belong within your approved boundary, but do not call a narrower contribution calculation fully loaded profit.
For the revenue-only channel measure, use Facebook Ads ROAS. The general marketing ROI versus ROAS comparison explains why the two ratios answer different questions.
Start with the campaign spending export, including campaign ID, media cost, period, currency, and the attribution settings used for the reported outcomes. Bring the order or CRM file with campaign references, order IDs, sales amounts, discounts, and refunds. Then add the product or service cost file and the agency and creative expense records.
Revenue should already be reconciled before you apply a margin. The IRS explanation of gross profit starts with receipts after returns and allowances, then subtracts cost of goods sold. The campaign calculation follows that sales-and-cost logic while keeping campaign investment separate.
For this review, direct costs include the costs finance assigns to the delivered orders. Any returned inventory recovery must be reflected in those costs. Do not reverse sales for a return but leave the cost assumption untouched without checking whether the goods came back into inventory.
If order-level costs are available, use them. If finance approves an estimated margin instead, label it as an assumption, identify the covered product mix, and keep it separate from observed results. The gross profit margin method covers the underlying revenue and cost relationship.
A US business-supplies company reviews two completed Facebook campaigns. The figures are illustrative and use a consistent attribution basis. Finance has approved the direct costs and the allocation of agency and creative expenses; all amounts are USD.
The campaign table occupies columns A through L, with the two campaign rows in rows 2 and 3:
| Campaign | Gross sales (USD) | Returns (USD) | Net sales (USD) | Direct costs (USD) | Contribution (USD) | Media (USD) | Agency (USD) | Creative (USD) | Investment (USD) | After investment (USD) | ROI |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Repeat buyers | 42,000 | 2,000 | 40,000 | 20,000 | 20,000 | 8,000 | 1,500 | 1,000 | 10,500 | 9,500 | 90.48% |
| New accounts | 48,000 | 3,000 | 45,000 | 27,000 | 18,000 | 12,000 | 2,000 | 1,500 | 15,500 | 2,500 | 16.13% |
| Total | 90,000 | 5,000 | 85,000 | 47,000 | 38,000 | 20,000 | 3,500 | 2,500 | 26,000 | 12,000 | 46.15% |
In D2, F2, J2, K2, and L2 respectively, enter these formulas and fill them down:
=B2-C2
=D2-E2
=SUM(G2:I2)
=F2-J2
=IF(J2=0,"",K2/J2)
Format the ROI column as a percentage. A zero investment produces a blank because the ratio is undefined, not a zero return.
Total gross sales of $90,000 minus $5,000 of returns gives $85,000 of net sales. Subtract $47,000 of direct costs to get $38,000 of contribution before campaign investment. The investment is $20,000 of media plus $3,500 of agency fees plus $2,500 of creative costs, or $26,000.
That leaves $38,000 minus $26,000 = $12,000. The total ROI is $12,000 / $26,000 = 46.15%, rounded to two decimal places. All calculations use unrounded underlying values.
For L4, divide the totals instead of averaging the campaign percentages:
=IF(SUM(J2:J3)=0,"",SUM(K2:K3)/SUM(J2:J3))
Repeat buyers contributes more after investment even though new accounts produces more revenue. That difference is visible only after direct costs and the full investment are included. It is a starting point for a budget review, not proof that the next advertising dollar will earn the historical average.
The first proof reconstructs net sales from all the deductions and the remaining contribution:
| Reconciliation component | Amount (USD) |
|---|---|
| Direct costs | 47,000 |
| Media spend | 20,000 |
| Agency fees | 3,500 |
| Creative expense | 2,500 |
| Contribution after campaign investment | 12,000 |
| Reconstructed net sales | 85,000 |
These components sum to the $85,000 net sales total. Add the $5,000 returns and the calculation reconstructs the $90,000 gross sales figure. Each cost must occur once: if an agency invoice includes media pass-through, separate it before adding the platform spend again.
For an expense sheet with campaign ID in A and allocated cost in C, the campaign summary can retrieve the approved cost with:
=SUMIFS(Expenses!$C:$C,Expenses!$A:$A,$A2)
Microsoft's SUMIFS documentation explains how the function sums amounts meeting specified criteria. Keep expense types in separate columns or summaries so the same formula does not accidentally combine media with the nonmedia costs it will later be added to.
The second proof is external to the ratio: allocated agency costs must tie to the $3,500 expense population, and creative allocations to $2,500. Campaign media must tie to $20,000 in the spending file. Sales and refunds must tie to the matched order population, with unmatched records and timing differences listed explicitly.
When comparing channels, carry the same cost boundary into advertising ROI by medium. Otherwise, an apparent channel advantage may be an allocation difference.
Bring your Facebook campaign export, sales and refund file, direct costs, and campaign expense allocation to Covirage. Covirage maps the columns; its tools compute and check the contribution, investment, and ROI, while the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own export.
See customer profitability for the supporting business context.
Covirage is not affiliated with Meta or Microsoft.
No. ROAS compares attributed revenue with media spend. ROI also accounts for the cost of delivering those sales and the complete campaign investment. A high revenue-to-spend ratio can coexist with weak ROI when product margins or campaign overhead are unfavorable.
Include costs within the campaign investment boundary approved for the review. Record agency fees, creative production, and other relevant spending separately from media. If an expense supports several campaigns, document a consistent allocation and check that allocations sum to the original expense.
Not without separate evidence. Attribution assigns credit under a reporting rule; it does not establish how many sales would have occurred without advertising. Present the calculation as attributed campaign ROI unless a credible incremental measurement supports a causal interpretation.