Skip to content
Method

How Mansuba finds where your knowledge ends.

The numbers behind it, the four steps, real positions, and where every piece comes from.

The foundation of numbers

717,832,000

games read

January to August 2026, all speeds.

74,205,619

games with an engine rating

These are the games counted. Bots and aborted games are out.

4,439,858,110

engine ratings used

One per half-move, from the Lichess engine [2].

1,644,844,689

different positions

Counted over the first 40 half-moves.

Computed from the Lichess open database, January to August 2026 [1].

The Mansuba algorithm

Normal opening theory should not set off a card. So every loss is checked against the opening book, and what is left is where your knowledge ends. Four steps find it.

  1. Count

    Which move do you play in which position? Counted across all your games, transpositions as one position.

  2. Rate

    Stockfish says what each move costs, measured in winning chances [2].

  3. Check the book

    A move counts only if it costs 6 points or more and is not in the opening book, meaning players rated 2000+ do not choose it.

  4. Rank

    Repeated mistakes come first: the more often you reach a position and the more it costs, the earlier it comes.

Terms in plain words

Repertoire
What one person plays: positions from at least three of their earlier games.
Theory
What everybody plays: positions seen at that half-move in at least 100 of the games. Theory ends at the first position below that line.
Decision
A position and the move played in it.
Loss
Winning chances after the best move minus those after yours, in points.
Node
One unit of engine work. The same node count means the same work on every computer.

Where the data comes from and what we filter

Everything on this page comes from public Lichess games of January to August 2026.

games read
717,832,000
games with an engine rating10 %
74,205,619
  1. 1Lichess open database, January to August 2026 [1]

    Standard rated games, the monthly files from January to August 2026.

  2. 2Only games Lichess analysed with its engine

    These games carry an evaluation after each move. Players ask for this analysis themselves, so the games are not a random sample of all games.

  3. 3Standard chess, rated, no bots, no aborted games

    Bullet includes UltraBullet.

  4. 4Moves 2 to 80 rated, positions fingerprinted to half-move 40 [3]

    Moves are rated from the second half-move up to the 80th. A fingerprint identifies a position whatever the move order.

  5. 5Mistake from 10 points lost, blunder from 30

    A move is a mistake when the winning chances of the player who moves fall by at least 10 points. Positions that are already decided (below 5 or above 95 percent winning chances) are not counted.

  6. 6Rating groups in steps of 200, names never stored

    Groups use the rating of the player who moves. Where a player has to be recognised for counting repeats, a random code stands in for the name.

The limit: analysed games differ from all games. The numbers describe the games that were analysed.

Real positions, real moves

The most played move in thousands of games is often not the best one.

White to move

Ke1Most played, 30 %−47.3 points

Kg1Best move

Black to move

Ke8Most played, 44 %−77.1 points

Kg6Best move

White to move

Nxf7Most played, 78 %−34.2 points

d3Best move

Black to move

Be6Most played, 29 %−43.2 points

Nd4Best move

White to move

Nxe5Most played, 31 %−32.6 points

Nbd2Best move

Black to move

Nxb5Most played, 42 %−25.7 points

Nf5Best move

By playing strength

