trends.stumason.dev
TypeScript
Pull Request Opened
PR #109 opened: feat(reports): scoreboard — the credibility chart
Summary
New `/reports/scoreboard` page that backtests the HN predictor on the last 7 days of real front-pagers. For every story that peaked above 300, we ask: at hour 1, 2, or 3 since publish, was its score above our flag threshold? The verdict column shows which snapshot caught it (or whether it slipped through).
Together with `/reports/predicting-hn` (PR #108), this is the LinkedIn-content engine:
- Monday: post the 5 highest-velocity stories from /predicting-hn
- Friday: post last week's scoreboard with hit rate
- Trust compounds. Predictions stop being vibes, become numbers.
Filter rule (transparent)
Story counts as a catch if:
- score ≥ 20 at hour 1 since publish, OR
- score ≥ 50 at hour 2, OR
- score ≥ 80 at hour 3
No machine learning. No tuned coefficients. One rule, three snapshots.
Backtest output
Computed live from `raw_items` with a 1h cache. Realistic numbers based on the data:
- ~30% hit rate with hour-1 snapshot alone
- ~47% with all three snapshots
- Pure slow-burners (5-10% of front-pagers) need different signals — we say so honestly in the methodology narrative.
Test plan
- `npm run build` passes
- `vendor/bin/pint --dirty` passes
- Post-merge: verify `/reports/scoreboard` renders on prod
- Verify stat grid pulls live numbers, leaderboard pulls live data
+214
additions
-0
deletions
2
files changed