Status
Quick Checks
Use these first to confirm KV + upstreams are alive.
Defaults
This UI avoids preflight traps where possible. If you still see TypeError: Load failed, your Worker likely needs CORS/OPTIONS enabled for that route.
Teams
Upload Team Stats CSV
Upload TeamWell CSV into the Brain KV. Prefer
week + merge=true for stable ops.Get Team (KV)
Tip: Week/team keys are strict in your worker — make sure they match the ingest.
Matchup Sim
Run Sim
Modifiers
Enable/disable split-driven modifiers. Safe to send even if the worker ignores it.
This sends
{season, week, home, away} as JSON. A 400 usually means missing fields or teams not found in KV.Market + Grading
Enter market lines to grade vs market. Leave blank to grade model-only. You can also run both.
Market (optional but recommended)
If you leave these blank, the UI will send
null (not 0) and the Worker should disable grading/anchors for missing markets.
Model-only uses reference lines (spread 0, total 44.5) when market is blank.
Model · Registry & Weights
Stat Registry
Inspect the canonical feature contract: sources, types, defaults, direction.
Weights Profiles
Save weights to KV (no redeploy). You can also include per-stat weights like
"pass_rate": 1.5.Team Features (Explainability)
Audit (Data Integrity)
Find missing/default-like fields per team and catch silent drops fast.
Props
Upload Props
POST /props/upload. You can paste raw props text or upload a CSV.
Sim / Score
POST /props/sim. This UI sends multipart (FormData) to avoid OPTIONS preflight.
If /props/sim still fails with Load failed, your worker needs to answer OPTIONS for that route or allow your UI origin.