Compare offline campaign spending with recorded responses and orders across regions and periods. Use explicit response mappings, consistent observation windows and reconciled exports without treating geography as evidence of individual exposure.
Offline marketing analytics compares campaign spend with recorded responses, orders and revenue under an explicit mapping rule. Use campaign codes or documented response routes, and give each campaign the same follow-up window. A customer's location can describe the report, but it does not prove that person saw an advertisement or that the campaign caused a sale.
Start with the activity you can actually observe. A campaign-specific inquiry form, response code or dedicated response route can create a record that names the campaign. A regional sales total alone cannot make that connection.
Write down the response qualification rule before ranking campaigns. For example, count a company inquiry once per campaign after removing repeated submissions. Do not combine booth visits, qualified inquiries and completed orders under the same response label unless the report clearly separates them.
This is a channel and campaign comparison rather than recipient-level direct marketing analysis. For planning evidence beyond response records, use marketing research analytics. When a campaign also uses an online marketplace, the separate Amazon marketing analytics guide covers seller sales and spend reconciliation.
Use a campaign schedule with campaign ID, region, activity date, spend and the approved observation window. Include the costs assigned to that campaign, such as printing, placement and event expenses. Keep the cost boundary consistent across periods.
The response export needs a response ID, campaign code, response date, qualification status and an existing account reference where available. The order export needs order ID, account reference, order date, recorded revenue and refunds. Use a documented reference already in these files; do not assume an identity match from a name or address.
Prepare a deduplicated response worksheet:
| Column | Field | What it means |
|---|---|---|
| A | Response ID | Unique retained inquiry record |
| B | Campaign ID | Explicit valid code, or blank if unresolved |
| C | Response date | Recorded date of the inquiry |
| D | Eligible response flag | One if qualified and inside the window |
| E | Matched orders | Distinct eligible order count allocated to this response |
| F | Recorded net revenue (USD) | Matched revenue less applicable refunds |
Assign each order once in this additive report, even if a buyer inquired through several routes. Document the allocation rule and keep conflicting matches in an exception list. An unresolved match is not a confirmed zero response or zero sale.
A US industrial supplier runs regional print campaigns. The illustrative records below use a 30-day response window from each campaign's release and count orders within 30 days after an eligible response. Extract after both windows have completed, and apply refunds recorded through the reporting cutoff of October 15, 2026.
Campaigns have distinct IDs even when region and channel repeat. These are the source totals:
| Campaign ID | Region and release date | Spend (USD) | Recorded responses | Matched orders |
|---|---|---|---|---|
| MID-JUN | Midwest, June 1, 2026 | 12,000 | 120 | 24 |
| SE-JUN | Southeast, June 1, 2026 | 8,000 | 100 | 15 |
| MID-JUL | Midwest, July 1, 2026 | 12,000 | 150 | 30 |
| Total | 32,000 | 370 | 69 |
With the desired campaign ID in H2 on the prepared response worksheet, count eligible responses and sum their matched orders:
=COUNTIFS(B2:B5000,H2,D2:D5000,1)
=SUMIFS(E2:E5000,B2:B5000,H2,D2:D5000,1)
Microsoft's COUNTIFS documentation explains that each counted row must meet every criterion. Microsoft's SUMIFS documentation covers the corresponding conditional sum. These formulas summarize prepared records; they do not validate campaign mappings by themselves.
In the campaign summary, with spend in C, recorded responses in D and matched orders in E, calculate:
=C2/D2
=E2/D2
=C2/E2
These are cost per recorded response, orders per recorded response and cost per matched order. Here each response has at most one matched order, so orders per response is also the share of responses converting to an order. If repeat orders are allowed, show distinct responding buyers separately rather than calling an order count a buyer conversion rate.
| Campaign | Cost per response (USD) | Response-to-order conversion | Cost per matched order (USD) |
|---|---|---|---|
| MID-JUN | 100.00 | 20.00% | 500.00 |
| SE-JUN | 80.00 | 15.00% | 533.33 |
| MID-JUL | 80.00 | 20.00% | 400.00 |
| Total | 86.49 | 18.65% | 463.77 |
Total cost per response is $32,000 divided by 370, or $86.49. Total conversion is 69 divided by 370, or 18.65%. Round displayed ratios to two decimal places after calculation; never average campaign percentages to obtain the total.
The response totals need an audit trail before the campaign ranking is useful:
| Response reconciliation | Records |
|---|---|
| Submitted response records | 410 |
| Less duplicate submissions removed | 10 |
| Unique retained responses | 400 |
| Explicitly mapped eligible responses | 370 |
| Unmapped retained responses | 30 |
The checks are 410 minus 10 equals 400, and 370 plus 30 equals 400. This simplified example has no disqualified responses or late mapped responses; a real reconciliation should show those categories separately when present. The unmapped records remain unresolved. Do not redistribute them in proportion to regional sales.
Finance checks the matched order amounts independently:
| Campaign | Recorded revenue before refunds (USD) | Refunds (USD) | Recorded net revenue (USD) |
|---|---|---|---|
| MID-JUN | 9,600 | 600 | 9,000 |
| SE-JUN | 6,000 | 600 | 5,400 |
| MID-JUL | 12,000 | 600 | 11,400 |
| Total | 27,600 | 1,800 | 25,800 |
The revenue check is $27,600 less $1,800, giving $25,800, tied to the mapped order records. Refunds are recorded through a common cutoff, giving the older campaigns more refund observation time. Before ranking net revenue, use an equal refund-age window or a documented final-adjustment policy. This is matched net revenue, not campaign profit. The marketing ROI versus ROAS guide covers the margin and cost distinction, while customer acquisition cost requires a separate new-customer definition and expense boundary.
MID-JUL has lower recorded cost per matched order than MID-JUN. That observation supports reviewing response handling, offer changes and local conditions. It cannot establish causal lift, because the period, audience and other influences may also have changed.
Covirage is not affiliated with Microsoft.
Bring a sample of your own campaign cost, response and order exports; Covirage maps the columns, and its tools compute and check the comparisons. 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 your files.
See sales insights for the business context.
Assign each campaign a stable code and record a response route that can carry that code into the response export. Match eligible responses and orders under a documented rule, then compare costs and outcomes over equal follow-up windows. Keep unassigned responses outside campaign totals until resolved.
No. A regional sales change can also reflect seasonality, pricing, distribution or other marketing. Geography describes where activity happened, rather than proving who saw an advertisement. Use a suitable experimental design if the decision requires an estimate of incremental sales caused by the campaign.
Cost per recorded response is useful when responses have a clear campaign mapping and consistent qualification rule. Add response-to-order conversion and recorded net revenue to see what followed. These measures describe matched activity; they do not capture every exposure or establish incremental profit.
Keep those responses in an unmapped category and report its count alongside mapped responses. Investigate missing or conflicting codes without assigning a campaign merely from the customer's address. If you later resolve a mapping, retain the reason so the campaign totals can be rebuilt.