Metrics and study tools

Every figure blunderDB displays about your play answers a question. This page gathers them: for each, the question it answers and what it brings to study, its definition, its exact formula, what counts as a decision, its unit, how to read it, its uncertainty, its limits and what sets it apart from the figures of eXtreme Gammon (XG) and GNU Backgammon (gnuBG). The screens that show them are described in the Manual; links lead there.

The thresholds and parameters on this page were fixed before any examination of real results: adjusting them afterwards would amount to making the figures say what one expects of them.

The error and the loss of a decision

All measurements start from two quantities per decision.

The error e is what the decision played cost in equity, compared with the best decision of the imported analysis (XG or gnuBG; blunderDB does not re-analyse matches for its statistics). It is expressed in normalised equity: ±1 is the current cube, in money play as at a match score (EMG at the score). It is rounded to the thousandth (the millipoint, mpt).

  • Checker play: equity of the best candidate minus equity of the move played.

  • No double: the “no double” error given by the analysis.

  • Double: the smaller of the “double, take” and “double, pass” errors — the doubler is judged against the best opposing response.

  • Take or pass: the gap between the response played and the better of the two.

The error is that of the move played in this match. A position reached in two matches and played differently carries two errors; neither overrides the other. A move played that the analysis does not name among any of its candidates has no error: it is not rated, and it drops out of all counts.

The MWC loss ℓ is the same error expressed in chances of winning the match (Match Winning Chances). At the score and at the cube v of the decision:

\[\ell = e \times \frac{\mathrm{MWC}_{+v} - \mathrm{MWC}_{-v}}{2}\]

where \(\mathrm{MWC}_{+v}\) and \(\mathrm{MWC}_{-v}\) are the chances of winning the match if the player wins, or loses, v points at this score. The match equity table (MET) is Kazaross-XG2, extended beyond 25 points by Zadeh’s formula; a post-Crawford score is read as such. A take or pass is converted at the cube before the double, like the doubler and like XG: converted at the doubled cube, a response error would cost twice too much. A money game has no MWC: ℓ does not exist there.

These two quantities are additive. All the metrics below are sums of them, divided by different denominators, or compared with a reference.

PR (Performance Rating)

The question. What is my level, on the scale everyone knows? PR is the figure of rankings, forums and clubs; it lets you place yourself and compare two matches analysed by XG.

The formula. Over the player’s counted decisions:

\[\mathrm{PR} = 500 \times \frac{\sum_i e_i}{N_\text{compté}}\]

The factor 500 is XG’s convention: a PR of 5.0 is an average error of 0.010, i.e. 10 mpt per counted decision. PR is an average, without unit; the lower it is, the better you played.

What counts as a decision. The rules are XG’s, verified match by match against its figures (Annex: Statistics model — XG / gnuBG / blunderDB alignment):

Decision

Counted if

Checker play

it is not forced and the move played is rated

Double offered

always

Take, pass

always

No double

ND > 0 and ND − min(D/T, D/P) < 0.200

  • A checker play is forced when the roll offers only one legal move, or when the analysis covers all legal moves (counted by blunderDB’s move generator) and all are worth the same equity to the thousandth: a choice that costs nothing whichever move is played is not a decision. This is XG’s rule for “non-forced but inconsequential” moves (a decided race ending, a bear-off where everything is equal). When the legal moves cannot be counted, only a single candidate makes the move forced.

  • A no double is counted when the player was close to doubling: their equity without doubling (ND) is positive and exceeds by less than 0.200 the best outcome of the double for the opponent, min(D/T, D/P). Measuring against this minimum rather than against D/T alone keeps a “too good” position as a decision as long as it stays within 0.200 of the pass.

  • The condition ND > 0 rules out positions where the player on roll is behind: they have no double to consider. XG rules them out too, which its manual does not say; the reference matches show it.

  • A cube decision without a cube analysis is never a counted no double.

Reading. The level bands of the Stats panel (Stats Panel) are a blunderDB-specific landmark, not a published standard. A PR is compared first with your own PRs: same analyser, same kind of opponents, same lengths.

