Portfolio · Case Study
A marketing effectiveness engagement for a Fortune 100 insurance provider, spanning two complementary deliverables. Nine marketing and business platforms — media cost, web analytics, email, CRM, call center, and policy management — were unified into a single weekly time series via an automated Python/R pipeline. On top of that dataset came both deliverables: an interactive Tableau dashboard suite — live-querying the database so marketing leadership could explore spend, leads, and conversions across segments on demand — and a Bayesian Media Mix Model to quantify what was actually driving B2C policy volume. The model, built on PyMC-Marketing, applies adstock (carryover) and saturation transforms to each channel, then fits channel contributions with a PyMC NUTS MCMC sampler — returning full posterior distributions, not point estimates: per-channel ROI with credibility intervals, contribution shares, response curves, and a budget-reallocation recommendation. The Bayesian approach captures the delayed and diminishing media effects — carryover and saturation — that the original linear regression could not.
Nine marketing and business platforms were unified into a single weekly time series. Media spend, leads, policies, and premiums were all aligned to a Saturday week-ending boundary so media activity and conversion outcomes share the same calendar. The target (policy volume) and a set of extra features — US holidays and seasonal components — were assembled into a model-ready matrix scoped to the B2C segment.
A Bayesian model returns full posterior distributions over each channel's effect — not single point estimates. That means every ROI figure comes with a credibility interval, so leadership sees the uncertainty, not just a number. Adstock and saturation transforms let the model capture delayed and diminishing media effects that linear attribution cannot.
TV was not underperforming. Its return was delayed, and direct attribution couldn't see it.
The Bayesian model estimates each channel's media contribution and its per-dollar ROI separately. TV shows the highest media contribution of any channel — yet the lowest per-dollar ROI. That tension is the whole story: TV's effect is spread out over time through adstock carryover, so a direct, same-period attribution model credits it with almost nothing. The MMM's adstock transform recovers that delayed contribution, quantifying the awareness TV generates that converts later through other channels.
Direct attribution credited paid search with conversions and TV with almost none. TV — the largest budget line — appeared to underperform, with no way to measure its delayed effect.
Adstock carryover quantifies TV's delayed contribution. Leadership sees channel contribution and per-dollar ROI as two separate truths — and optimizes the awareness-to-capture spend ratio, not just last-touch ROI.