Patterns & backtest

The compounding layer. "Document winning patterns by product, audience, hook, angle and offer" — rendered as live queries with citations, never as a doc someone remembers to write. Each pattern's evidence panel recomputes nightly from fact_creative_day, so a pattern can never silently outlive its data. The 90-day half-life automation does the maintenance; the rollup explorer answers any historical question as a query, not a meeting; the calibration tab keeps the verdict gates themselves honest.

Compounding state

As of 2026-06-26 · all live figures representative unless tagged baseline
Pattern ledger
8 live · 1 retired
4 proven (1 decaying) · 2 emerging · 2 hypothesis · cadence ~8/mo — the ledger stays small by design; the evidence is what's big
Evidence cited (computed live)
10 tests · 48 creatives · $7.6K live
plus seed history: 400-ad decode / $1.41M TTM baseline — citations re-derive nightly from fact_creative_day
Half-life flags
1 decaying · 1 retired via decay
proven + unconfirmed 90d → auto-decaying → revalidation or retirement. WP-0009 flagged 06-10; WP-0001 failed re-test, retired
Calibration
÷1.40 drift +0.9% MTD
Meta 1.92 / true 1.37 baseline · refit monthly · verdict backtests run: 0 · first window 2026-09-15

Winner pattern ledger

9 patterns · click a row for its evidence panel · patterns cite tests, no vibes
Strength
Status
Scope dimension
Provenance
Sort
Search statements
IdPattern · scopeStrengthStatusEvidence (live query)Half-life
WP-0004 Scale follows the advertorial. High-copy winners only exist behind "N-reasons" pre-sell pages.
lpall personasLP01-04 vs PDP-direct
provenactive seed: 187- & 111-copy winners both behind reasons pages, ~80% of paid traffic baseline · TTM Meta-CAC $36.81-40.10 advertorial vs $43.76 PDP-direct seed est. · live: CON-0007 graduated through LP01 confirmed 06-26 · decays 09-24evidence
WP-0005 The stacked hook formula is the account spine — category-king headline + rush line + urgency close; every concept ≥118 days live runs a variant.
hookaccount-wide
provenactive seed: all 6 longevity-ranked winners baseline · live: 7/7 decided reads used the skeleton, only cold-opens varied confirmed 06-26 · decays 09-24evidence
WP-0006 Faith is the deepest, most under-supplied seam. P03 concepts outlast everything (240d max-days, 417d hook) on a quarter of the copy supply (48 vs 187).
persona P03SKU-faith-kitLP01
provenactive seed: Faith Kit 240d / 48 copies, faith hook 417d baseline · live: CON-0007 SCALE at Meta-CAC $22.60 confirmed 06-26 · decays 09-24evidence
WP-0002 Authority cold-open beats mom-testimonial for P02: +28% thumbstop, −19% Meta-CAC vs control across offers.
persona P02wrapper W01/W02hook H03ugc
emergingactive TST-0002 / 0007 / 0013 · 9 creatives · $2.1K · Meta-CAC $29.11 vs $35.96 · seed prior: kindergarten-teacher spine, Magic Kit 119d baseline n/a — emerging patterns don't decay, they accrue or dieevidence
WP-0003 Grandparent-voiced wrapper (W03) clears G1 at ~1.7× account-median thumbstop on P04 cells. The first creative ever addressed to the audience that's already 25% of delivery.
persona P04wrapper W03
emergingactive TST-0009 / 0012 / 0014 · 11 creatives · $1.5K · thumbstop 41% vs 24% median · pooled Meta-CAC $27.31 (2 reads KEEP, 3rd lands W27) n/a — emergingevidence
WP-0007 Objection-handling converts on the LP, not in the hook. A08 lost-pieces as cold-open: CTR flat; moved into the LP02 claim stack: read-through +9pts.
angle A08LP02
hypothesisactive TST-0011 · n=1 test · 6 creatives · $0.7K · LP-level read (rung 5) n/a — hypothesisevidence
WP-0008 Price-reframe (A12, one-time vs Lovevery subscription) cannot run as a cold-open. Cold traffic won't carry comparison math in 3 seconds.
angle A12offer O05
hypothesisactive TST-0006 · KILLED at G2 (CPC $1.71 · read-through 19% · $288 · purchases under guard) n/a — hypothesisevidence
WP-0009 Kitchen-selfie "spark of learning" opener (W06 × H08) clears G1 for P05. Seed-proven off the account's longest-running opener family.
persona P05wrapper W06hook H08
provendecaying seed: longest-runner opener family baseline · last confirmed 2026-03-12 (seed reconstruction) · 90d elapsed 2026-06-10 → auto-flagged flagged 06-10 · revalidation TST-0016 queued W27evidence
WP-0001 "Recycled 2024 mom-testimonial UGC still converts." The account's #1 historic failure, formalized so it can never repeat silently.
wrapper W06ugcaccount-wide
was provenretired 06-26 seed: carried the bulk of 2025-26 scale; winning ads were recycled 2024 UGC that no longer converts baseline · re-test TST-0004: Meta-CAC $41.27 vs $29 breakeven → failed flagged decaying AT INGEST (last confirmed 02-08, >90d) → revalidated → failed → retiredevidence
Every evidence figure on this table is a query against fact_creative_day through the concept join, recomputed nightly — if cited rows get re-attributed or a cited test is reopened, the pattern flags itself stale. A decided test with no learning link is flagged incomplete (0 currently). Scope tags are registry foreign keys, never free text. Reconciliation with the weekly scorecard: the scorecard counts week-W26 movements (1 promoted · 3 active · 1 retired); this ledger is the full set including seed-decode patterns ingested 2026-06-15, whose half-life clocks started from their last reconstructed confirmation, not from ingest.

