Kneeslide

KElo: three versions

Which model does Kneeslide use?

The table predictor and match simulator use KElo 2.0.0. Version 1 is archived. Version 3 is a tested research candidate, not a model that has powered the live forecasts. Its extra complexity has not produced a dependable improvement in match predictions, and its season uncertainty ranges performed worse in the paired test.

KElo is Kneeslide’s own rating of relative team strength. The forecast combines that rating with goals, expected goals (xG), venue and remaining opponents. A rating is not a league-points total, and a higher rating does not translate directly into a title probability. Strength of schedule separately uses sourced ClubElo ratings; those values are not interchangeable with KElo.

The three model configurations
SettingV1 · archivedV2 · liveV3 · research
Elo update K202020
Home adjustment in Elo60 points0 points0 points
Offseason Elo regression20%10%0%
Winning-margin multiplierNoneNone√margin, capped at 2×
Goals/xG formDecayed raw ratesDecayed raw ratesOpponent-adjusted rates
Elo / form exponents0.6 / 0.50.6 / 0.50.6 / 0.25
European strength evidenceNot includedNot includedTested; weight 0 selected
Promotion prior / workloadNot includedNot includedTested; disabled

The calculation shared by all three

Ratings are reconstructed in date order from 2014–15. Before each match, the rating gap determines an expected result score. For home rating Rₕ, away rating Rₐ and temporary home adjustment H:

Eₕ = 1 / (1 + 10(Rₐ − Rₕ − H) / 400)
ΔRₕ = K × M × (Sₕ − Eₕ)
R′ₕ = Rₕ + ΔRₕ; R′ₐ = Rₐ − ΔRₕ

S is 1 for a win, ½ for a draw and 0 for a defeat. M is 1 in versions 1 and 2; version 3 scales it by goal margin. The opponent gains exactly what the other team loses. E is an expected result score, with draws worth half, not the forecast’s win probability.

With equal ratings and H=0, E=0.5. At K=20, a one-goal win adds 10 rating points, a draw changes nothing, and a defeat removes 10. Against an opponent where E=0.75, a win adds 5, a draw removes 5 and a defeat removes 15. Unexpected results move ratings more.

Why 1500?

1500 is the reference origin. Moving every rating and the reference by the same amount leaves rating gaps and predictions unchanged. The consequential assumption is the relative strength assigned to an unseen club: the live model starts it at 1500. A returning club retains its previous recorded rating, with the applicable season-start adjustment. Neither rule directly measures how much stronger or weaker its squad has become.

From strength to match probabilities

The live scoring model first estimates expected home and away goals. A and D are attacking and defensive goal-rate factors; a larger D means more goals conceded. Each blends recent goals and xG equally. Bₕ and Bₐ are separate home and away scoring bases from the preceding league season, shrunk toward a prior.

λₕ = Bₕ × exp(0.6 × (Rₕ − Rₐ) / 400) × (Aₕ × Dₐ)0.5
λₐ = Bₐ × exp(−0.6 × (Rₕ − Rₐ) / 400) × (Aₐ × Dₕ)0.5
P(goals = g) = exp(−λ) × λg / g!

Goal rates are bounded to 0.08–5. Score probabilities are evaluated from 0 to 20 goals and normalized; summing the home-win, draw and away-win scorelines gives the three outcome probabilities. The selected low-score correction is zero in all three versions. Version 3 uses exponent 0.25 for its opponent-adjusted form factors instead of 0.5.

The raw form estimator retains 96% of its previous weighted observations after each match, adds the new goals, and uses eight prior observations at 1.35 goals. Between seasons those accumulated observations retain 60% of their weight. These form rules are separate from offseason Elo regression. Missing xG is not treated as zero. In version 3, opponent-adjusted form updates at 8% per full-weight match using the opponent’s pre-match factors.

Version 1: a fixed Elo baseline

Version 1 used K=20, a 60-point home adjustment and 20% offseason regression. The last two were starting assumptions, not estimates established by Kneeslide’s historical tests. A 1–0 win and a 5–0 win caused the same rating change at identical pre-match ratings.

For equally rated teams, H=60 gives Eₕ≈0.5855. A home win therefore earns 20×(1−0.5855)≈8.29 points; an away win earns about 11.71. At the season boundary, the rule was R_new=1500+0.80×(R_old−1500): a 1,700 club became 1,660 and a 1,300 club became 1,340. This removed 20% of the distance from the reference, not 20% of the rating.

