diff --git a/specs/hits-v1-binomial.md b/specs/hits-v1-binomial.md index e56e6d1..f7ffdaf 100644 --- a/specs/hits-v1-binomial.md +++ b/specs/hits-v1-binomial.md @@ -293,3 +293,48 @@ Supabase project ref (`zmdnczhtdxcddszxttub`; the real ref is unaffected — the deployed API and the MCP connection both use the correct ref. The holdout was run with an explicit `SUPABASE_URL` override rather than editing your credentials file. + +## 11. POST-DEPLOY FINGERPRINT — armed, PENDING (blocked upstream, not by this change) + +Deployed 2026-08-02 ~23:05 UTC (the API 502'd and returned at 23:05:35, right +after the push). The **prod-write fingerprint has NOT landed yet**, and the +reason is upstream of this work: + +``` +POST /api/internal/snapshot/mlb -> {"status":"error","gradeCount":0, + "reason":"Odds data temporarily unavailable"} +GET /api/odds/mlb -> HTTP 429 +GET /api/internal/snapshot/status -> overdue: true, mlb last 2026-08-02T07:30:46Z +``` + +**The odds provider is quota-exhausted (429), so the pipeline cannot grade a +slate at all.** The MLB board has been frozen since 07:30 UTC and the 14/19/22 +UTC cron slots all failed the same way — every one of them before this change was +deployed. hits-v1 is inside the snapshot's existing try/catch and is purely +additive; it cannot be the cause, and there were zero grades for it to attach to. + +If PropLine's quota resets at 00:00 UTC, the 01:00 UTC cron slot should be the +first successful run. The fingerprint to confirm hits-v1 is writing in prod: + +```sql +select count(*) rows_today, + count(proj_hits_p_over) hits_v1_written, + round(avg(proj_hits_p_over)::numeric, 3) mean_p, + count(*) filter (where proj_hits_meta->'market'->>'market_takeable' = 'true') takeable, + count(*) filter (where proj_hits_meta->'market'->>'within_promotion_band' = 'false') outside_band +from public.ledger_entries +where sport = 'mlb' and user_id is null and stat = 'hits' + and graded_at > now() - interval '6 hours'; +``` + +Expected on a healthy run, from the live-board verification in §7: `hits_v1_written` +at roughly 99% of `rows_today`, and a substantial `outside_band` count that was +modelled anyway. + +**Firing itself is already verified** — §7 ran the production `attachProjection` +over the real production snapshot payload and got 158/159. What is pending is +only the confirmation that the deployed process writes the columns, which needs a +slate the pipeline can actually fetch. + +**Flagged for its own order, out of scope here:** the odds quota exhaustion is a +live production outage of the whole grading pipeline, not a hits problem.