Uncertainty. The PR of one match is very noisy: the standard error of a 7-point match is of the order of 1.5 PR. blunderDB gives a 95% interval (95% intervals) by resampling the games of a match, and the matches of an aggregate.

The PR of a tournament. The tournament list gives the PR of a single player, the reference player, on that player’s decisions only: a PR of both seats would mix the errors of all his or her opponents with his or her own. It is the database’s main player, read under all of his or her aliases, as soon as he or she played in the tournament, even on a single match; otherwise, the player of the greatest number of matches, in a tie the one with the greatest number of decisions, then the name that comes first in character order. This fallback often designates the opponent in a one-match tournament, where both players are tied: designating the main player avoids it (Tournaments Panel).

Limits. The numerator depends on nothing, but the denominator depends on what is counted: the thresholds of 0.001 and 0.200 are arbitrary. You can lower your PR without playing better, by taking a close pass to add decisions to a race, or by choosing in a bear-off a move that creates one more decision. PR weighs an error at cube 8 like an error at cube 1 (equity is normalised to the cube), and an error at DMP like an error at 0-0. It inherits the engine’s imperfections, and the opponent who creates difficult positions raises the other’s PR. The MWC loss and the difficulty answer these three flaws.

XG and gnuBG. On an XG file, blunderDB’s PR is XG’s, to the display precision, apart from the deviations explained in Annex: Statistics model — XG / gnuBG / blunderDB alignment. gnuBG divides the same sum by another number: each move having more than one legal move, and the cube decisions it judges close according to its own window. Its per-decision rate therefore cannot be compared with XG’s PR, even on the same analysis. The Snowie Error Rate (Annex: Statistics model — XG / gnuBG / blunderDB alignment) divides by all the moves of both players: it depends on no counting rule, but is worth about half the PR.

MWC loss per decision and match chart

The question. Which decisions cost me this match? PR puts all errors on the same scale; ℓ weighs them at the score where they were made. An error of 0.040 at 4-4 in a 5-point match does not cost what it costs at 0-0 in a 17-point match. For study, the column and the chart point out the few decisions that decided the match, and the cumulative curve shows where it turned.

Definition. ℓ (The error and the loss of a decision) for each decision counted in PR; a player’s loss over the match is Σℓ over these decisions. A decision outside the count (forced move, no double outside the window) has no ℓ: it would have cost nothing anyway, or nearly so.

Unit. A percentage of chances of winning the match: 2.5 means 2.5% of MWC lost.

Reading. The MWC column of the transcript, the per-decision bar and each player’s cumulative curve are described in the Matches Panel. A single tall bar is a decision to review; a curve that climbs steadily tells of a match of average errors, not of accidents.

Uncertainty. ℓ is exact with respect to the analysis: its uncertainty is that of the analysis itself (depth, rollout or not) and of the MET.

Limits. ℓ depends on the MET: two programs that do not use the same table do not give the same loss. A money game has none, and an analysis computed with a different MET than the database’s stays out of the statistics. An unrated decision carries a dash, never zero.

XG and gnuBG. The sum is the MWC loss that XG displays for the match: checker plays, doubles and responses agree on the reference matches to XG’s display precision (deviation bounded to 0.06 percentage points by the test suite), except for the players with the known residual deviations of Annex: Statistics model — XG / gnuBG / blunderDB alignment, up to 0.45 points. gnuBG does the same conversion, with its own equities: on a match it analysed, its figures differ from XG’s through the analysis, not through the formula.

MWC loss (7-pt eq.) L₇ and Elo against the engine

The question. How much of the match did I lose through my errors, whatever the way of counting decisions, and how do I compare a 5-point match with an 11-point one? L₇ divides by no number of decisions: it cannot be manipulated by adding easy decisions, and it weighs each error at what it cost.

Definition. Under perfect play, the chances of winning the match evolve without bias: against a perfect opponent, a player who loses L of MWC over the match keeps q = 0.5 − L chances. The FIBS formula model says that at equal strength the loss grows as the square root of the length N. L is therefore brought back to a 7-point match, the most common tournament length:

