Capstone: Synthetic Workbook to Slide
Capstone · Module CAP
All analysts
Course home
Learning ObjectivesCapstone · ~2 hrs hands-on
Run the full pipeline once, end to end, on a synthetic brand: data → transform → fit → decompose → KPI table → due-to bridge → one client slide.
Produce a slide that reproduces the structural pattern of a real UK HC deck page - structure learned from the real artifact, every number synthetic.
Self-review the deliverable the way the Validation and Insights & Storyboarding stages would.
What this capstone is (and its current status)

Everything before this page taught one piece at a time. The capstone joins them: starting from a synthetic weekly brand dataset, you will transform, fit, decompose, compute the client KPI family, build a due-to bridge, and finish with a single presentation slide - the same arc a real cell travels from EDA & ADS prep through Insights & Storyboarding, shrunk to a toy scale you can complete in one sitting. Target: under 2 hours end to end.

Status, stated plainly: the hands-on notebooks and the synthetic-dataset generator that make this capstone executable are Phase 2 deliverables and are not yet built. This page is the specification those notebooks will implement, and the exercise description you will follow once they exist. Until then, read it as the map of what you will do - or, if you are impatient and comfortable in Python, as enough detail to improvise your own version.
Check with SMEProgram Lead
The Phase 2 notebook set and the synthetic dataset generator are still to be built - when they land, this capstone page should be re-pointed at the actual notebook paths and the step numbering below reconciled against what was implemented.

Two source rules govern the final step. The structural template is one page of a real UK HC deck (the Track 2.5 teaching pair - the presented decks in the deck-making capability folder). Those decks contain real client numbers, so they are reference exhibits only: you study the page's structure - what sits where, what gets a number, what gets a sentence - and you rebuild that structure with your synthetic outputs. No value from any real workbook or deck is ever lifted.

The exercise, step by step

Step 1 - Load the synthetic brand (10 min). The dataset follows the Track 1.3 spec: one brand, one market, ~150 weekly rows. Columns: week, sales_volume, sales_value, price, promo_tdp_index, distribution_weighted, tv_grp, digital_impressions, search_spend, competitor_price (deliberately collinear with own price), cpi_index. All values fabricated by the generator; the media columns carry realistic burst patterns so the transforms have something to bite on. Run a quick EDA pass: plot sales against each driver, compute the media channels' ASSR, note the own-vs-competitor price correlation.
What good looks like: you can say, before any modelling, which channels are big enough to matter and which base variable correlations will anchor your expectations - the module 1.4 discipline.

Step 2 - Transform the media (20 min). Apply geometric adstock then Hill saturation (module 1.5) to the three media columns, using the alpha/beta values the exercise provides per channel (TV slow-decay, search fast-decay - the same intuition as the real per-platform grids). Plot raw vs adstocked vs saturated for one channel.
What good looks like: the adstocked series visibly carries tails after each burst; the saturated series visibly compresses the biggest bursts; and you can explain both distortions in one sentence each.

Step 3 - Fit the toy constrained model (25 min). Fit a linear model of sales_volume on the transformed media plus base drivers, with sign constraints (media non-negative; own price, competitor price effects per economic logic) and simple coefficient bounds standing in for the real bound-setting machinery. This is a deliberately small stand-in for the real pipeline - one model, not a hyperparameter grid; a bounded least-squares call, not the UCM/Kalman stack.
What good looks like: the fit passes the two stated gates from module 3.1 (adjusted R² ≥ 80%, MAPE ≤ 10% - the generator guarantees a clean fit is reachable), no coefficient sits pinned at a bound without you noticing it, and you check the residual plot even though nobody told you to.

Step 4 - Decompose to a contribution table (20 min). Multiply coefficients through their (transformed) drivers to get per-driver weekly contributions; aggregate to the year. Assemble the contribution table: driver, volume contribution, contribution % - the Contribution_L1-style output. If your platform split is part of the exercise variant, apply module 3.2's error-allocation factor so children re-sum to parents.
What good looks like: contributions plus intercept/seasonal/residual re-sum to actual sales exactly - the numbers-tie discipline. Every driver's contribution has the sign its bound demanded.

Step 5 - Compute the KPI table (15 min). From spends, impressions and incremental revenue: ROI, mROI (read as the local slope from a small response-curve sweep of your fitted model, per module 3.3), CPM, and Effectiveness per channel - the module 0.3 formulas.
What good looks like: the internal sanity relations hold: each saturating channel's mROI sits below its ROI; CPM values are mutually plausible; and you can state, per channel, the invest / hold / reduce call the mROI rule implies.

Step 6 - Build the due-to bridge (15 min). Split your ~150 weeks into two years. Recompute per-driver contributions per year, then the due-to %: change in each driver's contribution over year-1 total (the Pre-Read slide 10 arithmetic). Assemble the growth bridge: year-1 total, one bar per driver's due-to, year-2 total.
What good looks like: the due-to figures sum to the total growth %; you can name the single biggest growth driver; and you have checked it is not simply the biggest contributor (module 0.3's contribution-vs-due-to trap, now in your own numbers).

Step 7 - Make the slide (20 min). Open the designated UK HC reference deck page as a structural exhibit, then rebuild its pattern with your outputs: headline takeaway as a full sentence, the contribution or due-to visual as the centrepiece, the KPI table as support, one action-oriented callout. One slide, not a deck.
What good looks like: someone who has seen the real deck recognises the page pattern instantly, and someone who audits your numbers finds every figure traceable to steps 4-6. The slide tells ONE story; everything on it serves that story.

Step 8 - Self-review (10 min). Run the checklist below, honestly, before you show anyone. The deliverable is the slide plus your working notebook; there is no quiz - the slide is the assessment, reviewed against the model-answer notebook and template slide when the Phase 2 materials exist.

Self-review checklist
Sign off your own slide against these four before anyone else sees it:
  • Numbers tie. Contributions re-sum to actual sales; due-to figures sum to total growth; every number on the slide traces to the workbook with no manual "adjustments" en route. If a number on the slide cannot be reproduced from the notebook, the slide is wrong even if the number is right.
  • One story per slide. The headline is a sentence with a verb, the visual proves it, the KPI table supports it, and anything that serves a different story has been cut - however proud of it you are.
  • Contribution vs due-to used correctly. Share-of-volume claims cite the contribution table; growth claims cite the due-to bridge; and you have not let the biggest contributor masquerade as the growth driver.
  • mROI rule applied. Every invest / hold / reduce statement is grounded in the marginal number, not the average - and if a channel has high ROI but mROI below 1, the slide says "strong but saturated", not "double down".
Sources
Authored from:
  • CURRICULUM.md Capstone section and Track 1.3 synthetic-dataset spec (~150 weeks; sales, price, promo, distribution, tv_grp, digital_impressions, search_spend, competitor_price, cpi_index - all ranges fabricated)
  • Module dependencies: 1.5 (adstock + Hill), 3.1 (fit gates), 3.2 (error allocation), 0.3 / 1.8 (KPI formulas, contribution vs due-to per Pre-Read slides 8-10), 3.3 (mROI from response-curve sweep)
  • 04. Deck Making - Capability\UK HC MMX\ presented decks - structural reference exhibits only; they contain real client numbers and no value from them appears in this exercise or may appear in your deliverable
  • Phase 2 build status per ONBOARDING_PLAN.md / CURRICULUM.md: notebooks and dataset generator not yet built - see the verify marker above (Program Lead)