The same measurements for every group of players, from the games of January to August 2026.

  • up to 999
    Games
    5,682,912
    Theory ends at half-move
    10
    First mistake at half-move
    13
    Mistakes, half-moves 21 to 40
    20 %
    Mistakes on the first move after theory
    19 %
  • 1000–1199
    Games
    7,652,632
    Theory ends at half-move
    11
    First mistake at half-move
    16
    Mistakes, half-moves 21 to 40
    18 %
    Mistakes on the first move after theory
    15 %
  • 1200–1399
    Games
    10,418,971
    Theory ends at half-move
    12
    First mistake at half-move
    19
    Mistakes, half-moves 21 to 40
    16 %
    Mistakes on the first move after theory
    12 %
  • 1400–1599
    Games
    12,766,442
    Theory ends at half-move
    12
    First mistake at half-move
    20
    Mistakes, half-moves 21 to 40
    15 %
    Mistakes on the first move after theory
    10 %
  • 1600–1799
    Games
    12,885,824
    Theory ends at half-move
    12
    First mistake at half-move
    23
    Mistakes, half-moves 21 to 40
    14 %
    Mistakes on the first move after theory
    8 %
  • 1800–1999
    Games
    11,091,211
    Theory ends at half-move
    13
    First mistake at half-move
    25
    Mistakes, half-moves 21 to 40
    13 %
    Mistakes on the first move after theory
    7 %
  • 2000–2199
    Games
    7,296,511
    Theory ends at half-move
    13
    First mistake at half-move
    27
    Mistakes, half-moves 21 to 40
    11 %
    Mistakes on the first move after theory
    6 %
  • 2200+
    Games
    6,411,116
    Theory ends at half-move
    14
    First mistake at half-move
    31
    Mistakes, half-moves 21 to 40
    9 %
    Mistakes on the first move after theory
    4 %
Rating is the mean of both players. A group appears once it has enough games and players to be reliable.

What already exists

Three building blocks we did not invent, and why we use them.

A fingerprint for every position

The same position always gets the same fingerprint, whatever the move order. The method is called Zobrist hashing [3][4].

