Blog · AI and self-service analytics · Consumer goods
Compare retailer advertising spend with attributed sales from campaign exports. Align attribution windows, account for matched refunds, and reconcile totals before interpreting performance differences.
Retail media AI analytics compares retailer advertising spend with sales credited to advertising interactions, using consistent reporting definitions. Match retailer, campaign, product and period before calculating returns, and separate gross attributed sales from matched refunds. The result supports a campaign review; it does not establish how many sales advertising caused.
For a US consumer packaged goods brand, the first job is comparability. Request campaign-level spend and attributed sales from each retailer, with product IDs, attributed placed orders, currency, export date and the attribution settings used. Preserve each export's control totals.
The IAB/MRC Retail Media Measurement Guidelines provide a common framework intended to improve transparency and consistency in retail media measurement. Your workbook still needs to state the definitions actually used by each retailer.
Record whether credit follows a click, an ad view or either interaction. State the lookback window, whether credited sales include other products from the brand, and whether tax, shipping, cancellations and returns are included. If the definitions differ, retain separate comparisons until compatible reports are available.
An interaction-date report and an order-date report may put the same purchase in different periods. Do not subtract one period's spend from another period's sales without explaining that choice. Re-export after the window has closed and note the reporting cutoff, since recent campaign results can still accumulate credited purchases.
This article covers preparing a defensible comparison. Use retail media performance analytics for the ongoing measures reviewed after the export definitions are settled.
This fictional brand evaluates a completed campaign period. Every row uses the same 14-day click-only attribution rule, credited products are restricted to the advertised SKU, and results are collected after the window closes. All money is USD. Refunds have been matched to the credited purchases; unrelated retailer returns are excluded. Attributed orders do not overlap across rows in this example.
Paste these headers into A1:G1 and the detail into rows 2 through 4. The total is row 5. A retailer-campaign-SKU combination appears once in this period's comparison.
| Retailer | Campaign | SKU | Spend (USD) | Gross attributed sales (USD) | Matched refunds (USD) | Attributed placed orders |
|---|---|---|---|---|---|---|
| North | Search | Bar A | 2,000 | 8,000 | 200 | 400 |
| North | Display | Bar B | 1,000 | 2,000 | 100 | 100 |
| South | Search | Bar A | 1,500 | 4,500 | 200 | 225 |
| Total | 4,500 | 14,500 | 500 | 725 |
Start by comparing each retailer subtotal with its original export. Spend must also tie to the agreed advertising billing basis. If the bill includes platform fees outside reported media spend, keep those fees separate and identify which cost definition the review uses.
The orders column counts placed orders before any refunds. It remains on that basis throughout this example. A measure of retained orders would need a different denominator and additional order-level information.
Net attributed sales = Gross attributed sales − Matched refunds
Net attributed ROAS = Net attributed sales / Advertising spend
Cost per attributed placed order = Advertising spend / Attributed placed orders
In Excel, place net sales in H2, net attributed ROAS in I2 and cost per attributed placed order in J2. Fill down through row 4:
H2: =E2-F2
I2: =IF(D2=0,NA(),H2/D2)
J2: =IF(G2=0,NA(),D2/G2)
| Retailer and campaign | Net attributed sales (USD) | Net attributed ROAS | Cost per attributed placed order (USD) |
|---|---|---|---|
| North Search | 7,800 | 3.90 | 5.00 |
| North Display | 1,900 | 1.90 | 10.00 |
| South Search | 4,300 | 2.87 | 6.67 |
| Total | 14,000 | 3.11 | 6.21 |
The total uses summed amounts, not an average of campaign ratios:
Total net sales: =SUM(H2:H4)
Total net attributed ROAS: =SUM(H2:H4)/SUM(D2:D4)
Total cost per attributed placed order: =SUM(D2:D4)/SUM(G2:G4)
Thus net attributed ROAS is 14,000 / 4,500 = 3.11: $3.11 in net credited sales per advertising dollar. Cost per attributed placed order is 4,500 / 725 = $6.21. Display ratios and unit costs to two decimals; calculate totals from unrounded amounts.
Gross attributed ROAS would be 14,500 / 4,500 = 3.22. The refund adjustment changes the sales basis, so both versions should carry explicit labels. Neither ratio is profit: marketing ROI versus ROAS explains why margin and other costs require a separate calculation.
Use retailer subtotals to check the rollup. With North written in L2, these formulas select its rows:
North spend: =SUMIFS(D2:D4,A2:A4,L2)
North net sales: =SUMIFS(H2:H4,A2:A4,L2)
North placed orders: =SUMIFS(G2:G4,A2:A4,L2)
Microsoft's SUMIFS documentation explains the criteria-based summation used here. Covirage is not affiliated with Microsoft.
North totals $3,000 spend, $9,700 net attributed sales and 500 placed orders. South contributes $1,500, $4,300 and 225 respectively. Adding the retailer amounts reconstructs the company totals: $4,500, $14,000 and 725. Separately, gross sales less matched refunds must equal net sales: 14,500 − 500 = 14,000.
These checks establish arithmetic consistency and source reconciliation. They cannot eliminate overlapping credit when campaigns, product rows or retailers count the same purchase. A consolidated total needs an agreed scope and, where overlap is possible, a way to identify it; otherwise label it as the sum of reported credits. Multi-item orders require particular care before summing SKU-level order counts.
The brand's media manager should own campaign definitions, while finance confirms cost and sales reconciliation. Questions about repeat purchasers belong in retail customer analytics; testing future store-unit estimates belongs in retail forecast evaluation. Both fit within the broader AI analytics workflow, with different files and checks.
Upload a sample of your own retailer campaign and sales files: Covirage maps the columns, and its tools compute and check comparisons using the definitions in your data. The external AI model explains the differences with every figure traced to its rows. Create a free Covirage account, then set up your business and bring your exports.
See Covirage for CPG brands for the supporting industry approach.
Use retailer campaign exports containing spend, attributed sales, attributed orders, product identifiers and attribution settings. Add matched refunds when available, plus a control total for each export. Keep retailer, campaign, product and reporting period as separate fields so that comparisons can be traced to their source rows.
No. ROAS divides sales credited under an attribution rule by advertising spend. Some credited purchases might have happened without advertising. A causal claim needs a separate incrementality design, such as a suitable comparison group, rather than a larger attributed-sales figure alone.
Only after documenting the difference or obtaining exports with comparable settings. A longer window allows more purchases to qualify for credit. If only aggregated reports are available, you cannot reliably reconstruct a shorter window by reducing sales in proportion to the number of days.
A net-sales view should deduct refunds matched to the attributed purchases under an agreed cutoff. Keep the gross attributed-sales view alongside it. If refunds cannot be matched, disclose the limitation and avoid subtracting all retailer returns from only the advertising-attributed sales.