Birthday Weekend, Best Race Yet
On Friday I turned 41. On Saturday, I raced Ironman 70.3 Wisconsin, my sixth 70.3 distance and fourth half Ironman. It ended up being my best one yet.
Going into the race, I had trained well, felt confident, and thought anything in the 5:18 to 5:20 range would be a great day. I crossed the finish line in 5:10, an all-time PR by 13 minutes. To top it off, my result qualified me for the 2026 Ironman 70.3 World Championships in Nice, France thanks to more than a few unclaimed spots that rolled-down (I explain the new qualification system here). I am still floored.
Pre-Race Routine
I am big on routine before a race. I had been pulling my wake-up time earlier each day that week so that a 4:00 a.m. alarm did not feel like a shock. On race day, I had my standard big breakfast: Elizabeth oatmeal with berries, an everything bagel with peanut butter, coffee, a protein shake, AG1, and a Maurten 160 drink to sip on. The goal is to start the day fully fueled with food I’m accustomed to and to eat 3 hours before the 7:00 a.m. start.
I arrived at the race at around 5:30 a.m. just as transition opens. I find I need 20 minutes to set up, time to use the porta John, and enjoy using the remaining time to talk with other athletes. Mentally, I gave myself 5 quiet minutes before the swim start to visualize my swim and calm my nerves. The mantra for the swim was do not go out too hard. Spoiler: I still went out too hard.
The Swim – Crowded and Chaotic
Lake Monona is not where you want to try your first mass-start, triathlon. This was easily the most crowded open water swim I have ever done. Feet in my face, bubbles everywhere, constant contact. Not sure if it was just a crowded race, or if swimming a tight line to the buoys just put me in a preferred placement and is naturally crowed.
According to my Garmin Instinct 2 smartwatch, I held 1:34 per 100y for the first 500 yards, 1:37 per 100y for the next, and then faded closer to 1:50 per 100y the rest of the way. I came out in 37 minutes. Decent, but not what I know I am capable of given I have been doing 1:37 per 100y in the pool for 2,000y swims regularly which is closer to a 34 minute swim. I haven’t figured out why I’m slower in the open water than the pool. In this case, I think I just went out way too fast and need to work on pacing. Still, it was progress. I breathed comfortably on both sides for the first time in a race.
T1 – Comedy of Errors
Madison has a unique transition. You climb a winding parking-garage helix straight out of the water, then run the length of a two-football-field garage to your bike. At the top, I promptly vomited. Twice.
Then, in my haste, I racked my bike and sped off…with my helmet on backwards which I realized by mile 1. There are pictures. They are priceless. And I’m still laughing about this.
I managed a T1 of 5:20, higher than my 4:00 target, but not bad considering. If nothing else, T1 showed I could still laugh at myself mid-race. I blame the vomiting on the uphill transition (which should be illegal in my humble opinion).
The Bike – Even and Steady
The bike course is classic Wisconsin: rolling hills, cornfields, and cow pastures (and cow smells). The pavement is iffy. Not great quality and I am surprised my carbon Vision TC 55 Disc wheels survived. Madison also has a long tradition of hosting the half on Saturday and the full on Sunday, so the crowd support and volunteers are incredible, and the course is really beautiful with a picturesque finish in front of the state capitol building.
I aimed to ride an even 220 watts, pushing up to 270 on climbs and easing to about 180 on downhills. After riding the full course 3 weeks before, this is what I felt I could handle and still run well. That plan worked. I averaged 227 watts, finished in 2:38, and averaged 20.3 mph, even with a dropped chain and lost bottle at an aid station. For the mathematicians out there wondering, the bike course is about 2 miles short for some odd reason which shaves about 6 minutes off the time for my pace.
A highlight? Peeing on the bike. Gross, I know. But TJ Tollakson, a pro triathlete, once said, “If you don’t pee on the bike, you are not hydrating enough.” I’m now passing that advice on to you. My best races always prove that true.
T2 – Quick Reset
Not much drama here, except that my high bib number stuck me with a long run through transition in bike shoes. A quick pit stop, then onto the run in 3:10. Feel like I can improve here.
Note: It’s worth getting to race registration packet pick up early for 70.3 Wisconsin. They assign the lower bib numbers first which translate to a preferred position in transition which minimizes the distance you run with your bike.
The Run – Pain Is Temporary, Pride Is Forever
The run was a pure sufferfest per usual, but also was where my training really paid off. Three weeks earlier I had run the full course, so I knew every little hill and turn by heart which gave me confidence in my half marathon pacing strategy. Over the past two months I had also been diligent about long runs (9 to 12 miles), tempo sessions, and practicing fueling, so I had a really good idea that I could run low 8s if not high 7s if it wasn’t too hot that day.
Lucky me the average temp on race day was in the 50s. The result: my best half Ironman run yet. I averaged 8:02 per mile and ran a 1:47 half marathon on extremely tired legs.
This was also my first race in carbon shoes (New Balance SuperFuel Pacer 2s). Easily one of the best triathlon shoes I’ve tried for longer distance racing and they made a difference. I felt like I was bouncing around like a gazelle.
One thing about 70.3 racing though is every mile hurts on the run. My back was tight, my feet blistered, my knees sore, and I felt like I was on the verge of a cramp throughout. The whole run was a mental battle not to give in. To manage, I focused on breathing and running the mile at hand. My mantra became: “Pain is temporary, pride is forever.”
Community & Gratitude
This race was extra special because I was not out there alone. My brother-in-law and his fiancée were both racing their first Ironman 70.3s and crushed it (also both qualified for Worlds). My former business school professor was racing his first 70.3 too, which made for great pre- and post-race stories.
Also helping power my run was seeing my wife and kids on the course. My wife does her own version of an Ironman every race weekend, wrangling two kids and cheering her heart out. I could not do this without her. My son held a sign that said “Ya Dada,” something he yells at home when we play, which added to my fuel.
As mentioned, the crowd in Maddison is amazing and added to the energy all the way to the finish.
Reflections
Turning 41, PRing by 13 minutes, and qualifying for Worlds in the same weekend feels surreal. September weather in Madison is always a coin flip. Two weeks earlier it was hot and sticky in the 80s with 80 percent humidity. Race day was in the 50s with almost no wind, which made for perfect race conditions. I do not race well in the heat (yet).
I know I will not contend at the top in Nice. I will probably be somewhere in the back half of the field. But this is a once-in-a-lifetime chance, and I am grabbing it. Long term, my next goal is to break 5 hours, which means improving my run training (maybe a marathon block), getting my swim to 33 minutes, and eventually upgrading to a TT bike.
Your race is only as good as your training, and this cycle proved that. With discipline, support, and a little humor (helmet backwards), amazing things can happen.
Race Data & Nutrition
Here is a quick summary of my race day stats nutrition (for the tri nerds). If you’re curious about building a complete Ironman 70.3 nutrition strategy, I put together a detailed guide.
Stats:
- Swim: 36:46 (1:44/100y)
- T1: 5:20
- Bike: 2:38 (227 avg watts, 20.3 mph)
- T2: 3:10
- Run: 1:47 (8:02/mile)
- Overall: 5:10:58, PR, World Champs Qualifier
Fueling:
- Breakfast: Elizabeth oatmeal + berries, everything bagel + peanut butter, Muscle Milk protein shake, AG1, coffee, and Maurten 160 drink
- Pre-swim: 2 GUs (25g carbs each)
- Bike: ~90g carbs/hour (combo of Maurten and GUs), fluids ~24oz/hour with mix of Nuun and 800mg sodium/hour; cut off intake 25 min before T2
- Run: 1 GU at mile 5–7, sip of on course Mortal Hydration every aid station roughly every mile, splash water on face and body to cool down
Leave a comment