\[L_7 = L \times \sqrt{7 / N} \qquad L_7^\text{agrégat} = \sqrt{7} \times \frac{\sum L}{\sum \sqrt{N}}\]

The aggregate (several matches, one player, one tournament) adds up the losses and the square roots of the lengths before taking the ratio: a 7-point match weighs more than a 1-point match, and a single match returns its own value. Without a player filter, the two seats of a match each weigh √N, but form a single unit of the interval.

Elo against the engine inverts the FIBS formula at 7 points:

\[D = \frac{2000}{\sqrt{7}} \log_{10} \frac{q}{1 - q}, \qquad q = 0{,}5 - L_7\]

Linearised, D ≈ −3474 × L / √N. At L₇ ≥ 50%, q has no finite inverse; from L₇ > 49%, q is floored at 1% (D ≥ −1509) and the Elo is displayed “≤”. L₇ itself has no floor. Both rank players in the same order.

Unit. L₇: a percentage of MWC. D: Elo points, negative, the expected gap between the player and the engine.

Reading. 12.3%: instead of 50% chances against the engine, the player had only 37.7% in a 7-point match. The badge, the detail, the statistics, the tournament and the progression display it (MWC loss (7-pt eq.)).

Uncertainty. 95% interval by games for a match, by matches for an aggregate (95% intervals), then the same transformation as the value. A per-match row of the statistics has none: it is a single unit; the match review carries the by-games interval.

Limits. The √N model is approximate below 7 points and around the Crawford game. L₇ depends on the MET. A money game has no length, hence no L₇: the screen says so instead of displaying a number. Real players lose more than half a match, because errors made after a swing of luck add up: the Elo then reaches its floor.

XG and gnuBG. For a 7-point match, L₇ is exactly the MWC loss that XG displays. Neither program brings the loss back to a reference length or converts it to Elo. This Elo measures the gap to the engine, not a FIBS or BMAB rating between human players.

Difficulty, avoidable errors, excess and ratio

The question. Was this error forgivable? The same loss of 2% is a lapse in an obvious position, and a mistake any good player would make in a position where four moves are within a few thousandths. For study, difficulty sorts the mistakes: avoidable errors (lapse, rule poorly known) are fixed quickly and come first; losses on difficult decisions belong to the long-term work.

Definition. The difficulty d is the loss that a reference player would have suffered on average in the same position, choosing each option i with a probability that is lower the more it costs:

\[\pi(i) = \frac{e^{-\Delta_i/\tau}}{\sum_j e^{-\Delta_j/\tau}}, \qquad d = \sum_i \pi(i)\,\Delta_i, \qquad \tau = 0{,}025\]

Δᵢ is the cost of option i relative to the best one, in normalised equity. The options are the analysis candidates for a checker play; no double and double (against the best response) for the player who owns the cube; take and pass for the one receiving the double. d is converted to MWC like ℓ: both are in the same unit, and the option played has cost exactly ℓ.

τ = 0.025 is a strong-player prior: with two options separated by Δ, d = Δ / (1 + e^{Δ/τ}) is maximal around Δ ≈ 0.032, between “doubtful” and “error”; a gap of 0.1 costs only 0.002; five candidates spaced 0.01 apart give d ≈ 0.012, the average error of a player with a PR of about 6.

  • Avoidable error: the loss reaches the database’s Error threshold and d ≤ ℓ / 10 — with two options, the reference player would not make it one time in ten.

  • Excess of a player over a match: Σ(ℓ − d), what they lost beyond the reference (negative when they did better).

  • Ratio: Σℓ / Σd; 1 means “plays like the reference”, 2 “loses twice as much”. It is not given when Σd < 0.5% of MWC: on a match that is too easy it measures only noise, the excess remains.

What counts. The decisions counted in PR whose loss is rated and converted to MWC; elsewhere difficulty is absent, never zero. A forced move or a no-double outside the PR window therefore has neither loss nor difficulty. Among the counted decisions, no additional threshold sets apart an obvious decision: its difficulty is close to zero on its own.