h(P)=⨁(p,s)∈PZp,s⊕  Ccastling⊕  Een passant⊕  Tturnh(P′)=h(P)⊕  Zp,from⊕  Zp,to⊕  T\begin{aligned} h(P) &= \bigoplus_{(p,s)\in P} Z_{p,s} \\ &\quad \oplus\; C_{\text{castling}} \oplus\; E_{\text{en passant}} \oplus\; T_{\text{turn}} \\[8pt] h(P') &= h(P) \oplus\; Z_{p,\text{from}} \oplus\; Z_{p,\text{to}} \oplus\; T \end{aligned}
The key of a position and its update after one move

Winning chances instead of centipawns

A lead of one pawn (100 centipawns) matters a lot in an equal game and hardly at all when you are already winning [5].

W(c)=50+50(21+e−kc−1)=1001+e−kc,k=0.00368208\begin{aligned} W(c) &= 50 + 50\left(\frac{2}{1+e^{-kc}} - 1\right) \\[4pt] &= \frac{100}{1+e^{-kc}}, \qquad k = 0.00368208 \end{aligned}
Winning chances W for a score of c centipawns
From centipawns to winning chances
  • winning chances
0 %25 %50 %75 %100 %-1000-700-400-100200500800score in centipawns

From 0 to +100 you gain 9.1 points, from +600 to +700 only 2.8.

The engine search

nodes for a first and a second look
3,000 → 30,000

nodes for a first and a second look

Second look from a loss of 4 points [6].

of the flagged moves confirmed
98 %

of the flagged moves confirmed

Check on the 150 most played positions of the daily set, 581 moves, re-rated at 1,000,000 nodes: 224 of 229 flagged moves stay a mistake of 10 points or more.

of the other moves would be flagged
14 %

of the other moves would be flagged

The same check: 49 of 352 moves we did not flag reach a loss of 10 points at 1,000,000 nodes. So the list is reliable, but not complete. We say what we flag, not that nothing else exists.

For the curious: the maths behind the curve

Why the same centipawns count less when you are winning.

s(c)=11+e−kc,W=100 sdsdc=k s (1−s)dWdc=k100 W (100−W)W=50  ⇒  9.2 points per 100 cpW=90  ⇒  3.3 points per 100 cp\begin{aligned} s(c) &= \frac{1}{1+e^{-kc}}, \quad W = 100\, s \\[6pt] \frac{ds}{dc} &= k\, s\,(1-s) \\[6pt] \frac{dW}{dc} &= \frac{k}{100}\, W\,(100-W) \\[6pt] W = 50 &\;\Rightarrow\; 9.2\text{ points per } 100 \text{ cp} \\ W = 90 &\;\Rightarrow\; 3.3\text{ points per } 100 \text{ cp} \end{aligned}

The Mansuba algorithm in detail

This part is our own work: how counted decisions become a short list of positions worth practising.

01Count decisions

A decision is a position and the move you played in it. Positions are fingerprints, so different move orders to the same position are counted together.

decision=(h(P), m)cost of counting∈O(N⋅ℓ)\begin{aligned} \text{decision} &= (h(P),\, m) \\[4pt] \text{cost of counting} &\in O(N \cdot \ell) \end{aligned}
N games, each counted over the first ℓ = 40 half-moves

02What a move costs

The loss is the winning chances after the best move minus those after yours. From 10 points it is a mistake. Stockfish looks at 3,000 nodes first and at 30,000 when the loss reaches 4 points or more [6].

L(m)=W(cbest)−W(cm)L(m) = W\bigl(c_{\text{best}}\bigr) - W\bigl(c_{m}\bigr)
W: winning chances in points, c: the engine score after the best move and after yours

03Check the book

Normal theory should not set off a card, so a decision becomes one only if both of these hold.

  1. 1The move is not in the opening book. The book lists a move when players rated 2000 or more play it in at least 3 percent of their games in that position, and at least 20 times. What the book lists is theory and drops out.
  2. 2The move loses at least 6 points of winning chances.

04Rank

Cards are ordered by how much practising them is worth. The score of a position is the number of games times the loss, added over its mistake moves: the points the position costs you in total. A frequent medium loss therefore beats a rare huge one, and a position with fewer than two games on mistake moves is not shown at all.

S(P)=∑m:  Lm≥10nm Lmcard only if∑m:  Lm≥10nm≥2\begin{aligned} S(P) &= \sum_{m:\; L_m \ge 10} n_m\, L_m \\[4pt] \text{card only if} \quad & \sum_{m:\; L_m \ge 10} n_m \ge 2 \end{aligned}

Where the lines are drawn

Three thresholds, all in points of winning chances. Each card shows how often a move outside theory crosses it.

  • 6 points

    Inaccuracy

    about 65 centipawns in an equal position

    A card on your account starts here.

    Moves outside theory that lose at least this much

    up to 999
    31.7 %
    1400–1599
    23.1 %
    2200+
    13.3 %
  • 10 points

    Mistake

    about 110 centipawns, roughly a pawn

    What the studies and the numbers on this site call a mistake.

    Moves outside theory that lose at least this much

    up to 999
    21.0 %
    1400–1599
    13.1 %
    2200+
    6.1 %
  • 30 points

    Blunder

    about 380 centipawns

    A very large loss, counted separately.

    Moves outside theory that lose at least this much

    up to 999
    5.0 %
    1400–1599
    1.9 %
    2200+
    0.5 %

Cards start at 6 points and not at 10 because 10 gave too few repeated positions for a single account. On two test accounts of 1,500 and 2,265 games, 10 points gave 12 and 28 positions with a repeated move, 6 points gave 32 and 57.

A worked example

Real positions with real engine values. Only the number of games per position is made up, to show how the ranking works.

One position, step by step

The engine rates the position before the move and again after each of the three moves. The loss is how far the winning chances fall below those of the best move.

White to move. Before the move the engine says +216 centipawns, which is 68.9 % winning chances.
MoveEngine afterWinning chancesLoss
Nc3+21668.9 %0.0
c4+16164.4 %4.5
dxe7−35321.4 %47.5

Engine values in centipawns from the point of view of the player to move.

W(−353)=1001+e−k⋅(−353)=21.4W(216)=68.9L=68.9−21.4=47.5\begin{aligned} W(-353) &= \frac{100}{1+e^{-k \cdot (-353)}} = 21.4 \\[6pt] W(216) &= 68.9 \\[6pt] L &= 68.9 - 21.4 = 47.5 \end{aligned}
The loss of the most played move, with the numbers of this position

Six positions, ranked

Imagine a player who reached these six positions. The score of a position is games times loss: the points it costs this player in total. A position needs at least two games on mistake moves to become a card.

  1. Ke112 games, loss 47.3
    567.6

    Card 1

  2. Ke87 games, loss 77.1
    539.7

    Card 2

  3. Nxf76 games, loss 34.2
    205.2

    Card 3

  4. Nxe54 games, loss 32.6
    130.4

    Card 4

  5. Be63 games, loss 43.2
    129.6

    Card 5

  6. Nxb51 game, loss 25.7
    25.7

    Fewer than 2 games: not a card yet

The games per position are made up for this example. We assume all six positions pass the other two filters.

Where the numbers end

  • A card is a question, not a verdict.
  • A flagged gambit that works for you can stay.
  • More games give more cards. Below about 1,000 games there is little to show.
  • The strong-player table comes from our own study, from games of January to August 2026. Rare positions are not in it, so a rare theory move can still become a card.

Where Mansuba stands among Lichess tools

Lichess offers good tools. Each looks at something different.

  • Learn from your mistakes

    Walks through the mistakes of one game. [7]

  • Opening explorer

    Shows how often moves are played and how they score. [8]

  • Insights

    Answers questions about your games, such as move times. [9]

  • Mansuba

    Searches across all your games for positions that come back with the same costly move.

What we built, and what comes from others

Our own work

  • Counting decisions per person across move orders
  • The filter chain: loss, then strong players
  • Ranking by repetition with a damping weight
  • Cards, the daily quiz and the endless set
  • Everything runs on your device
  • The measurements on this page

From others, with source

  • Winning-chance curve: Lichess [5]
  • Engine: Stockfish [2], searched by node count [6]
  • Position key: Zobrist [3], Polyglot convention [4]
  • Games: Lichess open database, CC0 [1]
  • Opening names: lichess-org/chess-openings [10]
  • Confidence interval: Wilson [11]

Sources

  1. [1]Lichess.org (2026): Lichess open database: standard rated games, monthly files January to August 2026. database.lichess.org, CC0. database.lichess.org (accessed 2 October 2026).
  2. [2]The Stockfish developers (2026): Stockfish: open source chess engine. stockfishchess.org, GPLv3. stockfishchess.org/ (accessed 2 October 2026).
  3. [3]A. L. Zobrist (1970): A new hashing method with application for game playing. Technical Report 88, Computer Sciences Department, University of Wisconsin, Madison, reprinted in ICCA Journal 13(2), 1990. chessprogramming.org/Zobrist_Hashing (accessed 2 October 2026).
  4. [4]Polyglot book format (2026): Specification of the position key (Zobrist hash over piece, castle, en passant, turn). hgm.nubati.net. hgm.nubati.net/book_format.html (accessed 2 October 2026).
  5. [5]Lichess.org (2026): Lichess accuracy metric: winning chances and move accuracy. lichess.org/page/accuracy. lichess.org/page/accuracy (accessed 2 October 2026).
  6. [6]UCI protocol (2026): Universal chess interface: the go command, parameter nodes. backscattering.de/chess/uci. backscattering.de/chess/uci/ (accessed 2 October 2026).
  7. [7]Lichess.org (2016): Learn from your mistakes. Lichess blog, 22 December 2016. lichess.org/@/lichess/blog/learn-from-your-mistakes/WFvLpiQA (accessed 2 October 2026).
  8. [8]Lichess.org (2016): Opening explorer. Lichess blog, 26 February 2016. lichess.org/@/lichess/blog/opening-explorer/Vs0xMTAA (accessed 2 October 2026).
  9. [9]Lichess.org (2015): Chess insights. Lichess blog, 8 December 2015. lichess.org/@/lichess/blog/chess-insights/VmZbaigA (accessed 2 October 2026).
  10. [10]Lichess.org (2026): lichess-org/chess-openings: an aggregated data set of chess opening names. GitHub, CC0. github.com/lichess-org/chess-openings (accessed 2 October 2026).
  11. [11]E. B. Wilson (1927): Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association 22(158), pp. 209–212, doi:10.1080/01621459.1927.10502953. jstor.org/stable/2276774 (accessed 2 October 2026).