Decay watch — half-life automation

Proven patterns only · 90-day confirmation clock · auto-flag, never auto-delete
PatternLast confirmedClockStateAction
WP-0004 advertorial gate2026-06-26 (CON-0007 graduation)decays 2026-09-24healthy
WP-0005 hook skeleton2026-06-26 (7/7 reads on skeleton)decays 2026-09-24healthy
WP-0006 faith seam2026-06-26 (CON-0007 SCALE)decays 2026-09-24healthy
WP-0009 kitchen-selfie opener2026-03-12 seed est.elapsed 2026-06-10decayingrevalidation TST-0016 · W27 · H08 suppressed in EV scorer
WP-0001 recycled UGC2026-02-08 seed est.elapsed at ingestretired 06-26re-test failed · recut lane closed
Confirmation = a cited cell clearing its gates with fresh spend inside the window; the nightly job moves last_confirmed_at automatically — no human remembers anything. Emerging and hypothesis patterns are exempt: they either accrue tests toward proven or die by counter-evidence. This automation is the direct answer to the recycled-2024-UGC failure: a decayed pattern can be flagged, but it can no longer be silently spent against.

How a pattern lives and dies

The compounding loop, state-machined
born every DECIDED test must link a learning (feed or contradict a pattern) — unlinked decided tests flag incomplete; n=1 enters as hypothesis
promoted hypothesis (n<3) → emerging (3-5 tests) → proven (6+) — strength is a count, not an opinion
acts proven patterns write a briefing_default into the brief skeleton and SPAWN concepts into the queue (source = pattern-spawn) — learn → generate, the loop closes
decays proven + unconfirmed 90d → auto-flag → revalidation test auto-queued → re-confirm or retire
dies retirement requires a failed revalidation AND a replacement in test — never a creative vacuum; the row stays queryable forever
Briefing defaults currently active
4 of 7 eligible patterns drive a default: LP gate (WP-0004) · brief skeleton (WP-0005) · P03 standing slot (WP-0006) · P04 grandparent-voice open (WP-0003) — H08 default suspended while decaying

Leaderboards — hook family & authority figure

