Issue 1344 — RecessionAlert monthly leading US index¶
This notebook records an offline, exploratory best-effort campaign. The cached March 3, 2016 article discloses monthly component and recession-probability context but no source-linked observations, complete transformations, publication lag, or buy/sell execution rule. The public proxies below are explicitly inferred and are not a native RecessionAlert replication.
Canonical source SHA256: sha256:deedcf22d1d280248542375b8093cf84c98462b27f8eb4f92d09c0d5e1c8b246; no live request or database write is used.
import sys
from pathlib import Path
for candidate in (Path.cwd(), *Path.cwd().parents):
if (candidate / 'research').is_dir():
sys.path.insert(0, str(candidate))
break
from research.research_campaign.recessionalert_1344 import run_campaign, run_diagnostics
campaign = run_campaign()
diagnostics = run_diagnostics()
print('tested variants:', len(campaign['variants']))
print('families:', sorted({row['family'] for row in campaign['variants']}))
print('timing rows:', len(diagnostics['timing_sensitivity']))
print('regime rows:', len(diagnostics['regime_results']))
print('event rows:', len(diagnostics['event_results']))
print('combination rows:', len(diagnostics['combination_results']))
Causal protocol¶
INDPRO, UNRATE, and T10Y3MM are month-end public proxies loaded from the tracked market cache. Lag 1 is the causal baseline (one available monthly bar after the observation); lag 2 is a conservative sensitivity; lag 0 is retained only as a same-close research diagnostic. SPY is the risk-on sleeve and IEF/BIL are descriptive defensive sleeves. Unknown inputs remain unavailable rather than being imputed as neutral or risk-on.
for row in campaign['variants']:
metrics = row['metrics']['SPY_IEF']
print(row['id'], 'cagr=', round(metrics['annualized_return'], 4), 'sharpe=', round(metrics['sharpe'], 3), 'drawdown=', round(metrics['max_drawdown'], 4), 'risk_off=', round(metrics['risk_off_fraction'], 3))
Result¶
Nine inferred variants produce executable overlay series and metrics, but those metrics cannot validate the undisclosed RecessionAlert composite. The native gaps remain: the 23-versus-21 component discrepancy, exact transformations and weights, four probability equations and calibration, release/vintage policy, and source-specific buy/sell mapping. Publish derived charts and metrics as exploratory Other / Research evidence only.