Methodology

Owlbert reports are built from engine analysis and deterministic rules. Every metric below is generated from the published MetricDefinition catalogue and the standard-v1 analysis profile — not from free-form copy.

Analysis profile

Profile
standard-v1
Engine
Stockfish Stockfish 17
Nodes per position
1,000,000
MultiPV (critical)
3
Classification
wpl-v1

Metric definitions

Every rate shows its numerator and denominator. Findings based on fewer games than a metric’s minimum sample are labelled insufficient and never headline a section.

Published metric definitions
MetricFormulaDenominatorMin nSourceLimitations
Engine-estimated accuracy

Average per-move accuracy derived from expected-score loss against the engine’s best move.

mean over player moves of 103.1668 × e^(−0.04354 × win%-loss) − 3.1669, clamped to 0–100Analysed player moves30EngineAn engine-relative estimate, not a measure of playing strength. Comparable only under the same analysis profile.
Average centipawn loss

Average evaluation lost per move relative to the engine’s best move, capped at 1000 per move.

sum(min(1000, max(0, eval_best − eval_played))) / player movesAnalysed player moves30EngineInflated in already decided positions; comparable only under the same analysis profile.
Versus your baseline

Difference between this subset’s score and the player’s overall score.

subset score − overall score (percentage points)Games in subset8StatisticSmall subsets produce large swings; check the confidence badge.
Leaves book at move

Average full-move number of the first move after the last position found in the opening dataset.

mean(ceil(book_departure_ply / 2))Games with a reliable book match5Rule-basedOnly games from the standard start position; dataset covers named lines, not full theory.
Category score

Game-level score in games that reached at least one qualifying position of the category.

(wins + 0.5 × draws) / games reaching the categoryGames with a qualifying position8Rule-basedCorrelation only: reaching a category does not cause the result.
Move quality

Move classes by expected-score (win %) loss: best ≤ 2, good ≤ 5, inaccuracy ≤ 10, mistake ≤ 20, blunder > 20; missed win when a winning position (≥ 70%) drops to ≤ 50%.

count per class / analysed player movesAnalysed player moves30EngineThresholds are conventions; classification depends on engine depth.
Repertoire share

Share of analysed games that reached this opening.

games in opening / games in scopeGames in scope1StatisticDepends on which games were imported and filtered.
Score

Points scored per game, counting a draw as half a point.

(wins + 0.5 × draws) / gamesGames in scope5StatisticDoes not account for opponent strength.
Tactic success rate

Share of detected tactical opportunities the player converted.

found / encounteredDetected opportunities of this motif5Rule-basedOnly motifs our detectors recognise are counted; engine-preferred moves without a motif are excluded.
Win rate

Share of games won.

wins / gamesGames in scope5StatisticTreats draws the same as losses; read together with score.

Explanations

Short explanations may be written by a language model, but only from facts the analysis has already computed. Each explanation is labelled with its source, and explanations that mention moves or numbers not in the analysis are discarded and replaced by rule-based text.

Owlbert, the report assistant

Section summaries from Owlbert are assembled from the findings above and never call a model. Answers to your questions are AI explanations: the model only sees your report’s computed facts, and an answer that mentions a move or number not in those facts is replaced by the closest measured findings. Questions are limited per report and their text is never stored.

What the report cannot tell you

  • Your intentions or plans. The engine judges moves, not ideas.
  • Time-management findings if your games have no clock data.
  • Anything about games outside the selection you paid for.