Version 2: the active model

Version 2 replaced the fixed home and offseason settings with a historical parameter search. Across 4,800 combinations, selection used 1,520 pre-match predictions in 2019–23 after a 2014–19 warmup. The selected settings were K=20, H=0 and 10% offseason regression. A 1,700 rating now becomes 1,680, while 1,300 becomes 1,320.

H=0 does not remove home advantage from the forecast. It removes the extra venue term from the Elo update; the separate home and away goal bases still distinguish venues. For the dated 2026–27 configuration, those bases are approximately 1.538 and 1.212 before team-specific adjustments.

Version 2 had slightly lower selection-period log loss than version 1 (0.98216 versus 0.98257). Its later audit was mixed: log loss improved very slightly, while Brier score was slightly worse. It remains the deployed baseline because version 3 has not made a convincing case for replacement—not because version 2 has been proven optimal.

Version 3: richer evidence, insufficient improvement

The research engine adds capped goal-margin updates, opponent-adjusted attack and defence, European results, Championship-informed promotion priors and calendar workload. The dataset contains 62,554 matches and 36 completed promoted-club examples. The staged search evaluated 10,504 core/scoring combinations.

The selected candidate retains K=20, chooses no annual Elo regression, and sets M=√min(4,max(1,|home goals−away goals|)). A one-goal margin has M=1, two goals M≈1.414, and four or more goals M=2. This limits how much one large win can move the rating. The four-goal cap is still a modeling assumption.

European strength weights of 0%, 25%, 50% and 100% were tested. Zero performed best in development. Promotion-prior blends of 0%, 50% and 100% also selected zero. Rest-day and previous-14-day match-minute adjustments failed to improve the development objective. Those components are implemented but disabled in the selected candidate.

That is evidence about these implementations, not proof that Europe, promotion strength or fatigue are irrelevant. European opponents outside the covered domestic leagues have weaker histories; a one-statistic Championship prior is limited; match duration is an imperfect proxy for individual squad load. Domestic cups contribute calendar load, not strength updates. European extra-time games without verified regulation scores are excluded from strength updates.

Two matches, calculated three ways

These are retrospective reconstructions from pre-match inputs, not forecasts published before the games. Each version has its own accumulated history. Differences between rows reflect the complete model, not just one isolated parameter. Displayed ratings are rounded; calculations use full precision.

Arsenal 5–0 Chelsea · 23 April 2024

Rating response, with Arsenal as the home team
VersionArsenal before → afterOpponent before → afterExpected score EₕArsenal change
V1 · archived1686.41 → 1691.111541.37 → 1536.670.7650+4.70
V2 · live1704.41 → 1710.431558.25 → 1552.230.6987+6.03
V3 · research1786.76 → 1796.921599.57 → 1589.410.7460+10.16

V2: 20 × (1 − 0.6987) = +6.03
V3: 20 × 2.0000 × (1 − 0.7460) = +10.16

The live model rewards the win by 6.03 rating points; it would give the same Elo reward for 1–0 at those pre-match ratings. The research model gives 10.16, with its margin multiplier capped at 2 even though Arsenal won by five. Chelsea loses the corresponding amount. The score also updates each model’s attacking and defensive form, so score margin can influence subsequent forecasts even when the Elo update itself ignores it.

Pre-match score-model forecast
VersionExpected goals, home / awayHome winDrawAway win
V1 · archived2.58 / 0.9672.3%15.9%11.8%
V2 · live2.59 / 0.9672.4%15.9%11.7%
V3 · research2.45 / 0.8472.9%16.3%10.8%

Arsenal 0–2 Aston Villa · 14 April 2024

Rating response, with Arsenal as the home team
VersionArsenal before → afterOpponent before → afterExpected score EₕArsenal change
V1 · archived1694.26 → 1679.851589.85 → 1604.260.7204-14.41
V2 · live1712.50 → 1699.501605.15 → 1618.150.6498-13.00
V3 · research1801.52 → 1781.511648.29 → 1668.290.7072-20.00

V2: 20 × (0 − 0.6498) = -13.00
V3: 20 × 1.4142 × (0 − 0.7072) = -20.00

The upset costs Arsenal 13.00 rating points in version 2 and 20.00 in version 3; Villa gains the same amounts. Version 3 was more confident in Arsenal before the match and responds more strongly to the two-goal defeat. A stronger reaction after the event does not mean it predicted the event better.

