BUILD-STATE: under-querying vs out-of-data session
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W1sivYNqY2TS5ftykmHBU9
This commit is contained in:
@@ -5133,3 +5133,40 @@ Complete frontend overhaul. 18 pages, 22 API routes. `npm run build` passes with
|
|||||||
- Timestamped records in evolution_detections table, Evolution Watch content formatter
|
- Timestamped records in evolution_detections table, Evolution Watch content formatter
|
||||||
- **Migration 008:** coaching_tendencies, player_out_history, evolution_detections, unconventional_validations (all with indexes + RLS)
|
- **Migration 008:** coaching_tendencies, player_out_history, evolution_detections, unconventional_validations (all with indexes + RLS)
|
||||||
- **Integration:** 3 new blueprints registered in app.py (coaching_bp, redistribution_bp, unconventional_bp), evolution + odds_scanner extended with new endpoints
|
- **Integration:** 3 new blueprints registered in app.py (coaching_bp, redistribution_bp, unconventional_bp), evolution + odds_scanner extended with new endpoints
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session — Under-querying vs out of data (2026-08-05)
|
||||||
|
|
||||||
|
**Shipped**
|
||||||
|
- `scripts/backfill-context.js` — platoon splits backfilled to all 380 settled
|
||||||
|
hitters (was 298; ingest had only ever seen tonight's lineups).
|
||||||
|
- `scripts/reconstruct-game-environment.js` — joins the ledger's game slug to
|
||||||
|
statsapi, writes `game_context` on the LEDGER's key, pulls actual archived
|
||||||
|
Open-Meteo weather. 96/101 settled games now carry real weather; park
|
||||||
|
dimensions 15 -> 30 venues.
|
||||||
|
- `src/services/model/parkWeather.js` (+ tests) — park geometry + air read onto
|
||||||
|
HIT TYPE, not P(hit). Wind refused (no park orientation).
|
||||||
|
- `factorGate` — cluster-aware bootstrap + `effective_n`. Unclustered rows keep
|
||||||
|
the original path byte-for-byte.
|
||||||
|
- `specs/under-querying-vs-out-of-data.md` — the full record.
|
||||||
|
|
||||||
|
**Decided**
|
||||||
|
- `pitcher_contact_profile` DEMOTED: point estimate halved on 2x sample, interval
|
||||||
|
now spans zero.
|
||||||
|
- `platoon` / `platoon_severity` clear the bar but are NOT promoted — 4.5% median
|
||||||
|
contamination (season-to-date splits contain the games they predict) on a
|
||||||
|
-0.0001 bound.
|
||||||
|
- Park+weather on total_bases: 47 clusters < 500, point estimate WORSE (+0.0011).
|
||||||
|
|
||||||
|
**Next**
|
||||||
|
- Weather is reachable: ~57 days at 7 games/settled-day.
|
||||||
|
- Park geometry is NOT — 30 ballparks exist, so a venue-constant factor can never
|
||||||
|
reach 500 independent units. Needs a hierarchical fixed-effect treatment or it
|
||||||
|
stays unvalidatable.
|
||||||
|
- Point-in-time platoon splits would settle the two held passes.
|
||||||
|
- Park orientation is the one column that would unlock wind.
|
||||||
|
|
||||||
|
**Blocker**
|
||||||
|
- `git push` has no credentials in this environment; commit `7b85934` is local.
|
||||||
|
|||||||
Reference in New Issue
Block a user