NilsBriggen
|
d604bb14ff
|
Phase 2: predictive model — Elo + Dixon-Coles + Monte Carlo
- buildRatings.ts: walks 49k historical results → World-Football-Elo per team,
data-calibrated goals model (goals-per-Elo slope, mean goals) + MLE-fit
Dixon-Coles rho. Top: Spain/Argentina/France (the real 2026 favourites)
- src/lib/model: elo, poisson/dixon-coles, predict, host-advantage, monteCarlo
(full 48-team sim — group sampling, best-third bipartite allocation, knockout
advance probs). 20 vitest cases incl. exact per-round count invariants
- Server ModelEngine: live Elo re-rating after each result, per-match W/D/L,
20k-sim odds, odds-over-time history; broadcast on finished-result changes
- Client: championship board, heat-shaded odds table, lazy-loaded title-race
chart (Recharts split to its own chunk), match-prediction bars, bracket
advance overlay
- Verified: odds render, chart populates as injected results re-rate teams live
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 13:25:53 +02:00 |
|
NilsBriggen
|
9a31e9f4db
|
Phase 1: live dashboard — fixtures, scores, group tables, bracket
- Shared domain model (types, team metadata/flags/aliases, FIFA-tiebreak standings)
- buildFixtures.ts: openfootball 2026 → normalized fixtures.json (104 matches,
ISO-UTC kickoffs, pretty knockout placeholders)
- Fastify live layer: seed load, football-data.org poller + SofaScore enhancement
(feature-flagged, fallback), dynamic live-window polling, WS snapshot push,
REST /api/snapshot, dev /api/dev/score injection
- Client: tournament store (REST + WS + static-file fallback), MatchCard,
TeamLabel, GroupTable, Live/Groups/Bracket pages, live connection indicator
- Verified: WS pushes a dev-injected result; standings recompute live in-browser
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 13:04:31 +02:00 |
|
NilsBriggen
|
4e4e75a1d8
|
Phase 0: scaffold cup26 — Vite+React+Fastify TS PWA, broadcast theme, app shell
Mirrors the TTRPG stack (strict TS, Tailwind 4, vite-plugin-pwa, esbuild server
bundle, multi-stage Dockerfile, Traefik compose). Floodlit-pitch design tokens,
UI primitives (Button/Card/Badge), TanStack Router shell with Live/Groups/
Bracket/Predict/Story routes (placeholders), dependency-free PWA icon generator.
Raw data staged: openfootball 2026 fixtures + martj42 international results CSV.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 12:49:13 +02:00 |
|