KONAMETRICS
All articles
Training LogJuly 2026 · 7 min read

Training Week of July 13: Cracking 100km, Caffeine in the Gels, and a Real Fatigue Hole

Last week I finished a long ride at 96.3km and was annoyed I hadn't pushed through to triple digits. This week I did — 105.6km on Saturday, inside 12.8 hours and 877 TSS of training that left me more genuinely tired than any week of this build. It was also a week where I skipped a session outright and cut two others short, so this one comes with asterisks. All of it points at Ironman 70.3 Washington Tri-Cities — the race where I finished 15th in my age group last year, and where the goal this time is to go faster and earn a slot to the Ironman 70.3 World Championship.

POV from the aerobars of the TT bike on Saturday's long ride, both forearms on the armrests, bike computer mounted between the extensions, grey asphalt and a grass verge passing below

Two hours into Saturday's 105.6km — the ride that finally broke 100.

Where this week fits

I'm still working through My Pro Coach's Advanced Half-Distance Training plan on TrainingPeaks — the same program I followed last year into this exact race. The week totalled 12.8 hours and 876.7 TSS across ten sessions: 205km on the bike, 39km of running, and 4.6km in the pool. By Sunday night my TrainingPeaks numbers read CTL 88, ATL 123, TSB -31.7. That's the deepest hole I've dug this year, and it's a number I want to keep an eye on — productive fatigue and being buried look identical for about a week, and then they don't.

Bike: 205km, and the 100km barrier finally goes

Tuesday was the indoor structured ride — TrainingPeaks Virtual, "IRONMAN 70.3 Power Slope," 47.6km in 1:30 at 31.6 km/h with 267m of simulated climbing. Same shape as last week's version but stretched longer: 12 minutes Z3 into 8 minutes Z4, then 7 into 4, then 5 into 3, with shrinking recoveries. It came in at 92.4 TSS against a planned 92.6, which is about as on-target as I ever hit a session. Legs felt good, and I've moved onto season three of House of the Dragon, which is doing more for my trainer consistency than any amount of discipline.

Saturday was the one I'd been circling. On the plan as an "Endurance Ride With Sub Threshold Sections" — mostly Z2 with two 20-minute blocks at upper-Z3 to low-Z4 once warmed up — the file has them at 94–97% of FTP. It came in at 105.6km over 3 hours 37 minutes of moving time, averaging 29.2 km/h with 868m of climbing: ninety more metres of climbing than last week's ride and nearly ten more kilometres.

The power file is the part I keep coming back to. Average power 160W against a normalised 181W, for an intensity factor of 0.766 — and an average heart rate of just 130 bpm across three and a half hours, at 89rpm. A 105km ride with two 20-minute sub-threshold blocks in it, and my heart rate spent most of the day genuinely low. That gap between normalised and average power is what a long ride with hard chunks bolted into the middle should look like. It carried 210.9 TSS against a planned 197, and I logged it in TrainingPeaks as "Felt good. Hit the intervals pretty hard probably harder than I should've" — which is the honest explanation for how fried I felt by Sunday. I rated it a 5 out of 10 for effort at the time, which in hindsight was optimistic.

Sunday I went out on the road bike rather than the TT bike, mostly because it deserved some attention: 52.3km at 27.9 km/h with 376m of climbing. The plan wanted 2:15 and I rode 1:52 — but the TSS landed at 98.4 against a planned 98.1, so the intensity covered the missing time. Worth flagging that none of this weekend's speed involved the EZ Gains disc wheel cover, which still isn't mounted. Last year's Tri-Cities bike split was 2:35, and the aero upgrades are still an unspent lever sitting in my apartment.

Sunday morning ride crossing a bridge, guardrail running along the shoulder, the river and distant city towers below a clear blue sky with the sun high and bright

Fifteen minutes into Sunday's ride, heading out over the river.

POV over the drop handlebars of the road bike on Sunday, one hand on the hood, bike computer mounted on the stem, road surface blurred with speed alongside the white shoulder line

Sunday on the road bike instead of the TT bike — drop bars for a change.

Run: 3 x 14 minutes, and caffeine changes the long run

Monday stepped the key run session up a level. Last week was 4 x 9 minutes in mid-Z3; this week the plan called for 3 x 14 minutes with 3-minute Z1–2 recoveries — 42 minutes of sustained Z3 instead of 36, in longer blocks. It landed as 13.1km in 1:09 at 5:15/km overall, at 91.8 TSS against a planned 74.5, so I clearly ran the reps harder than prescribed. The effort itself felt fine. My complaint, verbatim, was about my toes melting in the heat.

Wednesday's long run was the interesting one: 18.6km in 1:45 at 5:40/km, average heart rate 149 with a max of 163, at 120.9 TSS against a planned 105. The lap data tells the real story — I opened at 6:10/km with my heart rate at 131, then settled into 5:32–5:58 kilometres while my heart rate drifted steadily up to 153 by the end. Same pace, rising cost. That's a hot-day aerobic run doing exactly what it should.

The plan asked for 20g of carbs every 30 minutes, which would have been about 70g. I took 120g again — four PF 30 gels — but this time two of them had caffeine, and I felt the difference clearly. That's almost certainly my race-day mix now: the carb load was already proven, and the caffeine is what kept my head in it late. These long runs are a mental problem more than a physical one. I've started deliberately not looking at my watch, because knowing exactly how far I still am from home makes it worse.

Sunday's brick closed the week — 7.5km off the bike in 37 minutes at 4:57/km, back in the Alphaflys. The plan said 20 minutes Z3 then 20 minutes Z2, and I went out fast at the front end as instructed. It came in at 55.7 TSS against a planned 43.3, which by now is a pattern: I keep overcooking the short sessions.

Swim: the weak link, honestly

This is the part of the week I'm least happy with. Monday's planned threshold swim — 2.4km of Z4 and Z5 work — I skipped entirely. Never got in the water.

Thursday was a scheduled rest day and I swam anyway: 2,200m of the "Focus on Your Length" technique set, at roughly 2:00/100m. My note afterwards was that I couldn't believe I'd worked up the courage to get to the pool, which is about right for how I feel about swimming most weeks. Trading a rest day for a technique swim is defensible, but it does mean I took no full day off all week — and the TSB number at the bottom of this post is partly that decision.

Friday's aerobic endurance set was planned at 3.4km and I got out at 2.4km — a full kilometre short. The upside is that I was moving much better: 2,400m in 41:44, about 1:44/100m, meaningfully quicker than Thursday. So the swim fitness is there when I actually show up. Two swims and 4.6km in a week is not enough for a race where I need every minute I can find, and this is the thing to fix before Tri-Cities.

Where this leaves me

The headline is good: I cracked 100km on the bike, the run block got longer and I handled it, and I think I've settled my race-day fueling — 120g of carbs with caffeine in two of the four gels. The bike is where I have the most time to take out of last year's result, and 205km in a week with a strong 105km Saturday is the shape that progress should take.

The honest half is that I skipped one swim, cut another short, trimmed Sunday's ride, ran every quality session harder than prescribed, and finished at TSB -31.7 with no rest day. Some of that is a good week of training. Some of it is the swim quietly becoming the weakest of my three disciplines while I spend my enthusiasm on the bike. Next week I want the pool sessions finished as written — and probably an actual day off.

Wondering where this fitness would place you?

See how a 105km-week block of training would stack up against the historical field at Ironman 70.3 Washington Tri-Cities, or read the full breakdown of what it actually takes to earn a 70.3 Worlds slot.

Missing a race or found an error? Tell us →