A civic intelligence platform that publishes a Weekly Distraction Index — a frozen, immutable weekly snapshot scoring democratic damage vs. manufactured distractions during the Trump administration.
Live at distractionindex.org
Every political event gets two scores:
- Score A (Constitutional Damage) — Measures real governance harm using 7 weighted drivers, severity multipliers, and mechanism/scope modifiers.
- Score B (Distraction/Hype) — Measures media hype and strategic distraction using a two-layer model with intentionality testing.
Events are classified into:
- List A (Real Damage) — High A-score, dominance margin >= +10
- List B (Distractions) — High B-score, dominance margin <= -10
- List C (Noise) — Low-salience events failing the noise gate
The Smokescreen Index pairs high-B distractions with high-A damage events to surface when media spectacle may be covering for substantive harm.
Weeks run Sunday-Saturday (ET). The current week updates live; past weeks freeze permanently. No data is ever changed after a week closes. Post-freeze corrections are append-only.
- Frontend: Next.js 16 + React 19 + Tailwind CSS v4
- Database: Supabase (PostgreSQL,
distractionschema) - AI Scoring: Claude API (Haiku for clustering, Sonnet for scoring)
- News Sources: GDELT + GNews + Google News RSS
- Hosting: Vercel with cron jobs for automated ingestion
npm install # Install dependencies
npm run dev # Start dev server at localhost:3000
npm run build # Production build
npm run test # Run 180 tests across 18 files
npm run lint # ESLintThe ingestion pipeline runs automatically every 4 hours:
- Ingest (
:00) — Fetches articles from 3 news sources, deduplicates, stores - Process (
:05) — Clusters articles into events (Claude Haiku), scores events (Claude Sonnet), runs smokescreen pairing - Freeze (Sunday 5am UTC) — Freezes previous week, creates new week snapshot
CLAUDE.md— Developer guidance for Claude CodePLAN.md— Implementation plan with phases and architecturedistraction-index-spec-v2.2.md— Complete product specification (algorithms, data model, UI)
- 59+ weeks of historical data (Dec 29, 2024 - present)
- 1,500+ scored events
- 11,800+ ingested articles
- 210+ smokescreen pairs identified