STABLE TV × DTC DARLING RAZOR
Full Funnel Impact. 14d window. Apr 12 - Apr 26, 2026.

The 8-month arc · May 2025 engagement → CTV Aug 11 2025 → Apr 2026.

Jan-Apr 2025 · the system was broken

The feedback loop was disconnected. The way they measured success was wrong. Acquisition strategies were hitting diminishing returns. Spend climbed +64% MoM yet new-customer CAC blew +55% and one-time CAC blew +142% - Meta CAC held flat at $138 and that was the headline they were tracking. The composed view told the truth: the system needed a strategic pivot.

May/Jun 2025 · Stable engaged as embedded fractional media strategy lead

Operating model reframe delivered. “It was never a Meta problem. It was a mix problem.” Audit → align → bridge. Cash-view (CFO) and accrual-view (CMO) reconciled in one operating model. Vendor measurement became a guide, not a gospel. Triangulation replaced single-source decisioning.

Aug 11 2025 · CTV launched as brand layer

Phase 1 hero · Aug 11 – Oct 5 2025. Halo-forward CAC compressed from a $42.69 pre-CTV baseline to $32.58 over 8 weeks (−24%). Phase 2 (Oct – Dec, 9 weeks of holiday brand-layer cuts) drifted to $41.70. Phase 3 (Dec – Mar, 16 weeks, brand-layer restored at 40% intensity) settled at $40.20. Every week of the 33-week arc held below the pre-CTV baseline. MER trajectory aligns with brand-converted demand landing in highest-retention cohorts.

Recent 14 days. Halo CAC $13.70 vs $14.37 pre-TV baseline (-5% Phase 3 mature). 40% brand-layer intensity held.
Operational view below. Same underlying data, alternate framings live in the methodology card. Methodology card ↓ shows all three with the math.
Pulse read
Recent 14 days. Halo CAC $13.70 vs $14.37 pre-TV baseline (-5% Phase 3 mature). 40% brand-layer intensity held.

Is the ad doing the work?

population default · Tellis-1988 effective-frequencyL6

The format is the ad. TV viewers watch 94% of the spot through; social viewers watch 28%. That gap is the whole reason TV moves the funnel - the ad has a chance to land. But there are two ways creative dies: showing it too often (4×/wk is the band; above that the halo decays early) and never refreshing (after 6 weeks, fatigue sets in).

Reference data · creative-scoring ingestion pending. The TV completion rate, social video completion rate, frequency band, and Hill-curve fatigue zone below are calibrated reference values (Tellis 1988 + Naples 1979 effective-frequency framework + case-study brand profile), not this brand's live creative-asset metrics. Why: per-creative video completion rate + frequency-by-creative needs CLIP / VideoMAE embeddings on uploaded creative assets and fitted Hill curves from scipy curve-fit on (frequency, video completion rate) tuples. Onboarding plan: creative-asset ingestion via Python worker (HuggingFace transformers) Q1 of engagement → per-creative scoring lands here ~30d in. The 8-month arc on the brand-layer side already proves the format thesis. This layer adds creative-level resolution on top.
CTV creative rotation · Universal Ads real-data feed · 28d trailing. Frequency, video completion rate, fatigue-zone curve, and creative-rotation read here all show calibrated reference values. Live values activate when the Universal Ads partnership delivery feed and creative-asset embeddings land (week 1 of onboarding).
TV completion ratepremium inv.
94%
Big-screen native, sound-on, non-skippable. The ad has a chance to work.
Social video completion ratecomparison
28%
20–40% range across IG Reels, TikTok, Snap. The format is the ceiling on social.
Frequency · currentin band
3.4/wk
≤4×/wk threshold. Above 4×/wk, halo decays earlier than the model predicts.

Frequency cap simulator · halo decay onset
Industry band 4–6× per household per week · saturation onset 7–8× · "negative reach" past 8×

5×/wk
3456789
At 5×/wk frequency

Sweet spot. Halo establishes cleanly. Decay onset ~day 14, on-curve with ad-stock model.

The creative-as-lever layer. Creative is the variable that shifts every other layer's read. A great creative held at 4×/wk extends halo by 2–3 weeks vs the same creative at 6×/wk. A bad creative at any frequency just burns budget.

MethodologyHill curve + CLIP creative scoring · how this gets to v2

Frequency-fatigue model. Hill curve fit on (frequency, video completion rate/CTR) per creative: response = max · f^k / (k_half^k + f^k). Sweet-spot 4-6×/wk, saturation onset 7-8×, negative-reach past 8×. Reference: Tellis 1988 (Effective Frequency), Naples 1979. Production fit via scipy curve-fit in Python worker; this dashboard renders the fitted curve.

Creative-style scoring. CLIP / VideoMAE embeddings via HuggingFace transformers on each ad variant - runs locally in the Python worker. Cluster the embeddings to identify creative styles (humorous / aspirational / direct-response), regress style against performance per channel. Local compute, no paid VidMob dependency. ~70% of VidMob accuracy at $0/mo. Brand-of-record creative-effectiveness positioning (if needed at scale) layers VidMob on top.

Multi-armed bandit allocation. Once 2+ creatives are live + producing daily impressions, fit a bandit (Thompson sampling via mabwiser) to recommend optimal rotation weighting. Cuts creative testing time by 40-60% vs equal-rotation A/B.

Refresh recommendation. Triggered by: (a) weeks-live ≥ 4 (rotate fresh in), (b) video completion rate decayed >4pp from baseline (rotate), (c) weeks-live ≥ 6 OR video completion rate decayed >8pp (pause now). Surfaces in the dashboard as a per-creative pill.