Lead-Lag Verification · 27 tested · 13 re-verified · 1 passed

27 lead-lag pairings tested. One passed re-verification.

We tested 27 feed → stock lead-lag relationships across 9 alt-data families. 13 were run through independent re-verification — consistent windows, non-overlapping significance, data-bug fixes, out-of-sample checks. 12 failed; 1 passed, marginally. Only pairings that pass re-verification are published.

Revision note

The original 27-pairing ranked gallery (built_utc 2026-07-14) is retired. Every pairing that could be re-derived from stored data was adversarially re-verified from scratch: raw feed tables audited for natural-key duplication, windows rebuilt on the longest clean common span, ICs recomputed on non-overlapping subsamples at every phase offset, chronological 70/30 IS/OOS re-run, outlier and adjacent-horizon sensitivity tested. Full detail in LEADLAG-PROOF-V2.md.

Verification criteria
all required
Gate
n ≥ 30 weekly / ≥ 15 monthly independent (non-overlapping) observations
|t| ≥ 2 at every non-overlapping sampling phase, not just the best one
same-sign in-sample and out-of-sample on a chronological 70/30 split
seasonal feeds must survive seasonal adjustment (tested directly)
feed natural-key deduplication audited before any aggregation
both signal and ticker must have verifiable price data on the box
Passed re-verification · OpenTable US seated diners (YoY)CAKE (Cheesecake Factory)
1 day: IC +0.112 (t=2.5) · n=497 · OOS same sign

Borderline — entering forward validation, not a trade.

Ticker
Horizon
IC (IS)
t (IS)
IC (OOS)
CAKE · Cheesecake Factory
1 day
+0.118
2.2
+0.096
Why it passed

h=1 daily observations are inherently non-overlapping, so n=497 is real, not inflated.

Not outlier-driven: dropping the single largest observation gives IC +0.116 (t=2.60) — the effect gets slightly stronger, not weaker.

A rolling-7 variant of the same signal confirms independently: IC +0.118 (t=2.64), OOS +0.136.

Feed hygiene checked directly: 922/922 distinct signal dates, 500/500 distinct CNBC closes, zero duplicate rows.

Caveats that keep it borderline

The effect collapses at the very next horizon: the adjacent 2-day lag gives IC +0.016 and the OOS sign flips. This is a one-day phenomenon, not a multi-day drift.

Real-time tradeability caveat: day-t diner data is only complete after day t ends, so trading the day-t close on same-day data is not actually achievable — the live rule (LL-OPENTABLE-CAKE) trades the next available close, which is the honest, tradeable version of this.

See it: signal vs. stock, indexed & aligned
the one pairing that passed re-verification

OpenTable US seated diners (YoY) (ink, left axis) plotted against CAKEclose (blue, right axis) over the real overlap window, and the IC-by-horizon bar chart showing where the lead peaks — and where it collapses one day later.

OpenTable US seated diners (YoY)CAKE
d1: IC +0.106 (t=2.37) · n=498· independently recomputed
OpenTable US seated diners (YoY)CAKE · Cheesecake Factory2024-07-162024-12-052025-05-012025-09-242026-02-172026-07-10
OpenTable US seated diners (YoY) (indexed 100)CAKE (indexed 100)
+0.11+0.11+0.04+0.01+0.01+0.16-0.01+0.25-0.24-0.08-0.29d1d2d3d5w1w2w3w4m1m2m3
Spearman IC by horizon (d1–d5 trading days, w1–w4 weeks, m1–m3 months) · zero line at center · d1highlighted · note the 2-day horizon has already decayed to near zero · n/a = insufficient non-overlapping n

Borderline, entering forward validation — research, not a trade.

Signal = OpenTable US country-level daily YoY seated diners, rolling7day_yoy_pct (7-day trailing mean, as documented), first-differenced day-over-day for the IC predictor; chart shows the rolling7day_yoy_pct level indexed (additively rebased since the series crosses zero). Real independent recomputation on the same table/scope as the method doc's flagship series.