Unit. d and the excess: a percentage of MWC. The ratio: no unit.

Reading. A loss well above its difficulty is a mistake the position did not excuse; a loss close to its difficulty, a shared mistake. Excess and ratio correct PR for the difficulty of the positions met, hence partly for the opponent’s style (Matches Panel).

Uncertainty. Over one match, excess and ratio rest on few decisions and vary a lot: a trend, not a ranking.

Limits. Difficulty depends on a player model and on τ, fixed once: changing them changes all the figures. It knows only the candidates the analysis kept (a few for XG, according to its filters for gnuBG): absent options weigh nothing, and d is then a lower bound. It inherits the analysis error, especially at low depth.

XG and gnuBG. Neither computes a difficulty. The idea comes from the likelihood indices of chess (Regan); τ is not calibrated on a population of players.

95% intervals

The question. Does this figure say anything, or is it noise? A PR of 4.2 over one match and a PR of 4.2 over forty matches are not worth the same. The interval avoids building a work plan on a cell that rests on nothing, and reading a rank into an isolated match.

Definition. The interval resamples the largest independent unit: the games of a match, the matches of an aggregate (overall PR, phase cells, game plan, label and score, L₇ of an aggregate). Games of the same match share opponent, session and fatigue: resampling them separately in an aggregate would wrongly shrink the interval. Without a player filter, the two seats of a match form a single unit, because they play the same positions.

The formula. For a ratio R = Σeᵤ / Σnᵤ over G units (eᵤ the sum of errors, nᵤ the number of decisions of the unit), the bootstrap variance is computed, without drawing:

\[\widehat{\mathrm{Var}}(R) = \frac{G}{G-1} \cdot \frac{\sum_u (e_u - R\,n_u)^2}{\left(\sum_u n_u\right)^2}\]

and the interval is R ± 1.96 × √Var, the lower bound never below 0, then the same transformation as the value (× 500 for PR). The L₇ of an aggregate follows the same rule, L in place of e and √N in place of n; that of a match is a sum over its G games, with variance G/(G−1) × Σ(l_g − l̄)², l_g the loss of game g. The computation is deterministic: the same database always gives the same interval, on both storage engines.

What is required. At least three units and a non-zero width. With two, the dispersion rests on a single degree of freedom and the interval would be several times too narrow; units all at the same ratio say that they agree, not that the value is exact. Without an interval, the cell is greyed out, its sample size visible (Stats Panel).

Reading. Two intervals that overlap widely settle nothing. A family whose interval stays above your overall PR is an established weakness.

Limits. The normal approximation is rough on few units, and errors have a skewed distribution (a few big mistakes): with three or four units, the interval is indicative.

XG and gnuBG. Neither gives an interval.

Match review

The question. After a match: what do I review, did I lose because of the dice or the play, and do my errors come from haste or from a gap in knowledge? The screens: match review.

Three decisions to review. Among the player’s errors (database threshold) whose loss is quantified, the three with the greatest avoidable part ℓ − d = ℓ × (1 − d/ℓ), positive: the loss multiplied by how avoidable it is. An unknown difficulty counts zero; on a tie, the larger loss, then match order. An error the reference player would also make is not worth a session.

Luck-adjusted result, for a finished match, in MWC points of the player:

\[A = R - C, \quad R = \text{issue} - \mathrm{MWC}_\text{départ}, \quad C = \sum \text{chance de ses jets} - \sum \text{chance des jets adverses}\]

The outcome is 1 for a win, 0 for a loss; the starting MWC is that of the initial score (50% at 0-0). Each roll is converted to MWC like a loss, at the score and cube of its position. Under perfect play, the expectation of A is the opponent’s loss minus yours: the review gives the error gap alongside for cross-checking. A > 0 on a lost match: lost by the dice; A < 0: lost by the play. The luck is the one the analyser wrote (Annex: Statistics model — XG / gnuBG / blunderDB alignment): without luck, no row, and the coverage (rolls measured over rolls played) is displayed, because partial luck biases A. No row either for a money game or an unfinished match.

