Reflecting Halfway Through the Season
Published on January 2, 2026
Thoughts near the halfway point of the season and happy New Year…
Overall, I am delighted with the growth of this project and the visibility it has gained through the creation of Prembets.org. I give a lot of credit to my cousin Sam for pushing me to publish my work. Originally, this project ran entirely locally in R and was tracked in an Excel spreadsheet just to see how the bets were performing.
While I have stepped away from the betting side of the project, the model itself has been profitable this season. Technically, I am still in the red once you account for the data subscription at about $27 per month and the website cost of roughly $9 per year, but that is minuscule compared to the enjoyment I have gotten from building this. Before, I was just texting a few friends what the algorithm was predicting for over under in a given matchweek, and that was with only one model. Fast forward three months and I now have six different models running Premier League and Champions League over under and moneyline predictions.
I will admit I was hoping for higher accuracy on the moneyline models. In the coming weeks, I plan to revisit the variables used in the XGBoost and KNN models, since they were originally designed around the over under framework rather than outright results.
Recently, we have also seen a sharp rise in drawn matches, which I summarized in the table below:
First 16 weeks: 34 draws
Weeks 17 to 21: 21 draws
That means the draw rate jumped from about 2.13 per week early in the season to 4.2 per week more recently, which is a significant shift.
Week 17 is also when the moneyline model was first introduced, so this near doubling of draws per week will take time to be properly reflected in the model’s performance.
Going forward, I will be taking a closer look at the Over Under 3.5 goals model by breaking down its errors into Type 1 and Type 2 mistakes using the following framework:
Reality: Over Reality: Under
Model: Over True Positive Type 1 error
Model: Under Type 2 error True Negative
This should help determine whether the model is more often betting on high scoring games that fail to materialize, or missing out on games that do end up going over the total