Fetch your NYT Crossword Puzzle solve stats and export them as CSV.
The NYT app shows minimal information around your streaks and average solve times. This gets you the raw data so you can do your own analysis.
- Python
- A NYT Crossword subscription
- Clone this repository
pip install -r requirements.txt
Fetch all solve stats since January 1, 2019. Use your NYT email and passwords as arguments here
python fetch_puzzle_stats.py -u your@email.com -p yourpass -s 2019-01-01
The resulting CSV file (data.csv
by default, override with -o
flag) has your solve stats.
(my real stats...don't judge me you pros out there...)
date,day,elapsed_seconds,solved,checked,revealed,streak_eligible
2019-02-14,Thu,2107,1,0,0,1
2019-02-15,Fri,2070,1,1,1,0
2019-02-16,Sat,2365,1,0,0,1
2019-02-17,Sun,0,0,0,0,0
date | day | elapsed_seconds | solved | checked | revealed | streak_eligible |
---|---|---|---|---|---|---|
2019-02-14 | Thu | 2107 | 1 | 0 | 0 | 1 |
2019-02-15 | Fri | 2070 | 1 | 1 | 1 | 0 |
2019-02-16 | Sat | 2365 | 1 | 0 | 0 | 1 |
2019-02-17 | Sun | 0 | 0 | 0 | 0 | 0 |
- date - The date the puzzle was published
- day - The day the puzzle was published (e.g., "Mon", "Tue") - useful for comparing different difficulties
- elapsed - How long it took you to solve the puzzle, in seconds
- solved -
1
if you finished/solved the puzzle,0
otherwise - checked -
1
if you had to check an answer on the puzzle, thus making it ineligible for streaks - revealed -
1
if you had to reveal an answer on the puzzle, thus making it ineligible for streaks - streak_eligible -
1
if the puzzle counts towards your NYT streak - this means you solved without cheating (checks or reveals) on the day of the puzzle before Midnight PST
For an example of how to use this data, I plotted my solve times over the last ~8 months, grouped by day: