Skip to content

The Boardseven years of games, mined

Seven years of games, mined

Every rated game played on lichess and chess.com, pulled at build time and taken apart — the rating arc, where the games actually end, what the repertoire drifted into, and a bot tuned to play like its owner.

The Findings

19,000 rated and casual games across two platforms, pulled from both public APIs at build time and analysed before anything on this page was written. The finding was not flattering: 41.5% of my decided games ended on a clock, not on a board49.8% of every loss was a timeout, against 33.0% of wins won on the opponent's. I don't lose positions nearly as often as I lose time.

Clock remaining, by game progressTHE THESIS
— wins— losses
Mean fraction of the starting clock still on my clock, from 3,319 blitz games carrying per-move clock annotations. The gap opens in the early middlegame and never closes: losses are decided by time spent long before any late blunder.
ProgressWinsLossesGap
010%99.0%98.7%+0.3%
1020%95.1%93.4%+1.7%
2030%89.2%85.8%+3.4%
3040%82.1%76.8%+5.3%
4050%74.5%67.7%+6.8%
5060%67.0%59.2%+7.8%
6070%58.7%50.1%+8.6%
7080%50.7%42.1%+8.6%
8090%43.8%35.6%+8.2%
90100%36.8%28.6%+8.2%

Corpus

19,000

games, 2019-02-092026-09-06. 9,246W / 9,278L / 476D — a losing record by 32.

Time at the board

1,055 h

763 h self-reported by lichess, plus 291 h derived from the wall clock in 4,577 chess.com PGNs — chess.com publishes no play-time figure, so this is two measurements added together, not one metric.

Showing up

83.1%

of days played — 2,300 of 2,767 days in the span, longest unbroken run 298 days. Longest loss streak 14 beats the longest win streak 12.

Repertoire as Black

I opened 2019 with the Scandinavian — at least 36.3% of my games as Black that year. By 2020 it was displaced by the Modern Defense (35.8%), and by 2022 it had dropped out of the top five entirely. It is my most-played reply again today: 33.8% of Black games in 2026.

Both halves are real, but they are two within-platform observations rather than one continuous line. The abandonment happened on lichess and the return happened on chess.com, with the 2023 handoff sitting between them — so “I came back to my first opening” cannot be cleanly separated from “I started fresh on a new site.” It is a handoff, not two accounts running side by side: lichess’s last flicker is 3 games in 2025, which is the only reason its rating history reaches that far. Game counts say when someone was actually playing; rating-history dates do not.

The Scandinavian column sums only the Scandinavian lines that made that year’s top five replies, so it is a floor rather than an exact share; an em dash means none of them did, not that it was never played.
Yearlichesschess.comMost-played replyScandinavian (top 5)
20192,4800Scandinavian Defense Mieses Kotrc Variation 26.3%36.3%
20203,2620Modern Defense 35.8%12.5%
20214,67219Modern Defense 54.5%
20223,3650Modern Defense 51.2%
2023handoff3372,017Modern Defense 21.1%20.5%
202401,043Scandinavian Defense Mieses Kotrc Variation 17.2%21.3%
20253590Scandinavian Defense Mieses Kotrc Variation 14.5%17.9%
202601,212Scandinavian Defense Mieses Kotrc Variation 26.9%33.8%

The cast

Over in the Loopdown I give recurring production bugs names and personalities, because a bug you can name is a bug you can hunt. The same three keep turning up over the board — and unlike the ones at work, these came with their own receipts.

The Flagfall

49.8%

of every loss, decided by the clock rather than the board. Not an opponent — a deadline.

The Ninth Game

34.8%

win rate by game nine of one sitting, against 48.5% on game one. He should have stopped at eight.

69 games — a thin tail, shown with its n

The Returner

26.9%

of games as Black are the Scandinavian again in 2026, after it was displaced almost entirely on the other account. First loves are a repertoire choice.

Generated 2026-09-06 from the lichess and chess.com public APIs by scripts/gen-chess-stats.mjs — every number on this page is build output, not prose. Re-run it and the figures move.

Second pass — four fields the first analysis never read

More clock does not help me

1+0 · 9,653 games
49.4%
5+0 · 3,977 games
48.2%
10+0 · 262 games
48.9%

Ten times the thinking time moves the win rate by half a point. Whatever decides these games, it is not how long I get to look at them.

I leave theory on move one

median book exit: ply 2

In the 109 games where I stayed in a named opening to ply 8 or deeper, I won 54.1% — against 48.9% across the 12,990 where I was out by ply 4. The sample is small and I have never acted on it.

Where the game came from

pool · 13,730
49.2%
arena · 163
28.2%
lobby · 117
29.1%
friend · 104
59.6%

Matchmaking is a coin flip. Arena is a bloodbath. The gap is twenty-one points and the arena sample is small enough to stay a hypothesis.

How they actually end

outoftime
49.2%
mate
28.7%
resign
19.5%
timeout
1%

Across every game, not just decided ones: the clock ends more of them than checkmate and resignation combined.

14,119 lichess games · scripts/gen-chess-deep.mjs

frequently asked

What does he do at Dice.tech?

SDE-2, Android & Product Owner at Dice.tech (June 2023 - Present), platform owner of the app behind 50k+ monthly active users (22k+ daily, platform owner at Dice.tech). See the source.

What did he do to improve GPS accuracy?

Took GPS accuracy to 95%: up from 50%, by predictive dead reckoning. See the source.

How did he reduce production crashes?

80% crash reduction: Crashlytics + structured concurrency fixes. See the source.

How much of the app is Jetpack Compose?

~87% of the UI layer: 455k of 523k UI-layer LOC, verified screen by screen against the legacy XML. See the source.

Where did he study?

B.Tech, Computer Science & Engineering, NIT Bhopal (MANIT) (2017 - 2021). See the source.

What is the Neev Consulting role?

Consulting Engineer, Platform & AI at Neev Consulting (April 2026 - Present). Built the LLM assistant layer of an ERPNext/Frappe consulting ERP: business-context resolution, capability discovery, and an AI capability gate that defaults OFF with a test proving it. Models client to project to PO to milestone to GST invoice to payment end to end. See the source.

What is Doori?

Doori: Offline-first mileage, travel & expense tracker on one Kotlin codebase across Android, iOS, Wear OS, watchOS & Desktop. See the source.

What is Gaddi?

Gaddi: A Hinglish social-deduction bluffing game of power, satire & second chances. Gaddi ke liye kuch bhi karega. See the source.

What is PaymentsLab-KMP?

PaymentsLab-KMP: An Integration Lab for the Android payments ecosystem: every gateway behind one abstraction, with a live look at what actually happens on each transaction. See the source.

What is Candidai?

Candidai: A native, multiplatform AI career-intelligence engine, and the open-source project it's built on. See the source.

Does he write, outside of code?

Yes: The Loopdown, his field-notes writing hub, where the recurring bug characters are named after real production incidents. See the source.

What's he like to work with?

Answered by his own teammates, not by him: see the EB Profiles, one question per member, in their own words. See the source.

Is he available, and how do I reach him?

Open to remote (worldwide / India) and hybrid in Pune / Bengaluru. Email siddharthpandalai990@gmail.com. See the source.

What has he contributed outside employer work?

Shared Kotlin Multiplatform libraries used across his own apps, plus merged upstream pull requests on career-ops: see the repos and the running count. See the source.

Has anything he's built shipped for real?

Yes: see the Play Store shelf for the apps that are actually live and installable, not just source. See the source.

What can I try on this site besides reading it?

Every route on the site, as a tile you can open: 3D builds, labs and canvases, not screenshots. See the source.