CHESSDNA
Run 4 · 277 players · re-run monthly

Do chess improvement apps actually work?

We measure our own players, attack the result, and re-run it every month. Here is what holds up.

TL;DR

Most players who use Chess DNA gain rating, and more of them beat their own past each month. A modest edge, not proof the app caused it.

69%gained rating
277 players, median +35
+59median gain after 18+ days
74% gained
58%beat their own past
same games, up from 50%
1.7×our old claim, retracted
see the correction
+35
Median rating gain after joining
n=277. Measured 18+ days: +59.
58%
Beat their own past
Same number of games, before vs after. n=206. Coin flip = 50%.
Run 1 · Jul 1350%beat own past · 28 players
Run 2 · Aug 352.6%beat own past · 59 players
Run 3 · Sep 756.3%beat own past · 167 players
Run 4 · Oct 1558.3%beat own past · 277 players

Every player's rating change

First to last game after joining, in each player's main time class. All 277 players, including the 79 who lost rating.

Players like you

Filter the same 277 players by starting rating, time control and how long we've measured them.

Starting rating
Time control
Measured for
277
players in this group
+35
median rating change
69%
gained rating

Each bar is one player in the group, sorted by rating change. Hover for their numbers.

Did they beat their own past?

Each dot is one player: rating change over N games before joining (across) vs the same N games after (up). Above the diagonal = beat their own past.

Beat their own past Did not Off scale
RunPlayersMedian liftBeat own past
Jul 1328+4.550.0%
Aug 357+1552.6%
Sep 7135+756.3%
Oct 15206+2058.3%

Five attacks on the stat

What a skeptic would say, and what survived.

Fixed

“You mixed time classes.”

True in our first pass. We now measure inside each player's main time class only. The median went up, not down.

Downgraded

“They just play more.”

Per month, gains look 3.6× faster, but that is mostly play volume. We dropped per-month numbers and now compare equal game counts.

Downgraded

“Outliers prop up the average.”

So we lead with the median (+35), not the mean (+54), and chart every player.

Stands

“You only measure users who stuck around.”

Correct. That is survivorship bias, and with no control group it can't be argued away. This is a stat about engaged players.

Untested

“New accounts are still calibrating.”

Possible for a few big climbers (1073 → 1625 in five days). Unlikely to explain the whole spread.

We claim

69% of active players gained rating, and 58% beat their own equal-length past. Both measured per player, with n attached.

We don't claim

"Chess DNA adds X rating." That is causal, and observational data can't show it.

The stat we got wrong

Published Jul 13 and Aug 3, 2026. Retracted Sep 7, 2026.

We used to say users improved ≈1.7× faster per game than before joining. We got it by dividing one group's median by another's. That compares groups, not people. Paired person by person, the effect was zero.

RunWhat we publishedCorrect, per playerBeat own pace
Jul 131.61×−0.21 pts/game46%
Aug 31.41×−0.20 pts/game49%
Sep 71.49×+0.004 pts/game50%

The gap came from regression to the mean. The rating gains above were always computed per player and are unaffected. The fix is the paired test in section 3.

FAQ

Do chess improvement apps actually work?

For engaged users, measurably and modestly, yes. Across 277 Chess DNA players with 20 or more post-signup games, 69% gained rating with a median of +35; among the 99 we have measured for 18 days or longer, 74% gained with a median of +59. Over the same number of games, 58% beat their own immediately preceding run, up from 50% in our first run, with a median per-user lift of +20 rating points. No app can claim causality from observational data, because motivated players self-select into every sample like this.

How much rating did Chess DNA users gain?

In the October 15, 2026 run, the median change from first to last post-signup game, inside each player's dominant time class, was +35 across 277 players: 192 gained, 79 lost and 6 finished level. The spread ran from +552 to −254 over a median 11-day window. Split by how long we have been measuring, players with an 18-day-or-longer window gained a median +59 (n=99), and players measured for under 18 days gained +23 (n=178). The mean, +54, is pulled up by outliers, so we lead with the median.

Isn't this just selection bias?

Partly, and we say so in the body. Requiring 20 or more post-signup games self-selects motivated players, and churned users never qualify. That is survivorship bias, and without a randomized control group it can only be disclosed, not dismissed. Everything we could test, we tested: time-class mixing, play frequency, outliers, calibrating accounts, and our own per-game multiple, which we retracted in September 2026 after it failed a per-person check. The claims we publish are the ones still standing after all of that.

Why measure improvement per game instead of per month?

Per-month numbers smuggle in play frequency. Users play more after joining an app, so their monthly gains jump even if each game teaches them nothing new; our own per-month number came out 3.6 times faster and we refused to publish it. Per game is the honest denominator, but only if it is computed per person. Comparing the median of one group against the median of another is not a within-person comparison, which is the mistake we made twice. The version we publish holds the game count fixed and pairs every player against their own preceding stretch.

How was this measured?

Every user with 20 or more games after signup in their dominant time class (n=277 on October 15, 2026), internal accounts excluded, with signup proxied by the first imported game. Rating change is last minus first post-signup rating inside that class only, because mixing blitz and rapid ratings fabricates deltas. The paired comparison takes the 206 players who also had enough earlier games: their post-signup run against their own equally long stretch immediately before it, one difference per player, then the median and the share above zero.

Do the numbers hold up over time?

We re-run the identical query monthly and publish every run. The sample has grown 28, 59, 167, 277. The blended median moved +50, +30, +35, +35, driven by cohort mix, because each run adds fresh signups with short windows. Players measured 18 days or longer sat at +50, +96, +55 and +59. The steadiest series is the share who beat their own prior run of equal length: 50.0%, 52.6%, 56.3%, 58.3%, four runs in one direction. Run 3 also caught a methodology error in our own per-game claim, which we retracted in full.

Method. Every Chess DNA user with ≥20 post-signup games in their main time class (signup = first imported game), n=277 on Oct 15, 2026, internal accounts excluded. Rating change = last minus first post-signup rating in that class. Paired test: the 206 players with enough earlier games, each compared with their own equally long stretch just before joining. Past runs are as-of replays. No causal claim. Series: How Chess Games Are Actually Lost, What Each Elo Level Struggles With, Chess Improvement Plateau.

About the author. Yuval I. is the founder of Chess DNA and a long-time competitive player. He builds the Stockfish-based analysis behind this report.
CHESSDNA
The improvement app that grills its own stats.
Get your Chess DNA
Did you beat your own past? Chess DNA tracks it from your real games. Analyze my games