Hasty and considered errors. Per player and per type (checker, cube), the threshold is the median of the known durations of their quantified decisions of that type in the match: an error played faster is hasty, the others considered. The median is their own, in this match: it does not depend on the pace, and with no link between speed and error the errors split half and half. A hasty majority calls for discipline; a considered majority, for knowledge.

Limits. A match is a small sample: PR and L₇ carry their by-games interval there (three games at least). The adjusted result depends on the MET and on the luck in the file. Duration exists only for a match that kept it (a match played against a bot).

XG and gnuBG. XG and gnuBG display each player’s total luck, but neither an MWC-adjusted result, nor a selection of decisions to review, nor a split by duration.

Study plan

The question. What should I work on now? Ranking one’s errors by cost says where one lost the most, not where study pays the most: a family of really difficult positions costs everyone, and three errors do not make a trend. The screens: Study plan.

Definition. A family is a triplet (game plan, nature of the decision, theme) of recurring errors; its members are the errors of the filter, counted decisions that cost at least the Error threshold. An error without a theme enters no family. A member is quantified if it carries ℓ and d; an error in a money game is counted “unquantified” and enters no priority.

The formula. The recoverable MWC and its interval:

\[R = \sum_i (\ell_i - d_i), \qquad R \pm 1{,}96 \sqrt{\textstyle\sum_i (\ell_i - d_i)^2}\]

R is the family’s frequency multiplied by its average loss beyond difficulty: what one would regain by playing these positions like the reference player. The sum is signed, without clipping. The interval treats the number of members as a Poisson count.

What enters the plan. At least 5 quantified members and a strictly positive lower bound. The plan is ranked by decreasing lower bound: at equal recoverable, the better-established family comes first. The others are “to be confirmed”, without rank.

Unit. A percentage of MWC, cumulated over the filter.

Reading. A family of avoidable errors rises; a family of positions where everyone errs falls. A new player first sees “to be confirmed” families: the plan does not push toward noise.

Limits. The theme comes from blunderDB’s classifier: a misclassified error falls into the wrong family, an error without a theme is in none. R inherits the limits of ℓ and d (MET, truncation of candidates).

XG and gnuBG. Neither offers a study plan.

Reference positions

The question. Which positions to put in a collection to work on the plan? The ten worst errors often give ten variants of the same problem. A good reference position is at the centre of many of your avoidable errors, carries a clear lesson and is not already studied. The screens: reference positions.

Definition. The candidates are the quantified, themed errors of the filter, grouped by position; the excess of a position is the sum of the positive excesses ℓ − d of its errors. Two candidates of the same family — and, for the cube, of the same score — are neighbours at a like distance of at most ρ = 12 pip-steps (one dice roll is worth 8 to 16).

The formula. The gain of a candidate p is

\[G(p) = c(p) \times \sum_{q \,\in\, \text{voisinage}(p),\ q\ \text{non couverte}} \text{excès}(q)\]

as a fraction of MWC: representativeness, frequency and avoidable cost in a single quantity. c(p) starts at 1 and is multiplied by ½ if the lesson is tight (the second choice costs less than half the Error threshold), and again by ½ if it is unstable (another cube analysis depth or a rollout gives another verdict): ¼ when both combine. A rollout that confirms raises nothing: it breaks ties at equal gain.

Selection. Greedy by marginal gain: each position kept covers its neighbours, which no longer bring anything to the next ones, and its near-duplicates are discarded even outside its family. A position already dealt with (comment, Anki card, collection, “studied” mark) is never proposed and counts as already kept.

Unit. The MWC covered, as a percentage.

Limits. The radius and the factors are fixed, not learned. The like distance compares checker structures, not ideas: two positions with the same lesson but distant structure do not cover each other.

XG and gnuBG. No equivalent.

Before/after study

The question. Does what I worked on cost me less in real matches? Without measurement, study is judged by impression; a family that does not move despite the work says that the method must change. The screens: Before/after study.

