Objective
Independently replicate the RecessionAlert inventory row for Measuring Selling Pressure from the checked-in data/recessionalert.sqlite snapshot without live-site requests, credentials, private account data, or canonical crawl-database mutation.
Source and provenance
Primary page https://recessionalert.com/measuring-selling-pressure-for-market-entry-timing/ bound to SHA256 sha256:c41fb90db6a299667062ed511ed8dacb12c603db6be4640cf26ec01d20dbbd34, fetched 2026-08-22T23:43:32Z. Zero linked assets. Related Improved/DeMark page owned by #1429. Public proxies loaded read-only from data/market.sqlite.
Disclosed rule, native span, and publication lag
Documented fragments include six price-action components with diffusion count, 4% peak-to-trough correction threshold, buy when diffusion rises above 4 then falls below, sell warnings on 0→1 and 1→2, and 5-minute subscriber refresh. No native component or diffusion observations are pinned. Campaign uses daily close with lag 0/1/2 grid (lag≥1 causal default).
Approach and variants
Primitives in research/research_campaign/recessionalert_1473.py. Families: six-component original, component-parameter-grid, breadth-advisory-gate, sell-warning overlay, SPY/IEF buy overlay. Trial ledger: 15 variants across lag 0/1/2 and nearby windows/thresholds.
Results (exploratory)
Best tested causal Sharpe: spi-breadth-advisory-gate-lag1-gspc (Sharpe ~0.818, CAGR ~14.3%). Simplest reasonable documented reconstruction: six-component original lag1 on ^GSPC. Disposition: exploratory_tested_proxy with explicit no-go for playable indicator promotion.
Files and validation
research/campaigns/recessionalert-measuring-selling-pressure-1473/campaign.jsonresearch/campaigns/recessionalert-measuring-selling-pressure-1473/synthesis.jsonresearch/findings/1473.mdtests/test_recessionalert_1473.py
Validation: python3 -m pytest tests/test_recessionalert_1473.py -q (11 passed).