How Our Betting Tips Are Made
The chance percentages under the table in match previews now have two sources. The newer ones are calculated by a model we built ourselves and checked against 1,890 past Ekstraklasa matches. The older ones were entered by hand by the editorial team. The note under the table tells you which version you are looking at.
Two kinds of numbers
A forecast from the Elo–Poisson model. In that case the table is followed by the model version, the date of the ranking and the rating of both teams. For now the model covers only Ekstraklasa clubs. For other competitions we have no data to check it against, so we do not use it there.
Editorial estimates. This is how previews from before the model are labelled. It is our pre-match assessment, not the result of a calculation. We did not recalculate them with the model or check them against past matches.
The predicted score in the text of a preview, for example 2:1, is always the editors’ own judgement. The model calculates only the probabilities of a win, a draw and a defeat.
Where we get the data
Ekstraklasa results from the 2012/13 season to 12 October 2026 (4,170 matches) come from football-data.co.uk, which makes them available free of charge. We read dates, team names and goals from them. The files also contain bookmaker odds, but we neither use nor store them.
We calculate the Elo ranking from these results ourselves. We use neither bookmakers’ odds nor prices from prediction markets. As a check, we compared our ranking with the public ClubElo ranking. The order of the 18 clubs in the current Ekstraklasa is similar (a rank correlation of about 0.9 as of 3 October 2026), although ClubElo uses a different scale.
How we calculate
- Every team has an Elo rating. After a match the winner takes some points from the loser, more the bigger the surprise and the higher the win. At the start of a new season the rating moves 15% back towards the average, and a team not yet in our database starts at 1350 points. We chose the values of these parameters, the K factor = 5 and the home advantage, using only matches from before July 2020.
- To the difference between the rankings we add the home advantage: 60 Elo points. From this sum comes the expected result of the match, that is 1 for a win and 0.5 for a draw.
- An Ekstraklasa match averages 2.65 goals (an average of the years 2012–2020). We split this pool between the home and away side so that the Poisson distribution gives exactly the same expected result as Elo.
- From two independent Poisson distributions we calculate the chance of a home win, a draw and an away win.
A worked example: two equal teams on a neutral pitch each get 1.326 expected goals. That gives 36.96% for each win and 26.09% for a draw.
What the model does not know
- It does not know line-ups, injuries or suspensions, unless the editors enter a confirmed absence (below).
- It does not see form from recent weeks, the weather or the stakes of a match beyond what is already in the ranking.
- It does not give chances of over 2.5 goals or of both teams scoring. The Elo ranking says nothing about the number of goals, so such a figure would be identical for every match in the league.
- It rates draws low: in tests it gave them 25.0% on average, while they happened in 27.0% of matches.
Absences
If a club, a federation or a reliable media outlet confirms that a first-team player will not play (injury, suspension), we lower his team’s rating by 20 points for each such player, by 60 at most. This is our assumption, not a value calculated from data: we have no history of absences against which to check it. Every absence we take into account has, under the table, a link to the source and the date of publication. We do not take rumours into account, and a player who is “in doubt” does not change any number.
How the model fared on past matches
The test covered 1,890 Ekstraklasa matches from 1 July 2020 to 12 October 2026. Before each match the model knew only earlier results. We chose the parameters on 2,280 matches from before the test and did not touch them afterwards.
The measure is the Brier score, the mean squared error of the forecast: the lower, the better. The model scored 0.6386. The baseline, that is an “always the same” forecast using the shares from 2012–2020 (44% home wins, 27% draws, 29% away wins), scored 0.6502. The difference is 0.0115, and its 95% interval (from 2,000 resamples) lies between 0.0044 and 0.0184, so it does not include zero. The edge is small. In the 2020/21 and 2025/26 seasons the model was not better than the baseline.
We did not compare the model with bookmaker odds and we do not claim that it beats them. A forecast with such a small edge over constant shares is not a signal to place a bet.
Value thresholds and odds
The thresholds next to picks, for example “odds of about 2.10”, are indicative. They show from which odds a pick would start to pay off under our estimate, and they are not a recommendation to bet. Always compare the actual odds at a licensed operator. How to turn odds into a probability is explained in the guide implied probability from odds.
What may change
We recalculate the Elo ranking from results and publish it as of a specific day, which is visible under every table from the model. We announce information about line-ups and absences in texts 48–72 hours before the match, based on official club announcements. No forecast, including one from the model, removes the risk of a losing slip.
Who is responsible
The editorial team is responsible for the content of the site. We describe the team and the editorial standards on the page editorial team.
Betting is for adults (18+); use only operators licensed by the Minister of Finance, from the Minister’s list, and check the rules on the responsible gambling page.
Sources: Ekstraklasa results from football-data.co.uk; the public ClubElo ranking, used only as a check. The model, its parameters and the test results are the editors’ own calculations.