Chart replication check: independently recomputed IC +0.106 (t=2.37, n=498) from the stored chart series — consistent with the published figure. The other 5 chart blocks from the original gallery were removed after their pairings failed verification.

Pairings that failed re-verification
12 of 13 re-verified

Each of these was a published, ranked result in the original gallery. Each is listed with the re-derived statistic and the specific reason it failed.

PairingPublishedVerifiedFailure reason
lumber_price_ppi → LOW
3 months
IC −0.405, t=−2.73, n=40−0.555 median honest construction, best phase t=−1.29, n=7 per phase
seasonality artifact + n-inflated 2×
n was inflated ≈ 2× by pooling 5 near-duplicate BLS PPI series as if independent. Separately, and fatally on its own: the effect vanishes completely under seasonal adjustment — the SA series gives IC +0.04 on the identical window, while the isolated seasonal factor alone gives IC −0.66 (t=−3.81), stronger than the published signal. The annual lumber calendar happened to coincide with LOW's calendar return pattern for ~2 cycles.
tsa_passenger_volumes → DAL
3 days
IC +0.178, t=2.40, n=124+0.169, t=1.07, n=41
sign-flip IS/OOS
Under consistent (deseasonalized, publication-lagged, non-overlapping) methodology, t drops to 1.07. In-sample is −0.04 vs out-of-sample +0.64 — a straight sign flip; the aggregate was carried entirely by the last ~3 months of a 128-bar window.
lumber_price_ppi → HD
3 months
IC −0.307, t=−1.99, n=40−0.179 median, best |t|=1.88, n=117
sub-significant tilt (demoted to candidate)
Honestly rebuilt on the full 2016–2026 window (n=117): sign is consistent across horizons and not outlier-driven — a real but modest tilt — but the best non-overlapping phase only reaches |t|=1.88, under the ≥2 bar. The published t was already sub-threshold before this re-check.
nrc_reactor_status → SO
1 week
IC −0.328, t=−2.46, n=52−0.146, t=−1.49, n=103
window-truncation
Feed data verified perfect against official NRC archives (1,476/1,476 rows match). But the published stat used only a 1-year database window; the full 105-week window — which official archives make available — collapses to t=−1.49. The published stat was the short window the tool happened to have loaded.
nhtsa_recall_filings → F
1–2 months
IC −0.267 (m2), t=−2.06−0.188, t=−0.86, n=22
data bug (dedup)
NHTSA's potaff field is a campaign-level total repeated on every model/component row — a confirmed 56–100× overcount. After deduping to one row per campaign, the effect is dead: all change-based ICs are |t|<1, and in-sample/out-of-sample signs disagree at every horizon.
box_office_daily → IMAX
2 weeks (contrarian)
IC −0.294, t=−2.18, n=52−0.145, ~−1.1, n=103
phase artifact
The published number reproduces exactly — as one specific non-overlapping sampling phase (phase0, t=−2.21). The other phase is null (−0.013, t=−0.09). A real effect does not live in exactly one anchor day; full-sample significance is p=0.145.
opentable_diners → CMG/DPZ/TXRH/EAT/DRI
1 week (basket)
IC +0.155..+0.175, t≈2, n=130basket +0.059, t=0.58, n=98
impossible n / noise signature
Published n=130 non-overlapping weekly obs is impossible on the ~500-bar CNBC window (max ~98). Per-ticker weekly ICs range from −0.047 (DPZ) to +0.073 (CMG) — essentially zero — and the basket IC swings −0.112..+0.088 across the 5 weekly anchor-day phases: a textbook noise signature, not a signal.
nrc_reactor_status → NRG
2 weeks
IC −0.242, “sign-consistent every horizon”+0.06 full window; per-horizon −0.14..+0.81
sign-flip on full window
The published sign-consistency claim does not hold on the full 104-week window: w1 −0.006, w2 +0.060, w3 +0.091. Window truncation again (published n=51 vs 104 clean weeks available). Not outlier-driven — the one large NRG week was a real acquisition event, but the rest of the series doesn't support the direction.
nhtsa_recall_filings → GM
2 months
IC +0.332, t=2.51, OOS +0.453+0.266, t=2.09 (phase0 only); OOS +0.063
phase artifact
Survives the dedup fix arithmetically, but the entire effect lives in one sampling phase (t=2.09); the other phase is flat (−0.009). Out-of-sample collapses to +0.063 versus the published +0.453. The sign also contradicts the Ford recall mechanism — as the original study itself flagged before publishing anyway.
box_office_daily → DIS / PEJ
1–2 months
PEJ m2 IC +0.322+0.164, t=0.50, n=11 non-overlapping
small-n / one-outlier-driven
Reproduces exactly, then fails every gate: n=11 is under the ≥15 monthly floor, and the DIS leg's t=0.84 collapses to +0.064 when a single month is dropped. Direction is plausible (sign holds IS/OOS on n_oos=7); the evidence is not adequate.
indeed_postings_index → ADP / PAYX
2 weeks
IC +0.104, t_no=1.96 (ADP); +0.097 (PAYX)+0.102, median t=0.69, n=48
phase artifact + missing price data
The published t=1.96 was a favorable-phase artifact — across all 10 non-overlapping phase offsets, t ranges +0.26..+1.43. In-sample effect is essentially zero (all the signal sits in the last 30% of the window). Separately fatal: PAYX has zero close rows anywhere on the box — the published PAYX companion number was never testable.
tsa_passenger_volumes → AAL / JETS
1 week
IC +0.313 (AAL) / +0.285 (JETS)JETS +0.227, t=1.14, n=26; AAL untestable
missing price data / small-n
AAL has zero close rows anywhere on the box — half the published pairing was never reproducible from stored data. JETS fails the n≥30 weekly floor and the |t|≥2 bar; the daily variant flips to −0.02.
Method & standing gates
Signal transform
First difference (or same-weekday WoW / period-sum log change where the series is seasonal) of the aggregated feed.
Target
Forward log return over k periods; signal aligned to the first trading close after publication (no look-ahead; publication-lag caveats disclosed per family).
Statistic
Spearman IC; t computed on non-overlapping (stride-k) subsamples only, reporting the worst phase, not just the best.
OOS
Chronological 70/30 split; “holdout” = same sign on the 30% holdout.
Prices
CNBC ts-api harmony chart endpoints (1Y ≈ 500 daily bars; 5Y ≈ 10y weekly bars); robots 403 => no restriction per RFC 9309. Yahoo was never used.
No fabrication
Where a claim could not be re-derived from stored data, it is reported as untestable, not fabricated. Full culled-pairing detail and every raw number in this rebuild traces back to LEADLAG-PROOF-V2.md.
Standing gate for any future published pairing
1. n counted on non-overlapping obs only; ≥30 weekly / ≥15 monthly independent points.
2. |t| ≥ 2 at every sampling phase (report the median and worst phase, not the best).
3. Same-sign IS and OOS on a chronological 70/30 split, with IS itself non-zero.
4. Adjacent horizons same-sign or explained; single-horizon spikes are not claims.
5. Seasonal feeds must survive seasonal adjustment (test the SA series and the isolated seasonal factor separately).
6. Dedup audit on the feed's natural key before any aggregation.
7. Both legs of a pairing must have verifiable price data on the box.
8. Leave-one-out outlier check; drop-worst must not collapse the IC.
9. Longest clean common window always; no unarchived backtest may source a headline number.
10. Analysis script archived in-repo per claim, reproducible from stored tables.
Disclaimer

This page reports a verification process, not a trading system. The one survivor is a lead-lag relationship entering forward paper-validation — not a proven trade, not investment advice. The forward ledger (/track-record) is where it earns the word “signal.”

Forward validation

LL-OPENTABLE-CAKE forward-tracks from here, alongside 9 retired strategies retained in the record with their retirement reasons. See /track-record for the live paper ledger, or /demo for the Research Lab.

Track recordBack to demo