Module 0.3 introduced what these KPIs mean; here you compute them. The formulas are the program's own (Pre-Read slide 8), worked on one synthetic channel: spend 2.0M, support 400M impressions, incremental revenue 5.0M; the brand's total ad spend is 9M against 300M revenue.
| KPI | Formula (exact) | Worked | Read as |
|---|---|---|---|
ROI | Incremental Revenue / Spend | 5.0 / 2.0 = 2.5 | Each unit spent returned 2.5 - backward-looking |
mROI | Change in Revenue / Change in Spend | spend +0.2M → revenue +0.3M: 0.3 / 0.2 = 1.5 | The NEXT unit returns 1.5 - read off the response curve |
CPM | Spend × 1000 / Support | 2.0M × 1000 / 400M = 5.0 | Buying 1000 impressions costs 5.0 |
Effectiveness | (Incremental Revenue × 10) / Support | 5.0M × 10 / 400M = 0.125 | Revenue each impression generates, price-independent |
ASSR | Total advertising spend / Sales revenue (%) | 9M / 300M = 3.0% | Share of revenue reinvested in media |
Footnote on Effectiveness units: the Pre-Read's label says "per 10 Impressions" while its multiplier (×10) sits against a CPM defined per 1000 - a verify marker for this convention already lives in module 0.3, so treat Effectiveness here as a ranking metric (compare channels against each other and against CPM) rather than leaning on its absolute unit. The interpretation pair to internalise: CPM is what an impression costs, Effectiveness is what an impression earns - higher-CPM channels are more targeted and should rank higher on Effectiveness too (the coherence check from module 1.7).
Linear TV has no native impressions - it is bought and measured in GRPs (gross rating points), defined against a client-specified target audience. The program's conversion sheet gives the identities:
Worked: a campaign reaching 60% of the target audience 3 times each delivers 60 × 3 = 180 GRPs. Against a synthetic target audience of 25M adults, that is 180 × 25M / 100 = 45M impressions. GRPs are normalised to a 30-second ad length, and the same schedule produces different GRPs for different target demographies - the audience definition comes from the client, and the conversion methodology from the media agencies.
Why bother converting? Because a GRP-based effectiveness and an impression-based one differ by orders of magnitude - comparing them raw is a named pitfall. Standardising every channel to PMI (paid media impressions) is what makes CPM and cross-channel effectiveness comparisons legitimate.
These two views answer different client questions and are the most commonly confused pair in read-outs. Both tables below are fresh synthetic examples - build them yourself before reading the answers.
Contribution %: "what share of my volume does each driver produce?"
| Channel | Volume generated (M) | Contribution % |
|---|---|---|
| TV | 66 | 66 ÷ 240 × 100 = 27.5% |
| Digital Video | 54 | 54 ÷ 240 × 100 = 22.5% |
| Paid Social | 72 | 72 ÷ 240 × 100 = 30.0% |
| OOH | 48 | 48 ÷ 240 × 100 = 20.0% |
| Total predicted volume | 240 | 100% |
Due-to %: "what explains my growth vs last period?"
Each channel's due-to is its change in driven volume, divided by the prior period's total:
| Channel | Volume P1 (M) | Volume P2 (M) | Due-to % |
|---|---|---|---|
| TV | 30.0 | 33.6 | (33.6 - 30.0) ÷ 120 = +3.0% |
| Digital Video | 26.0 | 24.8 | (24.8 - 26.0) ÷ 120 = -1.0% |
| Paid Social | 40.0 | 44.2 | (44.2 - 40.0) ÷ 120 = +3.5% |
| OOH | 24.0 | 29.4 | (29.4 - 24.0) ÷ 120 = +4.5% |
| Target variable | 120 | 132 | +10.0% |
Read the two tables together and the teaching points fall out. The driver due-tos sum to the total growth (3.0 - 1.0 + 3.5 + 4.5 = 10.0%) - that additivity is the whole point of the view, and in practice base drivers and macro fill the same table. OOH is the smallest contributor (20%) yet the biggest growth driver (4.5 of the 10 points). Digital Video contributes a healthy 22.5% while dragging growth down (-1.0%) - a big contributor and a negative due-to at once, because it drove less than last period. When the client asks "what is driving my growth?", the answer is always the due-to table; when they ask "how dependent am I on TV?", it is the contribution table.
Where these numbers come from: the decomposition file
Both views are computed from the model's contribution decomposition export - one row per period, with columns Predicted, Actual, Residual, Intercept, and one contrib_<driver> column per variable (the same contrib_ names you met in the bounds template, module 1.6). Sum a contrib column across periods and divide by total predicted volume: Contribution %. Difference two periods' sums against the prior total: Due-to %. When channel results are broken down to platform and campaign levels, a weighted error-allocation step keeps children summing to their parent (Track 3.2 works the method).
UL_Rapid ROI_Pre-Read_Document 1.pptxslide 8 (exact KPI formulas; the Effectiveness units question carries a verify marker in module 0.3), slide 9 (mROI decision rule), slide 10 (the Contribution vs Due-to construct - this module's tables are fresh synthetic replacements, not the slide's numbers), slide 11 (CPM/effectiveness interpretation callouts)MathCo Methodology Understanding_UL.xlsxsheetsGlossary(cross-validates the KPI table),Impressions Calcs(GRP/reach/frequency identities and the 60% × 3 = 180 GRP teaching example) andError Allocation Theory(children-sum-to-parent rule, pointed at for Track 3.2)UL - KT.docx(2 Jun session): PMI standardisation and the GRP-vs-impressions effectiveness pitfall, 30-second normalisation, agency-supplied conversion;UL - KT (3).docx(23 Jun session): due-to additivity against YoY change, GRP-to-impressions supply chain- Structural file shape (columns only, no values): the
L1_Decomposition/Contrbution_LT_L{n}exports - Predicted, Actual, Residual, Intercept,contrib_<driver>