Pre-match score-model forecast
VersionExpected goals, home / awayHome winDrawAway win
V1 · archived2.45 / 0.9869.6%17.1%13.3%
V2 · live2.46 / 0.9869.9%17.0%13.1%
V3 · research2.39 / 0.8372.0%16.8%11.2%

Villa’s away-win probability was 13.1% in V2 and 11.2% in V3. For the actual away win, log loss is −ln(p): 2.032 for V2 versus 2.189 for V3. Lower is better; the research model did worse on this particular match.

What changed for Arsenal and Chelsea’s projections?

This comparison uses the stored 2 November 2026 snapshot and 10,000 season simulations per version. It is a dated model comparison, not today’s forecast. Each entry shows projected final points and title probability.

ClubV1 · archivedV2 · live modelV3 · research
Arsenal84.55 pts · 66.5%85.83 pts · 67.4%88.09 pts · 68.5%
Chelsea59.14 pts · 0.6%59.51 pts · 0.5%59.90 pts · 0.1%

Arsenal gains 1.28 projected points from V1 to V2 and another 2.26 in the research forecast. Chelsea’s mean points rise across versions, while its title probability falls: title chances depend on the joint distribution of every club’s finish, not just its own average. Small probability changes also contain Monte Carlo noise. V3 additionally changes historical data reconciliation and fixture ordering; this is not a controlled estimate of the margin feature alone.

What the backtests establish

All three match audits below cover the same 1,140 Premier League matches in 2023–26. Lower log loss and Brier scores are better. Log loss penalizes a low probability assigned to the outcome that occurred. Multiclass Brier score sums the squared errors across home win, draw and away win: Σ(p_k−y_k)².

Match auditV1V2V3
Log loss0.984060.983870.98380
Brier score0.586770.586830.58723
2023-24 log loss0.933330.930690.92380
2024-25 log loss0.987870.988190.98808
2025-26 log loss1.030991.032731.03952

V3’s aggregate log-loss advantage over V2 is only 0.00007. It improves 2023–24, is almost unchanged in 2024–25, and worsens 2025–26. The descriptive 95% season-bootstrap range for V3 minus V2 runs from -0.00689 to +0.00678 and crosses zero. With only three season clusters, that range is weak evidence rather than a precise confidence claim.

Season forecasts and uncertainty

Season forecasts simulate the remaining fixtures, starting from points already earned. A persistent sampled strength offset, with standard deviation 70 Elo points per club, represents uncertainty about future strength. It was selected in the earlier model work and retained for this V3 comparison, not recalibrated for the candidate.

Paired V2/V3 season audit · 2,000 simulations at each cutoff
MeasureV2V3
Mean absolute final-points error ↓6.826.76
80% interval coverage76.7%74.2%
80% interval score ↓27.8928.58

An 80% interval should contain the realized points total about 80% of the time. Its score penalizes width and misses: (upper−lower)+10×max(0,lower−actual)+10×max(0,actual−upper). A 60–80 interval with an actual total of 84 scores 20+10×4=60. V3 slightly reduces average points error but misses more intervals and has a worse interval score.

The audit requests cutoffs at 0, 90, 190 and 280 matches, including every result on the final included date. It evaluates earned points before administrative deductions. Earlier V1/V2 season reports used exact match-count cutoffs; their numbers should not be mixed into this paired table. Repeated cutoffs from the same season are correlated.

Selection, data quality and remaining assumptions

V3 development uses 2017–23, with rolling selection folds in 2019–23 that fit scoring weights only on earlier seasons in each fold. Core selection reuses those folds in stages; it is not an exhaustive search or an unbiased nested evaluation. The 2023–26 audit was excluded from selection but had already been inspected during earlier model work, so it is not a fresh blind holdout.

Canonical club aliases recover xG matches missed by older name matching. A corrected-data replay with otherwise unchanged V2 settings achieves 0.98263 log loss and 0.58597 Brier in the audit. That diagnostic is separate from V3’s additional features and has not been activated as a newly selected model.

Historical source snapshots can contain later corrections. European domestic coverage is incomplete; 28 European extra-time matches lack verified regulation scores. Player availability, rotation, travel and transfers are not modeled. Starting-strength priors, form decay, stability bounds and the margin cap remain assumptions. No aligned ClubElo or betting-market benchmark was included in this run.

Release decision: retain V2, keep V1 reproducible, and keep V3 available for research. A replacement needs a repeatable improvement in match probabilities and calibrated season ranges. These tests do not yet establish that improvement.