Paul Ojuri

Week 1 · from 2026-09-21 · phase: foundation (month 1) · block 1

This week

Fix the activity problem: get FIDE-rated games on the calendar. Baselines. Top two leaks. Narrow the repertoire. 8 of 8 hours planned. Blitz cap 20 games.

FIDE ratings inactive and no registered event: the Sunday admin block is the priority.

Coach's briefing · generated 2026-09-21 · every claim links to its evidence

Week 1 of the foundation phase starts with your FIDE rating inactive and zero rated games in 12 months, so the registration block already ticked off on Sunday is the piece that unlocks everything else.

Where things stand

  • Your FIDE standard rating is 1795 and listed inactive, with 0 rated games in the last 12 months. The pipeline flags the Sunday admin block as the priority; it is marked done.
  • The analysed pool is 1,277 games (415.2 weighted), dominated by rapid (673) and blitz (459), with only 6 classical games. Conclusions rest mostly on faster time controls.
  • Form over the last 28 days covers 2 rapid/classical games: 87.5% accuracy, 50% win rate. The previous 28 days contain 0 games, so no comparison is possible.
  • On current scenario modelling, probability of reaching 2200 is 0.9% and of reaching 2000 is 37.7%.

Why these targets

  • Primary target is positional mistakes and blunders with no tactical shape: 549 instances, 73.86 per 100 games, mean severity 31.03. This is judgement, not calculation.[leak]
  • One example: 21.Rc1 instead of cxd4, costing 44.35 win percentage points with no tactical shape detected.[game · move 21 · leak]
  • The most expensive sample is 30.Qg4 instead of Nc5, a 72.58 win-percentage-point drop in a rapid game from February 2026.[game · move 30 · leak]
  • Secondary target is failed conversion from clearly winning positions ("+2 or better): 163 instances, 21.8 per 100 games, severity 50.0. Targets are 59.09 and 17.44 per 100 by 19 October, minimum 30 games.[leak]

Last cycle

  • There are no completed cycles yet, so there is no progress to report. This is week 1.
  • Trend states on every confirmed leak read not_enough_data, because the comparison windows hold 0 to 3 games. Nothing measured this week can yet be called a change.[leak]

The week ahead

  • Monday is 90 minutes of play at 45+15 or slower, then 30 minutes annotating that game unassisted. The unassisted step is what exposes judgement errors before the engine names them.[leak · session]
  • Wednesday's 60-minute engine review is checked against your own Monday annotation, which is how the primary leak gets measured rather than just counted.[leak · session]
  • Tuesday and Saturday are 60-minute calculation sets built from only-move positions in your own games.[session]
  • Friday is 60 minutes replaying your own failed conversions against the engine, aimed directly at the 163 winning positions you did not convert.[leak · session]
  • Thursday is a 60-minute repertoire audit of what you actually play. Total load this week is 8.0 hours, no deload.[session]

What the data cannot say yet

  • All leak trends return not_enough_data: the previous windows contain between 0 and 3 games, so no leak can be described as rising or falling.
  • Only 6 classical games sit in the 1,277-game pool, so the leak profile is inferred mainly from rapid and blitz and may not transfer cleanly to classical play.
  • Recent form rests on 2 games in 28 days; the 87.5% accuracy figure carries no weight at that sample size.
  • The success windows for both targets require a minimum of 30 games by 19 October; below that, the 59.09 and 17.44 per 100 thresholds cannot be judged.

Written by claude-opus-5 from the pipeline's evidence pack only; the plan itself is generated deterministically and the model cannot change it. Claims that failed reference checks were rejected before publication.

Mistakes and blunders with no tactical shape (judgement, not calculation)

confirmed

primary target · 50% of the week · n = 549 · 73.9/100 games

No puzzle fixes judgement. Unassisted annotation of your own long games, then engine comparison; calculation sets with no board movement; slower play.

Pre-registered success: frequency_per_100 from 73.86 to ≤ 59.09 by 2026-10-19, on ≥ 30 games.

Reached a clearly winning position (≥ +2) and did not win

confirmed

secondary target · 30% of the week · n = 163 · 21.8/100 games

Play out your own failed conversions against the engine from the entry position, both sides; tablebase check where ≤7 pieces.

Pre-registered success: frequency_per_100 from 21.8 to ≤ 17.44 by 2026-10-19, on ≥ 30 games.

Sessions

No write-back token (results stay in this browser)

Monday · 90 min · playLong game, 45+15 or slower (60+30 when time allows)

  • Where: lichess.org (rated, 45+15 pool or a club game) · chess.com daily/rapid 45+15

Done when: One completed rated long game, PGN in the database by the nightly run.

Play with the clock rule if a time leak is targeted. No blitz before the long game.

Monday · 30 min · analysisUnassisted annotation of tonight's game

Done when: Written annotation (critical moments, your own evals) saved before any engine use.

Tuesday · 60 min · calculationCalculation set: only-move positions from your own games

targets: positional:blunder_committed

Done when: 15 positions, full variation written before revealing, no board movement; judgment_calibration score recorded.

Wednesday · 60 min · analysisEngine review of Monday's game against your annotation

Done when: Every error tagged by you first, then compared with the pipeline's tags; disagreements logged.

Disagreements are the interesting part. They calibrate your judgement and catch tagger mistakes.

Thursday · 60 min · openingsRepertoire audit: what do you actually play?

  • List every opening reached 5+ times in the last 12 months (see /chess/games).
  • Mark which are prepared and which are improvised.
  • Write the result into chess-coach/config/repertoire.yaml (white.first_move, lines with priority core/developing).

Done when: repertoire.yaml is no longer empty.

Narrowing beats broadening at this level. Two lines as White, one reply each to e4/d4/c4 as Black is enough.

Friday · 60 min · endgamesPlay out your own failed conversions against the engine

targets: conversion_fail_win

Done when: Each position played out from both sides; result vs theoretical result recorded (tablebase where ≤7 pieces).

Saturday · 60 min · calculationCalculation set: only-move positions from your own games

Done when: 12 positions, written variations, calibration recorded.

Sunday · 60 min · adminGet FIDE-rated: find and register for a classical event

  • List every FIDE-rated classical event within reach of Turnhout in the next 6 months: Belgian interclubs, Belgian and Dutch opens, weekend events in northern France and western Germany.
  • Enter dates, deadlines and formats into chess-coach/config/calendar.yaml.
  • Register for at least one and set registered: true.
  • Check the next FIDE World Amateur Championship: dates, U2000 eligibility (no published rating ≥2000 in the prior year), entry deadline.

Done when: calendar.yaml has at least one event with registered: true.

Both FIDE ratings are flagged inactive. Nothing else this week matters as much as this hour.

From your own games this week

Calculation set: only-move positions from your own games
Calculation set: only-move positions from your own games
Play out your own failed conversions against the engine
Play out your own failed conversions against the engine
Calculation set: only-move positions from your own games
Calculation set: only-move positions from your own games

Why this week looks like this

  • Target 'Mistakes and blunders with no tactical shape (judgement, not calculation)' (confirmed, n=549, 73.9/100 games, severity 31%): ranked #1 by frequency × severity × recency.
  • Target 'Reached a clearly winning position (≥ +2) and did not win' (confirmed, n=163, 21.8/100 games, severity 50%): ranked #3 by frequency × severity × recency.

Game data from Chess.com (Published-Data API) and Lichess (open API and CC0 database). Engine analysis by Stockfish. Ratings from FIDE. Board design is our own. Data generated 2026-09-21 06:01 UTC.