tracking training with data
the problem
i’ve been powerlifting for a few years and tracking everything in google sheets. the spreadsheet works fine for logging — it’s fast, flexible, and i can access it from my phone between sets. but it’s terrible for seeing trends over time.
i wanted to pull the data out of sheets and into something i could query, chart, and reason about.
google sheets as a data source
the training spreadsheets have a specific structure: repeating week-blocks with day headers, exercise data, and notes sections. left panel covers the main lifts, right panel covers accessories. it’s consistent enough to parse but messy enough that regex alone won’t cut it.
the sync endpoint hits the google sheets api, pulls the raw cell data, and sends it to claude haiku for extraction. haiku handles the tabular structure well — pulling out exercise names, sets, reps, and weights even when the formatting is inconsistent.
what the data tells me
with structured data in postgresql, i can now see things like:
- volume trends across weeks and blocks
- completion rates for planned sessions
- how my working weights progress over a training block
- whether i’m actually following the program or making substitutions
the weekly evaluation is ai-generated too — it looks at the completed workouts for the week and gives a brief assessment of adherence and progress.
the carb timeline
one unexpected addition was the carb intake timeline. i track nutrition through apple health, and the carb data syncs to the site via the same webhook pipeline. plotting carb intake against training sessions shows whether i’m fueling properly around workouts.
it’s a small thing, but seeing the data visualized makes it obvious when i’ve underfueled a heavy session.