Econometric Methodology
A formal mathematical overview of the econometric models and algorithms powering SpotLift.
1. High-Frequency Impulse Attribution vs. MMM
Linear television attribution operates on two complementary analytical horizons:
- Macro Econometrics (Media Mix Modeling / MMM): Solves long-term adstock carryover, baseline sales, diminishing returns, and macro seasonality using weekly or monthly aggregated regressions (PyMC-Marketing, Robyn, Meridian).
- High-Frequency Temporal Attribution (SpotLift): Measures the immediate, unconfounded impulse response on digital telemetry directly following a broadcast airing — isolating individual stations, dayparts, and creatives.
High-frequency impulse response is causally sharp locally, but systematically under-reports total long-term TV contribution; weekly MMM captures total saturation and carryover, but cannot separate 60+ collinear TV stations. SpotLift connects both via a Two-Way MMM Bridge: exporting immediate lift as a causal lower bound (or latent immediate-share likelihood) to calibrate the MMM, and feeding macro MMM posteriors back into optimize_tv_with_mmm and disaggregate_mmm_contributions.
Broadcast Airing (t0) ──► Immediate Spike [t0, t0 + W) ──► Causal Lower Bound ──► Macro MMM
▲ │
Baseline (Bt) MMM-Anchored Station Optimization ◄────────┘2. Dynamic Diurnal Baseline Algorithm
Accurate TV attribution requires an unbiased estimate of the counterfactual: How many visitors would have visited the digital property if this spot had not aired?
A simple moving average or pre-spot minute average fails because web traffic exhibits strong diurnal patterns (e.g. traffic naturally rising by 4% per minute at 19:30 or falling sharply at 23:30).
Formulation
SpotLift implements a decay-weighted cyclic rolling diurnal baseline:
Where:
is the historical median traffic for the given day-of-week, hour, and minute across non-airing control windows. is an adaptive flight-level scaling factor computed from the uncontaminated 30-minute pre-spot period:
::: important Pre-Spot Baseline Masking Notice that the calibration window ends at
3. Half-Open Response Window Integration
To avoid double-counting at boundary minutes, SpotLift defines the response integration window as a half-open interval:
For a standard 20:15:00:
- Evaluated minutes:
20:15,20:16,20:17,20:18,20:19,20:20 - Minute
20:21belongs to the subsequent interval.
The total incremental lift
4. Signed Lift & Zero Rectification Bias
Most commercial attribution tools artificially clamp negative minute lift to zero before aggregating (lift = max(0, obs - base)).
The Rectification Bias Theorem
If web traffic has natural random noise
Over a 500-spot flight, clipping negative noise rectifies random fluctuations into fake positive lift, overstating total campaign return by 15% to 35%.
By default (clip_negative=False), SpotLift preserves signed net lift across spots:
- Ineffective spots in low-response dayparts correctly report zero or slightly negative net lift.
- Aggregated campaign-level lift sums to an unbiased econometric total.
5. Collision Detection & Attribution
During prime time (20:00–22:30), television schedules frequently exhibit broadcast collisions: two or more spots air simultaneously or within overlapping response windows across different channels.
Station A (RTL): [20:15:00 ─── 20:21:00]
Station B (ProSieben): [20:17:30 ─── 20:23:30]
Overlapping Region: |█████████|SpotLift classifies spots into:
- Isolated Single Spots: Air with
minutes separation from any other spot. Attributed with exact diurnal integration. - Collision Clusters: Air within
minutes of an adjacent spot.
Collision Attribution Methods in Open-Core
SpotLift provides two analytical methods in the open-core library:
weighted_share(Default): Evaluates continuous exponential decay response curves for each colliding spot, weighting credit by spend and elapsed time from each airing:
naive_proportional: Splits the combined cluster lift in proportion to spot media spend:
Need Exact Mathematical Separation?
For prime-time campaigns with heavy multi-channel overlaps, SpotLift Pro implements unsupervised Shifted-Gamma Expectation-Maximization (EM) Deconvolution, estimating distinct shape and scale parameters for each creative and station using GRP priors.
6. Unit Economics: CPIV & CPKE
SpotLift computes normalized unit cost metrics for every individual spot:
Cost per Incremental Visitor (CPIV)
Cost per Key Event (CPKE)
When conversion telemetry is provided (see the Conversion-Rate Bridge), SpotLift bridges session lift to conversion events:
7. Regional / State-Level Spot TV, SNR Dilution & Holdout Control Proof
In large fragmented markets such as the United States, advertisers frequently buy Regional Spot TV (local broadcast affiliates, regional sports networks, or DMA/state-targeted CTV) in specific target states (e.g., TX, FL, PA) rather than national cable.
The Signal-to-Noise Ratio (SNR) Dilution Problem
Suppose a regional spot in Texas generates
- Evaluated against State-Filtered Telemetry (
TX): The signal-to-noise ratio in an 8-minute window is(highly detectable). - Evaluated against National US Telemetry (
US_NATIONAL): National baseline traffic is( ). The exact same 85-session lift is buried in national variance: (statistically indistinguishable from random noise).
Therefore, regional Spot TV must be attributed by matching each airing's country_or_region against state-filtered GA4 telemetry (geo.region in BigQuery).
Empirical Holdout Control Validation
Because SpotLift preserves signed lift (clip_negative=False) by default, non-airing states (CA, NY, IL) serve as a rigorous Empirical Placebo / Holdout Control. Evaluating placebo airings against untouched control states proves zero upward bias:
| Geo Segment | Role | Spots | True Simulated Lift | Open-Core Attributed Lift | Pro EM Deconvolved Lift | CPIV |
|---|---|---|---|---|---|---|
TX (Texas) | Regional Spot TV | 54 | 2,970 | 2,980 | 2,982 | $15.27 |
FL (Florida) | Regional Spot TV | 48 | 2,566 | 2,216 | 2,232 | $14.70 |
PA (Pennsylvania) | Regional Spot TV | 28 | 1,304 | 1,401 | 1,432 | $14.59 |
| Active Target States Total | Treatment | 130 | 6,840 | 6,597 (96.4%) | 6,645 (97.1%) | $14.93 |
CA / NY / IL (Holdout) | 0 TV Airings (Placebo) | 130 placebo | 0 | -52 (~0 noise) | 0 | — |
8. Branded Search Best Practice: Two-Tier Model
Should branded search traffic be included or excluded when measuring TV-to-Web lift? SpotLift enforces a Two-Tier Best Practice that distinguishes between Organic Branded Search and Paid Branded Search:
Tier 1: Include Organic Branded Search (ga4_direct_organic_sessions)
Viewers who see a TV ad rarely type the full URL with .com directly into the address bar—they type the brand name into Google, Safari, or Chrome search bars. Excluding organic search discards 40%–65% of genuine TV-driven response. sl.generate_ga4_bigquery_sql() automatically includes medium IN ('(none)', 'organic').
Tier 2: Exclude Paid Branded Search from Default Web Baseline, Audit Separately (paid_search_branded)
Including cpc / Paid Branded Search in the default baseline is dangerous because Google Ads automated bidding (tROAS / tCPA) reacts to TV spikes by aggressively bidding up on brand keywords, which can double-count paid clicks or distort the baseline when daily budgets cap out.
- Best Practice: Keep Paid Branded Search out of
ga4_direct_organic_sessionsby default. - When Competitors Bid on Your Brand Terms (High-CPC Category Defense): Export
paid_search_brandedas a separatechannel_sourceand pass it tosl.analyze_omnichannel_pro(). SpotLift Pro's Branded Search Cannibalization Audit separates genuinely incremental TV-driven paid search visitors from tax-like cannibalization of organic traffic.