Elote vs single-algorithm packages¶
Use Elote when the unresolved question is which rating system fits your history. Its narrow advantage is one rating loop across eleven systems, so an algorithm change does not require an application rewrite.
Use another package when its narrower job is your actual job:
Use
openskillfor genuine multiplayer or team rating; the measurements below cover one-on-one updates only.Use
whrwhen Whole-History Rating fitting speed is the binding constraint. Its compiled core was 7.03 times faster on the published 500-game fixture.Use
choixwhen you want Bradley-Terry/Luce inference primitives rather than a stateful rating loop.Use
trueskillorglicko2when you have already selected that system and prefer its focused API.
Measured agreement¶
The comparison uses native posterior outputs from each package, not reference formulas reconstructed from low-level primitives.
Packages |
Quantity both compute |
Matched configuration |
Result |
|---|---|---|---|
Elote 1.3.2 / |
Posterior |
Equal default priors and draw probability 0.1 |
Maximum absolute delta 0.0003473759; agreement to 3 decimal places |
Elote 1.3.2 / |
Posterior rating, RD and volatility after one rating-period result |
Rating 1500, RD 350, volatility 0.06 |
Maximum absolute delta 0.0000010698; agreement to 5 decimal places |
Elote 1.3.2 / |
Centered native Bradley-Terry log-strengths on one connected graph |
Regularization 0, tolerance 1e-8, at most 10,000 iterations |
Maximum absolute delta 0.0000000073; agreement to 8 decimal places |
Elote 1.3.2 / |
Native per-day Elo rating curve |
No definition-matched setting: Gaussian initial-rating anchor versus virtual-game prior |
No delta quoted; the finding is tracked in issue 173 |
Speed footnote¶
On one Apple M4 running CPython 3.12.11, whr completed construction and 20
fit sweeps over a fixed 500-game fixture in 0.0110 seconds. Elote completed
construction and its lazy fit in 0.0770 seconds: Elote was 7.03 times
slower on this machine and protocol.
These fixtures are evidence of agreement, not proof that either implementation is correct. They do not compare predictive accuracy, rank packages overall, or establish a general speed ordering.