Spend-weighted, Meta basis · grey = minimum-data guard or no data · live cols are W25-26 representative
Hook familySeed provenanceLive n · spendThumbstopMeta-CACSaturation / EV state
H06 anti-screen164d baseline9 · $1.9K37%$22.60proven · revalidated W26 was suppressed (incumbent fatigue) → fresh faith wrapper won → reinstated
H03 authority cold-open119d baseline20 · $3.6K38%$28.33proven-seed · emerging-live (WP-0002/0003)
H05 faith-duty417d baseline0 liveproven-seed fresh test queued (CON-0016)
H04 status-mom366d baseline4 · $0.5K26%$43.91watch first live read missed — one read ≠ family verdict
H08 spark-of-learninglongest-runner opener baseline4 · $0.6K21%$41.27decaying · suppressed (WP-0009 → TST-0016)
H07 small-biz-relatability164d baseline0 liveproven-seed unqueued
H01 category-king · H02 rush-bandwagonin ~100% of seed ads baselinestructural — skeleton layers, never the tested variable (see WP-0005)skeleton
A fatigued hook flips its registry saturation_state and is suppressed in the EV scorer until a fresh wrapper revalidates it — H06 is the worked example: fatigued on the P05 Busy Book incumbents, revalidated in one week by a fresh wrapper on P03. Saturation is validation; the wrapper is where differentiation lives. The A08 "proof" opener from TST-0011 has no registry family yet — H09 proposed at the 07-01 monthly matrix audit (registries are append-only, human-approved).
Authority figureLive nThumbstopMeta-CACState
Grandparent (W03)1141%$27.31challenger — top thumbstop 2 KEEP reads
Kindergarten teacher538%$28.98incumbent control seed spine, 119d baseline
SLP433%$29.39grade C — small n
OTqueuedCON-0015
Sunday-school teacherqueuedCON-0016
Veteran mom-of-fivebacklogidea
The authority ladder is the wrapper-differentiation engine on the proven fine-motor-anxiety spine — same hook formula, new credentialed voice each rung (07-creative week-one candidates). Confidence grades by sample size: everything here is C until a figure accrues 10+ reads.

Leaderboards — wrapper win-rate & talent hit-rate

Win = SCALE or KEEP on a pooled concept read · 7 reads decided to date · all grades C until n≥10 per row representative
WrapperReadsVerdictsWin rateMeta-CAC
W09 day-in-life1SCALE 11/1$22.60
W03 grandparent passing-down2KEEP 22/2$27.31
W01 teacher-testimonial1ITERATE 1 (rung 3 re-hook)0/1$28.98
W06 kitchen-selfie2KILL 20/2$42.38
W08 side-by-side (kit vs iPad)1KILL 1 (G2)0/1guard
W07 unboxing-demo0 (LP-level read only)TST-0011 page read$33.43
W04 podcast · W05 street-interview · W10 founderunexplored — concept-differentiation headroom
One losing concept never kills a cell — it kills a wrapper (per-cell verdicts need 2+ concepts). Both W06 kills were decayed-lane re-tests, which is the half-life system working, not a wrapper indictment in fresh hands; W06 re-enters only via TST-0016.
Talent / laneLaunchesG1 passG3 reachRoster decision
T02 · affiliate (CON-0007 lane)1258%25%renew briefed off validated AI prototype
T-AI · in-house Seedance lane3139%17%expand ~$31/launched vs $52 account · 24h SLA · 2 prototypes promoted to affiliate briefs
T05 · affiliate922%0%brief narrower hook drift vs skeleton in QA lint
T07 · affiliate (new)4early — n<8hold judgment
T03 · recut lane813%0%closed per WP-0001 retirement
Talent is a first-class registry dimension — these rows ARE the roster decisions, derived from the same fact table as everything else. The AI lane's job is prototype-before-brief: soft-test the hook in-house, brief affiliates only on concepts that already show signal. SLA clocks: affiliate 5-7d, AI lane 24h.

Fatigue half-life by concept

Predicts refresh demand for the queue · triggers: frequency >4.0 · CTR −25% vs 14d peak ×3 days · CAC +20% WoW ×2 · first-time-impression <30%
Concept laneCopiesAge / peakFrequencyStateRefresh action
Busy Book / Learning & Play incumbents187 baseline186d max baseline4.0-5.4 baselinefatigued FTI <30%refresh briefs auto-spawned (ISS-018): CON-0010 W08 · CON-0011 W09 — same cell, new wrappers; incumbents retire only when a replacement wins in test
Educational Kit111 baseline118d baseline3.6 representativewatch CAC +14% WoW (trigger at 20% ×2wk)refresh brief drafted, unqueued
Faith Kit48 baseline240d baseline2.9 representativealive at 240dsupply-up instead (WP-0006 standing slot)
Magic Kit17 baseline119d baseline2.4 representativehealthy
CON-0007 (graduated W26)5 clones wk 112d1.8freshcopy-clone expansion on hold-status per graduation protocol
First LIVE half-life estimate needs 4+ scaled live concepts (ETA Q3) — until then the honest read is the seed contrast: the 187-copy concept fatigued while the 48-copy concept is alive at 240 days, i.e. copy-count, not calendar age, looks like the burn-rate driver. Provisional planning number: ~2 refresh briefs/week through July, injected into the queue between Mondays (source = fatigue-trigger). Fatigue aggregates creative → concept → hook: a fatigued hook flips its registry saturation_state (see H06/H08 in the hook leaderboard).

