WorldCupQuant

Prediction Terminal

Model: historical Elo + PoissonFixtures: live APIRatings: international history

Model Stack

ComponentRoleState
Historical International Elo
Fitted from international results with recency decay
Ranks team strength before kickoffactive
Poisson score model
Uses expected goals derived from historical Elo gaps
Turns expected goals into scoreline probabilitiesactive
Tipp EV optimizer
Optimizes game rules, not emotional plausibility
Chooses the score with best expected scoring-rule pointsactive
Historical calibration
Needs historical international fixture dataset
Backtests log loss, Brier score, and calibration bucketsplanned

Data Lineage

  • Fixtures and match status come from football-data.org via the ingest endpoint.
  • Teams are upserted into Postgres and predictions are generated on request.
  • Tournament tips are regenerated after ingest and stored as pre_tournament/current phases.
  • No scheduled retraining exists yet; ratings refresh when fixture ingest or the Elo admin endpoint runs.

Calibration Status

Elo fitting is now data-driven, but calibration is not fully proven yet. Confidence labels should still be treated as probability-spread diagnostics until backtests are published.

Retraining

Fixture ingest ensures historical Elo ratings exist, then refreshes tournament tips. Use the Elo admin endpoint with force=true to refit ratings from source history.

Next Upgrade

Publish backtested log loss, Brier score, and calibration curves per model version.

Interpretation

A “Low” confidence label does not mean the model is broken. It means the top 1X2 outcome is close to the alternatives, which is common in football.