Definition. Every themed family of the filter is measured, those of the plan as well as the “to be confirmed” ones. A family is studied on the day (UTC) of the first study action on one of its positions: “studied” mark, Anki review whatever the grade, quiz answer. Creating a card or filing a position in a collection is not one. Before window: the matches dated strictly before that day; after: strictly after; the day itself and undated matches are discarded.

The formula. In each window, the loss rate r = Σℓ / N: ℓ the losses of the family’s errors, N the decisions counted in matches of the same game plan and the same nature (the theme exists only for an error). The gain and its interval:

\[\Delta = r_\text{avant} - r_\text{après}, \qquad \Delta \pm 1{,}96 \sqrt{\frac{\sum \ell^2_\text{avant}}{N^2_\text{avant}} + \frac{\sum \ell^2_\text{après}}{N^2_\text{après}}}\]

Verdict. At least 30 decisions in each window, otherwise “insufficient”. “Improving” if the lower bound of Δ is positive, “declining” if the upper bound is negative, “indeterminate” otherwise.

Unit. MWC points per 100 decisions.

Limits. A change, not an effect. A family is studied because it was costing: regression to the mean inflates the gain. Nothing controls for opponents, format or dice.

XG and gnuBG. No equivalent.

Signed biases

The question. In which direction am I wrong? “You take too much” is easier to correct than a PR: the rule to review is named. The screens: Signed biases.

The formula. Each counted decision carries x = +1 (error by excess of boldness), −1 (by excess of caution) or 0. With P and M the two counts over N decisions:

\[B = \frac{P - M}{N}, \qquad B \pm 1{,}96 \sqrt{\frac{(P + M)/N - B^2}{N}}\]

At least 20 decisions; “too much” if the lower bound is positive, “not enough” if the upper bound is negative, “balanced” otherwise. The cost of P and M (in mpt) accompanies the counts. The sign and the cost are those of the move played in its match.

  • Take / pass: over cube responses; P = faulty takes, M = faulty passes. B is exactly your take rate minus the bot’s on the same positions.

  • Doubles: over the cube decisions of the cube owner counted in PR; P = premature doubles (no double, or too good), M = missed doubles. The bias is also given per score cell (your points to go, the opponent’s; post-Crawford counted as 1; money game apart).

  • Blots: over checker plays with contact; x is the sign of (your blots after the move played − your blots after the best move). A move is recognised by the board it leaves; a move that cannot be found drops out of the count, and its share is displayed.

Unit. A difference of proportions, no unit.

Limits. Most score cells stay silent: that is the honest answer. The blot bias counts blots without weighing their exposure, and the discarded moves are not a neutral draw.

XG and gnuBG. No equivalent; XG and gnuBG count cube errors by type (missed double, faulty take…) without interval or verdict.

Tournament review

The question. Did I play at my level, and if not, where did it give way: the last rounds, the long match endings, the scores where one point decides, the clock? The screens: tournament review.

Definition. The player defaults to the main player if he or she played in the tournament, otherwise the one most present in its matches. The usual level is the player over their point matches of the 365 days preceding the tournament (its date, failing that the date of its first match), those of the tournament excluded; at least 5 matches are needed. The tournament and the usual level each have their PR and their L₇, with the by-matches interval (95% intervals).

The formula. Δ = tournament − usual, with standard deviation √(σₜ² + σₕ²), each σ read from the upper half-width of its interval. “Worse” if the lower bound of Δ is positive, “better” if its upper bound is negative, “in line with usual” otherwise. The verdict requires an interval and at least 20 decisions on each side; otherwise “insufficient”, figures visible.

Breakdowns, in PR: by round, each match against the overall usual PR; then each cell against the same cell of the usual level, by rank of the decision in the match (slices of 30: fatigue); by score (DMP, Crawford game, post-Crawford, others); by pace (either side of the median of your durations in the match). At most three families of the study plan restricted to the tournament.

Limits. A three-match tournament almost never says “worse”: that is intended. The two sides are treated as independent, which widens the interval: the rule is cautious. The clock reserve is not recorded move by move: the pressure of the remaining time cannot be measured.

XG and gnuBG. No equivalent.