In the last full week of July I trained nine hours and twenty minutes. My coaching app recorded two of them, told me I had missed three sessions, and offered to help me get back on track.
I want to be fair to it. It was not broken, and nobody at that company made a mistake. It counted exactly what it was built to count, which was the two occasions I picked up a barbell. Everything else I did that week was, as far as it was concerned, time off.
The week, as I lived it
- Tuesday. 6k on the erg before work, thirty-two minutes, intervals. Legs like rubber by the last piece.
- Wednesday. Upper body push at the gym. Forty-eight minutes.
- Thursday. Spin class, 18:30. Forty-five minutes of somebody shouting at me in the dark.
- Friday. Upper body pull. Forty-five minutes.
- Saturday. Twenty-two kilometres over Kinder Scout with three friends and a lot of weather. Six hours and ten minutes, most of it up.
Nine hours, twenty minutes. Five sessions, four different kinds of training, one of them long enough to count as a day out.
The week, as my app saw it
Wednesday and Friday. One hour thirty-three. Two sessions out of a target of five, and a gently worded note on Sunday evening about consistency.
And then the part that actually matters: because it believed I had done almost nothing since Wednesday, it had put a heavy lower body day on Sunday morning. Squats, Romanian deadlifts, split squats. The morning after six hours on a hill.
It was not asking too much of me. It was asking the right thing of somebody who had not walked twenty-two kilometres the day before.
I did it badly, quit after the second exercise, and marked the session as skipped. The app recorded a third miss. That is three misses in a week I trained more than I had in a month.
Why this is a design decision, not a bug
Logging apps count what they can see, and what they can see is what you type into them. Hevy sees my lifts because I record my lifts there. Strava sees my hikes and my rides because my watch sends them there. Concept2 sees the erg because the erg talks to it directly.
Each one is good at its job. The problem is that none of them is holding the whole week, and the thing that decides what I should do on Sunday is the whole week. Fatigue does not care which app it was recorded in.
There is a second-order version of this that is worse. Because the gym app is the one writing the plan, and the gym app can only see the gym, the plan gets denser over time - it keeps finding room in a week that looks empty. The fuller your life gets, the harder your programme gets.
You can patch it by hand. I did, for about a year: describe the week into a chat window, get a reasonable block back, retype it into the logging app set by set, and start again whenever anything changed. It works, and it is a ridiculous way to spend a Sunday.
What I wanted instead
Something that reads all of it - the lifts, the erg, the rides, the classes, the hills - and treats Sunday as a consequence of Saturday. Not because that is clever, but because it is what any competent human coach does in the first ten seconds of a conversation. You tell them you walked twenty-two kilometres yesterday and they change what you are doing today. They do not need to be persuaded that walking counts.
That is the whole idea behind what I am building. It is not a smarter programme generator. It is one that can see the week you actually had.