Rollup explorer

Any historical question is one GROUP BY against fact_creative_day through the concept join — not a meeting
Group by
Date range
Persona filter
 run query
Saved queries:  P03 faith statics vs UGC · 2025-Q3 Persona · TTM Landing page · TTM P×A×O cell · live Wrapper · live
GroupCreativesSpendPurchasesRevenuesw-ROASMeta-CACNote

Calibration — keeping the engine honest

Attribution correction · verdict backtest · versioned thresholds — rules decide, and the rules themselves get audited
PeriodMeta ROASShopify-trueFactorΔ vs ÷1.40Action
TTM average1.921.371.40locked into v1.0 gates baseline
2026-031.971.381.43+2.1%within band seed est.
2026-041.941.371.42+1.2%within band seed est.
2026-051.891.371.38−1.5%within band seed est.
2026-06 MTD2.051.451.41+0.9%refit lands 07-01 representative
The 1.40 is over-attribution, not signal loss (match quality 9.1/10) baseline — so it's a correction factor, not a bug to fix. Refit monthly against Shopify referrer revenue. Per-concept rule on top of the account factor: every SCALE re-validates on Shopify-true within 7 days of graduation; divergence >15% from 1.40 freezes the ramp. Next check: CON-0007, due 2026-07-03.
Verdict backtestStatus
Quarterly backtests run0 — first window opens 2026-09-15 (needs 90d of verdicts + 30d truth lag)
Verdicts accrued for re-scoring7 (1 SCALE · 3 KILL · 1 ITERATE · 2 KEEP) — each will be re-scored against its subsequent 30-day Shopify-true outcome representative
Threshold-move trigger>20% of SCALE/KILL verdicts wrong in one direction → gates move, change logged below
Human overrides to audit0 logged — overrides require a written reason and get back-tested alongside the rules
Shadow backtest on seed historyv1.0 fatigue rules replayed over reconstructed seed facts fire on the recycled-2024 lane in early Feb 2026 (frequency + CTR-decay triggers); spend after trigger ≈ $118K illustrative — reconstructed attribution, directional only. That figure is the case for the engine, not a measurement.
KILL wrongness is the expensive blind spot (a killed concept generates no future data), which is why the backtest re-scores kills against lookalike-cell performance, not just the dead concept's own tail. Until 09-15 this panel reports zero — a backtest you haven't run yet is not a number.
VersionDateThreshold changeWhy (citation required)Status
v1.02026-06-15Initial gate set: G1 $25 / 2K impr (thumbstop ≥20%, CTR ≥ p25, seed floor 0.9%) · G2 $70 cum (CPC ≤$1.40, read-through ≥30%) · G3 $125 · pooled read 10 purchases or $500 · SCALE ≤$25 Meta-CAC ∧ ≥10 purchases ∧ read-through ≥30% ∧ worst-plausible ≤$29 · KILL >$29 or 0 purchases by $250 · correction ÷1.40 · pattern half-life 90dDerived from real economics: AOV $76.58 · contribution-breakeven true ROAS 1.89 → Meta-CAC $29 · scorecard true CAC $35 → Meta-CAC $25 baselineactive
v1.0.1W27Recalibrate G1 CTR floor from seed 0.9% to account-true trailing-30d p25Seed floor was a placeholder pending 30 days of live distribution — flagged at v1.0 shipproposed
standingGate-drift review: per-variant kill rates off the expected 60/25/15 curve by >10pts for 2 weeks → threshold review firesW26 actuals 58/24/19 — inside band, no reviewmonitoring
Thresholds are versioned, not sacred — but a change without a backtest citation or calibration drift behind it doesn't merge. This changelog is append-only, same as every registry.