Blog · Board and management reporting
Reconcile campaign spending, CRM outcomes, and posted revenue into a repeatable marketing review. Follow a worked example with spreadsheet formulas, matching rules, and checks against the original exports.
Marketing performance measurement connects campaign spending to matched leads, sales outcomes, and posted revenue using the same rules every period. Start with the exports behind those figures, reconcile their totals, and only then compare campaigns. A convincing report explains both the results it includes and the records it cannot match.
Choose an acquisition cohort, an outcome cutoff, and a cost scope before calculating anything. A US distributor might compare leads created in January 2026, observe their outcomes through June 30, 2026, and include all costs assigned to those January campaigns. That is different from dividing June revenue by June advertising spending.
Write down what counts as an accepted lead, a won sale, and revenue. Use posted net revenue after credits for this example; an opportunity marked won is a sales milestone, not a substitute for that finance figure. Keep the scorecard small. The marketing KPI guide covers metric selection and definitions; this workflow establishes whether the chosen figures tie to their source records.
Pick a credit rule too. Here, every lead has one originating campaign, and every included sale is assigned once to that lead. This is a reporting convention. Google's attribution documentation describes attribution as assigning credit across interactions, which explains why a change of rule can change campaign results without changing company revenue.
Bring a campaign cost export, a CRM lead export with stage dates, and finance sales and credit records with customer or order identifiers. Retain original identifiers and add a campaign mapping table for spelling differences. A renamed campaign should not appear as a new source.
Reduce each dataset before matching it. Include only orders dated on or after lead creation and through the outcome cutoff; earlier customer purchases belong outside this cohort result. Sum finance lines to the order, then assign each order once. Aggregate eligible orders to the lead before combining them with the lead register. Otherwise a lead with several invoice lines becomes several leads, and its campaign cost can repeat on every line.
For the spreadsheet below, prepare an Outcomes tab with one row per unique lead:
| Column | Field | Treatment |
|---|---|---|
| A | Lead ID | Unique, nonblank identifier |
| B | Originating campaign | Agreed mapping, or Unassigned |
| C | Lead creation date | Actual spreadsheet date |
| D | Accepted flag | 1 if accepted by cutoff; otherwise 0 |
| E | Won flag | 1 if won by cutoff; otherwise 0 |
| F | Posted net revenue (USD) | Eligible orders through cutoff, after credits |
| G | Variable delivery cost (USD) | Same included orders |
Resolve unknown stage status separately; the flags above assume status is known. A confirmed absence of sales is zero revenue. An unreviewed finance match is an exception, not a confirmed zero.
The distributor's cost register contains these campaign charges. All amounts are USD, and the agreed scope excludes no other campaign charges.
| Campaign | Cost component | Amount (USD) |
|---|---|---|
| Search | Advertising | 10,000 |
| Search | Agency work | 2,000 |
| Webinar | Event platform | 5,000 |
| Webinar | Production | 3,000 |
| Total | 20,000 |
Search costs $12,000 and Webinar costs $8,000. Tie the $20,000 to the approved campaign cost register, including accruals and credits. Do not add agency invoices twice when they already appear in that register. Keep the account and invoice reference beside each adjustment.
Put the cost rows on a Spend tab with campaign in A and amount in B, headers on row 1. In a Summary tab, put Search and Webinar in A2:A3. Calculate campaign cost in B2:
=SUMIFS(Spend!$B$2:$B$5,Spend!$A$2:$A$5,$A2)
Microsoft documents SUMIFS as summing values that satisfy the stated criteria. Keep its amount and criteria ranges the same size.
In Summary C2, count January leads for the campaign. Extend the ranges to cover the complete cleaned export:
=COUNTIFS(Outcomes!$B$2:$B$999,$A2,Outcomes!$C$2:$C$999,">="&DATE(2026,1,1),Outcomes!$C$2:$C$999,"<"&DATE(2026,2,1))
Microsoft's COUNTIFS guidance confirms that a row is counted when all specified criteria are met. Covirage is not affiliated with Microsoft or Google.
For accepted leads in D2, sum the accepted flag using the same campaign and cohort filters:
=SUMIFS(Outcomes!$D$2:$D$999,Outcomes!$B$2:$B$999,$A2,Outcomes!$C$2:$C$999,">="&DATE(2026,1,1),Outcomes!$C$2:$C$999,"<"&DATE(2026,2,1))
Use that formula with the sum range changed to column E for wins, F for net revenue, and G for variable cost. Fill the formulas down. The cleaned exports produce this summary, with columns A:G in the order shown:
| Campaign | Spend (USD) | Leads | Accepted | Wins | Net revenue (USD) | Variable cost (USD) |
|---|---|---|---|---|---|---|
| Search | 12,000 | 120 | 60 | 12 | 96,000 | 57,600 |
| Webinar | 8,000 | 80 | 40 | 8 | 80,000 | 44,000 |
| Total | 20,000 | 200 | 100 | 20 | 176,000 | 101,600 |
Calculate acceptance rate in H2, cost per accepted lead in I2, lead-to-win rate in J2, and contribution after campaign spending in K2:
=IF(C2=0,"",D2/C2)
=IF(D2=0,"",B2/D2)
=IF(C2=0,"",E2/C2)
=F2-G2-B2
These are separate cells, filled down. Ratios are shown to one decimal place; dollars are exact here.
| Campaign | Acceptance rate | Cost per accepted lead (USD) | Lead-to-win rate | Contribution after spend (USD) |
|---|---|---|---|---|
| Search | 50.0% | 200 | 10.0% | 26,400 |
| Webinar | 50.0% | 200 | 10.0% | 28,000 |
| Total | 50.0% | 200 | 10.0% | 54,400 |
The campaigns have equal conversion rates and equal cost per accepted lead. Webinar leaves more contribution after spending because its matched revenue and delivery costs produce a different margin. That supports a review of the offer and customer mix; it does not prove that shifting spending will reproduce the result. For full return definitions, use marketing ROI versus ROAS, and keep customer acquisition cost separate from this accepted-lead cost.
Calculate total ratios from summed numerators and denominators. For example, total cost per accepted lead is 20,000 / 100 = $200. Contribution before campaign spending is 176,000 minus 101,600 = $74,400; subtracting $20,000 gives the same $54,400 as the sum of the campaign results.
The finance export needs its own bridge:
| Revenue classification through cutoff | Net revenue (USD) |
|---|---|
| Matched to January campaign leads | 176,000 |
| January cohort, campaign unknown | 14,000 |
| Outside the January lead cohort | 30,000 |
| Finance export total | 220,000 |
The bridge proves 176,000 + 14,000 + 30,000 = $220,000. It does not silently allocate the unknown campaign revenue. Reconcile CRM lead counts in the same way, preserving exclusions and their reasons.
Save the cutoff, mapping version, source totals, and unresolved exceptions with each review. Marketing operations owns the workbook, sales operations confirms stage changes, and finance confirms the cost and revenue bridges. If the process is sound but selecting software is the next decision, use the matched-file test in marketing performance measurement tools.
Bring a workbook containing your campaign costs, cleaned CRM outcomes, and finance reconciliation. Covirage maps the columns, and its tools compute and check the figures; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own export.
See Covirage for sales insights for the supporting business context.
Review spending and data exceptions regularly, then compare outcomes on a cadence that fits the sales cycle. Keep an acquisition cohort open until its agreed observation date. A monthly spending review and a mature cohort review answer different questions and should be labeled separately.
They can use different conversion events, attribution windows, currencies, and revenue definitions. Finance may also include refunds or sales with no campaign identifier. Build a reconciliation by reason instead of forcing the advertising total to equal posted revenue.
Attribution assigns credit under a stated rule; it does not by itself establish what would have happened without the campaign. Use attributed outcomes for consistent reporting. A claim of incremental sales needs additional evidence, such as an appropriately designed comparison or holdout.
Marketing operations should maintain campaign identifiers and the review workbook. Sales operations owns CRM stage definitions and matching exceptions. Finance confirms cost scope and posted revenue. Assign an owner and resolution date to each exception before the review closes.