u/aimfeld80

I analyzed 112,583 Lichess games entering the middlegame at +2 or better. The leader lost 25%.

I analyzed 112,583 Lichess games entering the middlegame at +2 or better. The leader lost 25%.

How often does a big advantage out of the opening actually get converted? To find out, I took ~460k chess games across rating levels and time controls, keeping the 112,583 where one player started the middlegame at +2.0 or better. The numbers below use the 82,023 of those where the two players were within 100 rating points of each other.

Main findings:

  • The leader wins 71%, draws 4%, and loses 25%. At 2400 it's still a 22% loss rate.
  • "At least +2.0" matters: the median lead in this set is +3.6. At exactly +2 to +3, the leader loses 32% of the time. At +5 or more, only 15%.
  • The share of "sustained-lead wins" (the lead never dips below +2 again) looks flat across ratings (~40% everywhere), which would suggest masters are no better at holding a lead. That's Simpson's paradox: weaker players are handed much bigger leads, and bigger leads are easier to hold. Fix the lead size and the skill effect reappears (16% at 800 vs 23% at 2400 for a +2 to +3 lead).
  • Losing on the board is a rating problem (all time controls overlap, improving with rating). Losing on the clock is a time-control problem: blitz leaders flag away 6-9% of these "won" games at every rating, rapid ~3%, classical ~1%. In 41% of blitz flags the leader was still two pawns up on the final position.

Full write-up with charts and methods: https://stories.flawchess.com/two-pawns-up/.

Caveat: these are games players sent to Lichess server analysis themselves, so it's not a uniform sample. Therefore, I verified the results with a second dataset.

Disclosure: I'm the author, and the blog lives on the domain of a free chess site I run. The full technical report is linked from the article.

u/aimfeld80 — 1 day ago
▲ 58 r/chess

I analyzed 112,583 Lichess games entering the middlegame at +2 or better. The leader lost 24%.

