Objective
Follow-up to #911 for https://recessionalert.com/recession-forecasting-with-the-anxious-index/ pinned at sha256:91b3792b9d00ecf469c3331c00ed642ab51bb5588deacb3eaec868ffb1cba053. Review only the durable offline snapshot; do not live-crawl or invent thresholds. Publish a fail-closed indicator/strategy specification with page and asset SHA256 provenance, disclosed semantics, native and effective spans, timing/cadence, revision limitations, and an explicit no-go disposition where evidence is insufficient.
Approach
- Verified offline page cache and SPF fixtures (page
91b3792b…,spf_prob.xlsx71b1e506…,spf_recess.csvf5ada538…) without live crawl or DB mutation. - Wrote fail-closed spec
research/findings/specs/recessionalert-anxiety-index-1555.jsondefiningrecessionalert-anxiety-indexas an Other-indicators sell-side recession warning (anxious >= 28.2), with explicit no-go for portfolio allocation rules and AnxiousIndex.gif redistribution (page_url asset rows=0). - Locked provenance/spans: native SPF RECESS2 1968Q4→2026Q2 (231 quarters); effective monthly 1968-11→2026-06 (692 months) via release months 2/5/8/11; never-revised; ~6-week publication lag.
- Validated causally via
research.recessionalert.anxiety_index: AUC 0.927 full / 0.944 pre-2012 (page claim 0.94), accuracy 0.877 at 28.2; values change only on release months; extra +1m lag AUC drag ≈0.010–0.012. Labeled adjacent diagnostics at thresholds 25/30 retained as inferred sensitivity only. - Decision=promote for Other indicators (already registered from qm-09tp.24); strategy overlay remains no-go.
- Confirmed canonical producers: registry
research/fixtures/buy-signals-v1.json, historydocs/site-data/signals/history.json, pagedocs/other-indicators.html; shipped this changelog viapython3 -m research.reports.results.
Files / code / data changed
research/findings/specs/recessionalert-anxiety-index-1555.json— fail-closed indicator specification for issue 1555research/extensions/1555-*.json— pipeline node evidence (intake through publish)research/results/1555.md— this durable task notedocs/site-data/results.json,docs/results.html,docs/results/1555.html— rebuilt changelog- Reused read-only:
research/recessionalert/anxiety_index.py,research/fixtures/buy-signals-v1.json#recessionalert-anxiety-index,docs/site-data/signals/history.json,docs/other-indicators.html,data/recessionalert.sqlite, SPF fixtures
Validation
python3 -m research.recessionalert.anxiety_index— exit 0, output digestsha256:2a890062d547fe45d89fd3df259467aeba1ee6c51ff649631ac556af6a531a74- pipeline
temporal.causalitycheck-1 — passed (release months {2,5,8,11}, extra-lag delta stable) - pipeline
core.behavioral_proofcheck-2 — passed - Adjacent diagnostics: threshold 25/28.2/30 and +1m lag on full monthly history (documented vs inferred labeled)
- No live crawl; no secrets; no hand-edit of generated canary HTML
Results
Fail-closed specification published for the pinned Anxiety Index page. Promoted Other-indicators signal recessionalert-anxiety-index retains disclosed threshold 28.2 with SHA256 provenance for page and SPF assets. Portfolio buy/sell/allocation rules and uncrawled chart GIF bytes are explicit no-go. Distinct from issue 1355 (3Q2012 update narrative without threshold).
Links
- Spec:
research/findings/specs/recessionalert-anxiety-index-1555.json - Page: https://recessionalert.com/recession-forecasting-with-the-anxious-index/ (cached sha256:91b3792b9d00ecf469c3331c00ed642ab51bb5588deacb3eaec868ffb1cba053)
- Runner:
research/recessionalert/anxiety_index.py - Registry:
research/fixtures/buy-signals-v1.json - Other indicators:
docs/other-indicators.html - Prior replication:
research/results/qm-09tp.24.md