Rebuilding and analysing 4 years of Wordle stats from WhatsApp chat logs

Yes, I’m still playing Wordle in 2026.
According to Wordle, I’ve played 1,559 games, I win 99% of the time, my current streak is 107 days and my longest is 278. Four numbers, and they’re mostly correct. What I don’t get is anything behind them. No per-game history. No way to compare a Tuesday to a Sunday. No sense of whether I’ve actually got better at this over four years.
Each day I’ve played, I’ve also shared the result to WhatsApp. Just a habit, not a data strategy, but it turns out that habit quietly built a far more detailed record than Wordle itself ever keeps. One I can finally ask my own questions of. So I looked into rebuilding my own copy of the data.
The problem with Wordle’s own stats
Since 30th June 2025, most of that data hasn’t even lived on the phone. It lives on my NYT account instead, server-side, which is exactly why today’s numbers survive a device switch, a cleared cache, a reinstall. I only know the precise date because of a fossil still sitting in my phone’s local storage: a key called wordle-legacy-stats-228392857, currentStreak and maxStreak both frozen at 234, with an embedded timestamp that decodes to that day.
{
"wordle-legacy-stats-228392857": {
"gamesPlayed": 1170,
"gamesWon": 1162,
"guesses": {
"1": 4,
"2": 65,
"3": 323,
"4": 440,
"5": 263,
"6": 67,
"fail": 8
},
"currentStreak": 234,
"maxStreak": 234,
"lastWonDayOffset": 1472,
"hasPlayed": true,
"autoOptInTimestamp": 1706429323127,
"hasMadeStatsChoice": false,
"timestamp": 1751262931
},
// ...
}
Right next to it sits wordle-stats-cutover-tooltip, just a boolean set to true, almost certainly the one-time notice flag for the move. The old key was never reset, just abandoned mid-run, and the handover to the account-based numbers happened cleanly enough that today’s 278 carried across intact.
Before that safety net existed, none of this was guaranteed. I switched from a Pixel 5a to a…