How often does a big advantage out of the opening actually get converted? To find out, I took ~460k Lichess games across rating levels and time controls, keeping the 112,583 where one player started the middlegame at +2.0 or better (Lichess's phase boundaries).

Main findings:

  • The leader wins 73%, draws 3%, and loses 24%. At 2400 it's still an 18% loss rate.
  • "At least +2.0" matters: the median lead in this set is +3.6. At exactly +2 to +3, the leader loses 30% of the time. At +5 or more, only 14%.
  • The share of "sustained-lead wins" (the lead never dips below +2 again) looks flat across ratings (~43% everywhere), which would suggest masters are no better at holding a lead. That's Simpson's paradox: weaker players are handed much bigger leads, and bigger leads are easier to hold. Fix the lead size and the skill effect reappears (17% at 800 vs 27% at 2400 for a +2 to +3 lead).
  • Losing on the board is a rating problem (all time controls overlap, improving with rating). Losing on the clock is a time-control problem: blitz leaders flag away 7–9% of these "won" games at every rating, rapid ~2.5%, classical ~1%. In 41% of blitz flags the leader was still two pawns up on the final position.

Caveat: these are games players sent to server analysis themselves, so it's not a uniform Lichess sample.

Full write-up with charts and methods: https://stories.flawchess.com/two-pawns-up.

Disclosure: I'm the author, and the blog lives on the domain of a free chess site I run. The full technical report is linked from the article.

u/aimfeld80 — 2 days ago

Personalized tactic-or-not puzzles, built from your own blunders

Inspired by Aimchess, backrank.io, and tacticornot.com, I built a free puzzle trainer on FlawChess that turns the blunders in your own games into puzzles. There are several tools that make puzzles from your own games, and several that train you to tell tactical positions from quiet ones. As far as I can tell, no free platform combines these ideas, unless I missed it.

Tactic-or-not: In every position you first decide whether there is one critical move or several fine moves, and commit to that before you play. Quiet positions are mixed in, so there isn't always a tactic waiting, just like in a real game situation.

Personalized: The positions are the ones where you actually blundered, so you're rehearsing your own failure modes rather than a random sample. Your chess.com and lichess history is analyzed with Stockfish, and the blunders become the puzzle pool.

Spaced Repetition: If you fail a puzzle, it comes back next session. Solve it and it returns after three days, then after ten, and drops out of the pool once you've solved it three times.

Scheduling: You can pick your training days and how many puzzles per session, build a streak, and optionally get push notifications for pending sessions.

The platform also has human-like bots and a dedicated chess engine based on Stockfish and Maia. It helps you find practical moves/lines at your ELO level, rather than the objectively best move which can be hard to follow up. I wrote about that here.

It's all free and open source. Training does not work in guest mode, though: building your puzzle pool means running Stockfish over your game history, which costs real compute, so it isn't something I can do for anonymous sessions. The rest of the site (opening explorer, endgame statistics, single-game analysis, the engine) you can fully use as a guest without signing up.

Feedback is always welcome and helps improve the platform.

u/aimfeld80 — 14 days ago
▲ 69 r/lichess

An engine to find the most practical move, not the objectively best one

Stockfish tells you the best move if both sides were super-human players. In some cases, that's not very useful for practical play, especially if the line contains follow-up moves you are unlikely to find at your level.

The FlawChess engine combines Maia-3 and Stockfish to rank moves by expected practical score: how a move actually scores given you and your opponent play like real humans at your real ratings.

How: Maia proposes the human-plausible candidate moves, Stockfish scores them, and a search algorithm combines them. So a winning-but-inhuman only-move line gets down-weighted, and a second-best move with easier follow-ups can rank first.

Full writeup (expectimax, MCTS budgeting, findability weighting, the play-style dial): FlawChess engine explained

The engine is meant for analyzing your games on lichess and chess.com, but it also drives 24 bots (4 styles × 6 ELO levels, strengths measured from thousands of calibration games):

  • ⚔️ Attacker — gambits, checks, pawn storms
  • 🃏 Trickster — troll openings, swindles, thrives in chaos
  • 🪨 Grinder — exchange lines, endgames, basically never resigns
  • 🛡️ Wall — London/Caro/Stonewall systems, quiet and solid

This is a free and open-source project, no signup required. Let me know what is missing and what should be improved.

u/aimfeld80 — 28 days ago

Looking for early feedback on flawchess.com, a free and open-source chess analytics site

I've been working on flawchess.com as a hobby project. It's a free, open-source chess analytics site, no ads, no tracking, no premium tier. You import your games from lichess and/or chess .com and it helps you find leaks in your openings, endgames, and time management.

I've been developing software for 35 years and transitioned into data science a few years ago. This is a great learning project. A few strong chess players gave me encouraging feedback, so I figured it's ready to share.

A few things it does that I couldn't find elsewhere:

Opening Explorer & Insights
Win/draw/loss stats per candidate move from any position, including average Stockfish eval at the end of the opening. An automatic 8-move scan surfaces your strongest and weakest opening positions. Also useful for scouting an opponent's repertoire before a game.

Endgame Analytics
WDL by endgame type (rook, minor piece, pawn, queen, mixed) plus how often you convert when ahead and recover when behind. Endgame ELO timeline per platform and time control. AI-narrated personalized feedback on what your numbers mean.

Time Management Stats
Average clock advantage or deficit when you enter the endgame, your performance under time pressure compared to your opponents, and flag rates per time control.

A couple more: bookmark openings to track performance over time; system opening filter (your pieces only) so you can analyze e.g. your London across every Black response at once; mobile PWA, installable on iOS/Android.

Try it: https://flawchess.com (no signup required, "Use as Guest") Code: https://github.com/flawchess/flawchess

Specific feedback I'd be interested in:

  • Which stats are useful, and which feel like noise?
  • What's missing that you'd actually use?
  • Any obvious UX issues on mobile?

Let me know here, on GitHub, or at support@flawchess.com.

u/aimfeld80 — 3 months ago