Skip to content

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:

  1. 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).
  2. 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:

B(t)=α(t)⋅Y¯dow,hour,minute

Where:

  • Y¯dow,hour,minute is the historical median traffic for the given day-of-week, hour, and minute across non-airing control windows.
  • α(t) is an adaptive flight-level scaling factor computed from the uncontaminated 30-minute pre-spot period:
α(t)=∑s∈[t−35,t−5)Y(s)∑s∈[t−35,t−5)Y¯(s)

::: important Pre-Spot Baseline Masking Notice that the calibration window ends at t−5 minutes before airing, not t−0. This intentional 5-minute pre-spot buffer prevents broadcast clock drift or pre-roll sponsor teasers from polluting the baseline calibration. :::


3. Half-Open Response Window Integration ​

To avoid double-counting at boundary minutes, SpotLift defines the response integration window as a half-open interval:

W(t0)=[t0,t0+W)

For a standard W=6 minute window airing at 20:15:00:

  • Evaluated minutes: 20:15, 20:16, 20:17, 20:18, 20:19, 20:20
  • Minute 20:21 belongs to the subsequent interval.

The total incremental lift Δ is integrated as:

Δ=∑t∈[t0,t0+W)max(0,Y(t)−B(t))or∑t∈[t0,t0+W)(Y(t)−B(t))

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 ϵt∼N(0,σ2) around baseline B(t), clamping negative observations creates an upward bias:

E[max(0,Yt−Bt)]=E[max(0,ϵt)]=σ2π>0

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 >W minutes separation from any other spot. Attributed with exact diurnal integration.
  • Collision Clusters: Air within ≤W minutes of an adjacent spot.

Collision Attribution Methods in Open-Core ​

SpotLift provides two analytical methods in the open-core library:

  1. weighted_share (Default): Evaluates continuous exponential decay response curves for each colliding spot, weighting credit by spend and elapsed time from each airing:
wi(t)=Spendi⋅exp⁡(−λ(t−ti))⋅I(t≥ti)
  1. naive_proportional: Splits the combined cluster lift in proportion to spot media spend:
Lifti=Total Cluster Lift⋅Spendi∑jSpendj

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) ​

CPIVi={Net SpendiIncremental Liftiif Incremental Lifti>0Noneif Incremental Lifti≤0

Cost per Key Event (CPKE) ​

When conversion telemetry is provided (see the Conversion-Rate Bridge), SpotLift bridges session lift to conversion events:

CPKEi=Net SpendiKey Event Responsei

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 ΔTX=+85 incremental sessions against a Texas baseline of μTX=40 sessions/min (σTX≈6.3).

  • Evaluated against State-Filtered Telemetry (TX): The signal-to-noise ratio in an 8-minute window is SNRTX=858⋅40≈4.75σ (highly detectable).
  • Evaluated against National US Telemetry (US_NATIONAL): National baseline traffic is μUS≈450 sessions/min (σUS≈21.2). The exact same 85-session lift is buried in national variance: SNRUS=858⋅450≈1.42σ (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 SegmentRoleSpotsTrue Simulated LiftOpen-Core Attributed LiftPro EM Deconvolved LiftCPIV
TX (Texas)Regional Spot TV542,9702,9802,982$15.27
FL (Florida)Regional Spot TV482,5662,2162,232$14.70
PA (Pennsylvania)Regional Spot TV281,3041,4011,432$14.59
Active Target States TotalTreatment1306,8406,597 (96.4%)6,645 (97.1%)$14.93
CA / NY / IL (Holdout)0 TV Airings (Placebo)130 placebo0-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_sessions by default.
  • When Competitors Bid on Your Brand Terms (High-CPC Category Defense): Export paid_search_branded as a separate channel_source and pass it to sl.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.

Released under the MIT License.