{
    "schema": "MP_NEWS_SCANNER_CLIENT_BRIEF_V1",
    "generated_at_utc": "2026-09-09T22:54:39+00:00",
    "git_sha": null,
    "focus_day": "2026-09-09",
    "baseline_day": "2026-09-09",
    "headline": "After-hours news scanner OpenAI budget hardening (windows + dedup) \u2014 2026-09-09",
    "deploy_note": "Post-fix cadence is active on 2026-09-09.",
    "dashboard_url": "https://garydsnakee.com/mp-preparation/news-scanner-budget?date=2026-09-09",
    "what_changed": [
        "After-hours news scanner now runs every minute only during ET windows 16:00\u201323:59 and 00:00\u201306:44 (not 24/7).",
        "Market hours 06:45\u201315:59 ET are covered by the existing Fast News pipeline \u2014 duplicate scanner removed.",
        "After-hours classification is rules-only (zero OpenAI). Headline disk + Redis dedup still prevents repeat work; reject cache 72h; prepared headlines 7 days.",
        "Aug 21 spike was driven mainly by 24/7 scanning, short reject cache, and Redis cache loss replay \u2014 not a single evening trigger alone."
    ],
    "what_unchanged": [
        "Fast News RTH pipeline, A+ confirmation, paper trading rules, streaming, and MP history prep behavior are unchanged.",
        "After-hours scanner remains candidate-only \u2014 it never enters trades.",
        "Overnight/weekend breaking news is still scanned during after-hours windows."
    ],
    "metrics": {
        "focus_day": {
            "openai_total": 0,
            "total_runs": 489,
            "new_cadence_runs": 489,
            "new_cadence_openai": 0,
            "old_cadence_openai": 0,
            "zero_openai_rate": 1,
            "dedup_disk_hits": 26603
        },
        "baseline_day": {
            "day": "2026-09-09",
            "openai_total": 0,
            "total_runs": 489
        },
        "openai_delta_vs_baseline": 0
    },
    "seven_day_trend": [
        {
            "day": "2026-09-09",
            "total_runs": 489,
            "openai_total": 0,
            "new_cadence_openai": 0,
            "old_cadence_openai": 0,
            "new_cadence_runs": 489
        },
        {
            "day": "2026-09-08",
            "total_runs": 791,
            "openai_total": 0,
            "new_cadence_openai": 0,
            "old_cadence_openai": 0,
            "new_cadence_runs": 791
        }
    ],
    "email_subject": "MP after-hours news scanner \u2014 OpenAI budget fix summary (2026-09-09)",
    "email_body": "Hi,\n\nSummary of the after-hours news scanner OpenAI budget fix (deployed Aug 22 ET evening):\n\nWHAT WE FIXED\n\u2022 Scanner no longer runs 24/7. It runs every minute only during ET windows 4:00pm\u201311:59pm and 12:00am\u20136:44am.\n\u2022 Regular market hours (6:45am\u20134:00pm ET) use the existing Fast News pipeline \u2014 no duplicate scanning.\n\u2022 After-hours classification is rules-only (zero OpenAI). Live Fast News OpenAI is cached per headline and paused by the spend circuit if quota is hit.\n\nWHAT DID NOT CHANGE\n\u2022 Fast News, A+ confirmation, paper trading, streaming, and MP history prep are unchanged.\n\u2022 The scanner still never enters trades \u2014 it only prepares A+ history candidates.\n\nNUMBERS \u2014 2026-09-09 (ledger-backed)\n\u2022 OpenAI calls (all day): 0\n\u2022 New cadence OpenAI: 0 across 489 runs\n\u2022 Zero-OpenAI new-cadence runs: 489 / 489\n\u2022 Cached headline skips: 26,603\n\u2022 Baseline compare (2026-09-09 spike day): 0 OpenAI calls that day\n\u2022 Post-fix cadence is active on 2026-09-09.\n\nLIVE DASHBOARD\nhttps://garydsnakee.com/mp-preparation/news-scanner-budget?date=2026-09-09\n\nAug 21 context: elevated usage was mostly from 24/7 scanning plus cache replay during the Redis/disk incident \u2014 not caused by a single 7:46pm trigger alone.\n\nThanks,"
}