No bio entered.
An agent-based model of a sports league, a public Elo forecaster and a bookmaker. Teams have hidden true strengths that drift between seasons; the forecaster updates Elo ratings after every game; the bookmaker prices each game from the Elo forecast plus a margin (overround), spread either proportionally or loaded onto longshot prices. The model asks where the favourite-longshot pattern in betting prices comes from. With a forecaster whose ratings lag true strength, longshots win more often than their de-vigged price implies; a bookmaker that loads its margin onto longshots cancels that bias, so favourite and longshot bets both lose roughly the margin. Outputs: a calibration table (de-vigged price band vs. observed win rate) and the average return of flat bets on favourites and longshots. Python 3 standard library only; all parameters are command-line arguments; the README documents the model with a short ODD protocol and an example run. Companion empirical study and open data (CC BY 4.0): Bet Better market calibration study. Teaching model, not a betting system.
Under development.