31 May 2026. 1.9 km swim, 90 km bike, 21.1 km run. I was 21.
The plan was 5:30. Forty minutes for the swim, revised to forty-five once my shoulder became a factor. 3:05 on the bike. 1:30 for the half marathon.
| Swim | 0:58:34 | 0:45:00 | +13:34 |
|---|---|---|---|
| T1 | 0:07:01 | — | — |
| Bike | 3:44:45 | 3:05:00 | +39:45 |
| T2 | 0:07:18 | — | — |
| Run | 1:54:30 | 1:30:00 | +24:30 |
| Total | 6:52:07 | ~5:30:00 | +1:22:07 |
Both legs cramped 400 m into the swim and never fully released for the next six and a half hours. Every split was missed by a wide margin for the same reason.
A few weeks on, two things from that day are worth writing down. One is that I still cannot fully explain the cramping, though I have narrowed it. The other is that I came close to stopping four times, none of the four had anything to do with the pain, and after the second transition there was not a fifth.
Before
Two weeks out I pinched a nerve in my shoulder. It cost me a handful of sessions, not many. Going in, that was the thing I was worried about — and it was the only thing that behaved.
Race morning was clean. I slept badly but not disastrously, ate the same boring breakfast I had eaten before every long session, racked my nutrition in T1, got into the wetsuit, swam a warm-up. Everything to that point went exactly as rehearsed.
Then the start was pushed back 1:15 for a thunderstorm, and I stayed in the wetsuit for the entire delay. At the time that did not feel like a decision. It is the first thing I would change.
Water and air temperature were close to perfect.
Swim — 0:58:34
The shoulder felt fine in the water, which was the good news and lasted about six minutes.
At 400 m, both calves went. I had never had this before — not in the pool, not across five to seven open-water sessions, not in brick workouts. It alternated between legs for the rest of the swim.
At around 1000 m I took a kick to the head and got dizzy. That was the first time I thought about stopping, and it was not a decision about the race. I did not know whether continuing was safe or whether I should signal for the water rescue. I kept going, but from that moment the question stopped being how fast and became at all. The last 800 m I swam almost entirely with my arms, because my legs were shut.
Out of the water thirteen minutes over a target I had already downgraded once.
T1 — 0:07:01
Seven minutes standing still in a race where every second is normally defended. I stretched, deliberately and at length.
That number is the clearest record in my splits of the moment the race changed its purpose.
Bike — 3:44:45
The first 5 to 10 km were flat and genuinely good. 35 km/h, no cramping, and I briefly believed the swim had been a contained problem. Then the first climb, and both calves went at once.
From there, every metre of elevation gain triggered it. Calves, quads, eventually the whole lower body, and later cramping through my upper body as well. On fast flat sections where you would normally push, I rode standing up, trying to stretch anything I could reach while still moving.
Around kilometre 35 I rode alongside someone with almost the same problems and almost the same target time. We talked. There was real sympathy there — he was having my exact day. Then he pulled out. Watching him stop hurt more than anything my legs were doing at that moment, and it was the second time I seriously considered it myself.
Kilometre 60, just after a steep descent I knew I would have to climb back up later. I did the arithmetic: 30 km still to ride, including that hill, and then a half marathon — the distance people train for months to run once — which had not even started yet. I cried on the bike. Mostly frustration, some pain. Third time.
The last 10 km were in pouring rain. Everything already hurt and then the weather turned. Fourth time.
Somewhere in the middle of all this I ran the one experiment the day allowed. I was fuelling 60 g of carbohydrate per hour, tested repeatedly in training, and my stomach was fine. As the cramping got worse I pushed sodium far above plan, because that is what everyone tells you to do.
It changed nothing. Not less cramping, not shorter episodes, nothing I could detect at all.
Run — 1:54:30
Running is my discipline. Off the bike the cramping eased enough to hold about 4:50/km for a while, until stomach cramps arrived on top of the leg cramps in the closing kilometres. The last hour was the most uncomfortable part of the entire day.
From T2 onward I did not think about stopping once.

6:52:07
There were several points during that day when I was not sure I could finish. Crossing the line was the only number that mattered by the end.
Why did I cramp?
Everything I measured checks out. Loading was clean, fuelling was tested and worked, sodium was planned against what I had rehearsed, conditions were mild. And the sodium I took mid-race did nothing, which is about as clean a negative as an n=1 gets.
The literature helps here more than the finish-line consensus does. The electrolyte-and-dehydration explanation is weaker than its popularity suggests; the better-supported model is altered neuromuscular control under fatigue, which predicts cramping specifically when a muscle contracts in a shortened position and names insufficient conditioning for the specific movement as a risk factor.
I trained front crawl. Because of the shoulder, I raced breaststroke — a completely different kick, loaded through the calf in exactly that position, and one I had never trained at race intensity. Both calves, at 400 m, after months without a single incident. Not proof, but it predicts the pattern I got, and the thing I actually tested mid-race does not.
The failure is mine and it is simple. I knew two weeks out that my shoulder might not hold, and that I might have to swim breaststroke. I did not train breaststroke. A contingency you have not rehearsed is not a contingency, it is a hope.
The four moments
Not one of them was caused by pain.
The pain was roughly constant from the swim onward and got worse across the day. If pain drove quitting, the quit thoughts would have clustered at the end. They did not. They clustered where I had no idea what was still coming.
The kick to the head was uncertainty about my own body. Kilometre 35 was information about my odds — someone with my exact problem and my exact goal had just demonstrated that this day ends in a DNF. Kilometre 60 was an explicit calculation about a remainder I had never covered in that state. Only the rain was really about the present getting worse.
And then T2, and nothing. The pain did not drop; it got worse. What changed was the shape of what remained. A half marathon is my discipline. I have run that distance many times, I know what it costs, I know what kilometre eighteen feels like when it is going badly. There was nothing left to estimate.
Six hours of an unknown remainder in an unknown state, then two hours of a known quantity in a bad state. Those are different problems, and only one of them makes you consider stopping.
What I take from it
Reduce the uncertainty, not the pain. You mostly cannot reduce the pain anyway. You can almost always shrink the remainder into a unit you have already survived — next climb, next aid station. “30 km and a half marathon” is the framing that broke me at kilometre 60, and looking at the total is optional.
Watch what other people’s failures do to your estimate. The man at kilometre 35 gave me no new information about my legs. He gave me a vivid data point that I unconsciously treated as evidence about my own outcome, and it landed harder than any of my own symptoms.
Separate the feeling from the function. I cried on the bike and kept riding. Written down that sounds dramatic; the practical content is dull. How you feel about a task and whether you can execute it are two different variables, and I had been treating them as one.
Rehearse plan B. See above. This is the one that actually cost me the race.
What it is worth
The thought I kept having on the bike was: if I finish today, nothing in my career or my training or anywhere else will ever be too hard again.
I am not going to claim that. It is one data point, and I am suspicious of large conclusions drawn from one data point, including when the data point is me.
Here is what I can defend so far. In every genuinely hard session since — specifically in long runs with marathon-pace intervals — I have gone back to Kraichgau, and it works. The session in front of me is smaller than the day I already got through. That is not a feeling, it is a thing that reliably happens. It is narrow and it is real.
Whether it extends to hard problems that are not endurance sport, I do not know yet. Berlin is in September. Frankfurt is next June, and by then I intend to have swum a great deal of breaststroke.
What I am sure of is smaller than what I wanted to be sure of on the bike. I would rather report the smaller thing accurately.