KPIs and Decomposition
Track 1 - Foundations · Module 1.8
All analysts
Course home
Learning ObjectivesModule 1.8 · ~35 min
Compute ROI, mROI, CPM, Effectiveness and ASSR from raw spend, support and revenue inputs using the program's exact formulas.
Convert GRPs to impressions via reach and frequency, and explain why everything is standardised to impressions.
Build and read a Contribution % table and a Due-to % table, and know which client question each answers.
The KPI formulas, computed

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.

KPIFormula (exact)WorkedRead as
ROI
Incremental Revenue / Spend5.0 / 2.0 = 2.5Each unit spent returned 2.5 - backward-looking
mROI
Change in Revenue / Change in Spendspend +0.2M → revenue +0.3M: 0.3 / 0.2 = 1.5The NEXT unit returns 1.5 - read off the response curve
CPM
Spend × 1000 / Support2.0M × 1000 / 400M = 5.0Buying 1000 impressions costs 5.0
Effectiveness
(Incremental Revenue × 10) / Support5.0M × 10 / 400M = 0.125Revenue 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).

GRPs, reach, frequency and the impressions conversion

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:

GRP = Reach % × Frequency   ·   Impressions = GRP × Target Audience / 100
equivalently: Frequency = GRPs / Reach %; Unique People Reached = Reach % × Target Audience

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.

Contribution % vs Due-to %, built by hand

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?"

ChannelVolume generated (M)Contribution %
TV6666 ÷ 240 × 100 = 27.5%
Digital Video5454 ÷ 240 × 100 = 22.5%
Paid Social7272 ÷ 240 × 100 = 30.0%
OOH4848 ÷ 240 × 100 = 20.0%
Total predicted volume240100%

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:

ChannelVolume P1 (M)Volume P2 (M)Due-to %
TV30.033.6(33.6 - 30.0) ÷ 120 = +3.0%
Digital Video26.024.8(24.8 - 26.0) ÷ 120 = -1.0%
Paid Social40.044.2(44.2 - 40.0) ÷ 120 = +3.5%
OOH24.029.4(29.4 - 24.0) ÷ 120 = +4.5%
Target variable120132+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).

Check Yourself
From the contribution table: a fifth channel is added driving 60M, lifting total predicted volume to 300M. What is TV's contribution now?
Why: Contribution % = driver volume ÷ total volume. TV's absolute 66M is unchanged, but the total is now 300M, so 66/300 = 22%. Shares always move when the denominator does.
The client asks: "we grew 10% - which channel drove that growth?" From the tables above, the best answer is:
Why: growth questions are due-to questions. OOH added 5.4M of driven volume on a 120M base - the single biggest growth driver. Contribution rank is irrelevant to a growth question.
A channel spends 3.0M to deliver 600M impressions. Its CPM is:
Why: CPM is the cost of a thousand impressions: 3,000,000 × 1000 ÷ 600,000,000 = 5.0. The first option forgot the ×1000; the third inverted the ratio.
A TV plan delivers 240 GRPs against a target audience of 20M. Impressions?
Why: GRPs are percentage points of the target audience, duplicated across frequency - so 240 GRPs means 2.4 exposures per audience member on average: 2.4 × 20M = 48M impressions.
Sources
Authored from:
  • UL_Rapid ROI_Pre-Read_Document 1.pptx slide 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.xlsx sheets Glossary (cross-validates the KPI table), Impressions Calcs (GRP/reach/frequency identities and the 60% × 3 = 180 GRP teaching example) and Error 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>
All KPI computations, both decomposition tables and all quiz numbers are synthetic.