Given to Tri

Race Report: Ironman Coeur d’Alene

Well, this is it. After training for it since November, I finally raced Ironman Coeur d’Alene, my A race of the year and my first attempt at a full Ironman. I didn’t have any specific time goals for this race, just finishing, so the goals I had set for myself were simply:

  1. Don’t drown
  2. Don’t crash
  3. Don’t bonk

Unfortunately, things did not go according to plan, and despite my best efforts, I was not able to finish the race. Read on for what may be my last triathlon race report of this year.

Pre-race prep

I arrived in Coeur d’Alene on Thursday afternoon, after a long drive from Jackson Hole, and had to dash to the Ironman Village at the Coeur d’Alene City Park to check in for the race five minutes before they closed. After dropping off my luggage and race gear at my Airbnb, I met my friends Kristin and DJ, and their friend Chris, who were all also racing that weekend, for dinner.

On Friday, we did a practice swim at Sanders Beach on the lake, followed by a quick recon bike ride on the parts of the course on Coeur d’Alene Lake Drive, and then attended the race briefing in the afternoon. Afterwards, I returned to my Airbnb and spent the rest of the afternoon checking and double-checking my gear, and packing my gear bags, like so:

Morning clothes bag

(Actually a repurposed shopping bag from the race expo—they didn’t give morning clothes bags at this race, but they mentioned at the race briefing that the bikes would be racked six to a rack instead of the usual eight, so there would be plenty of room to place a personal bag next to the bike.)

  • Swim cap
  • Swim goggles
  • Bike computer
  • Bike bottles
  • Pelican case for my phone and car keys
  • TriSlide
  • Maurten Caf 100 gel

Bike gear bag

  • Helmet
  • Sunglasses
  • Bike shoes
  • Socks
  • Towel
  • SPF 100 sunscreen
  • A bottle of water to rinse sand from my feet

Run gear bag

  • Race belt with bib
  • Running shoes
  • Socks
  • Towel
  • SPF 100 sunscreen

Bike personal needs bag

  • Two bottles of Maurten, in case I dropped any from my bike
  • Pill container with Excedrin and Imodium
  • Travel-sized tube of sunscreen
  • Bandaids

Run personal needs bag

  • Pill container with Excedrin and Imodium
  • Travel-sized stick of Body Glide
  • Travel-sized tube of sunscreen
  • Bandaids

That evening, the pain I had on my right knee leading up to St. George, which I thought had been resolved for a while, started flaring up again, so I limited my activity on Saturday to a brief swim in the morning, and mobility work in the afternoon, before the bike and gear check-in at transition. Ironman Coeur d’Alene does a single transition, right at Coeur d’Alene City Park, with extensive tree cover over the bike racks preventing things from sitting in the sun all day, which I really liked.

A number of bikes, racked at the Ironman Coeur d'Alene transition area, with run gear bags under each bike. The transition area is in a park, with grass on the ground, and shaded by trees.

Checking in the gear was straightforward: I simply racked my bike, left the run gear bag under it, then handed over the bike gear bag to the volunteers, who arranged them in rows sorted by bib number on the ground next to the changing tents. I walked from the swim exit to my bike several times, noting any relevant landmarks, to memorize where my bike gear bag and bike would be. Before leaving transition, I picked up my timing chip from the tent by the exit, and that was it. Saturday evening saw a brief rainstorm roll through Coeur d’Alene, which made me wish I had thought to double-check my bags to make sure they were cinched tight, but thankfully nothing got wet.

Blue bike gear bags arranged in rows on the ground at the transition area of Ironman Coeur d'Alene.

On race morning, I woke up at 2:40 AM, took a COVID test, had my traditional pre-race breakfast of plain bagels with orange jam and coffee, packed a cooler with some post-race drinks and snacks, and headed out the door at around 4:30 AM. There wasn’t much information about parking at the race briefing, except that that city lots and street parking would be available, so I wanted to make sure I could get a spot reasonably close to transition.

After setting up my nutrition and bike computer on my bike, I handed over my personal needs bags to the volunteers, walked transition a few more times to memorize where I’d need to go, and briefly scoped out the swim start, turnaround, and exit. I put on my wetsuit, and after chatting to Kristin, DJ, and Chris for a little bit, I had a Maurten gel and headed over to the swim staging area at 6:15 AM.

The swim

After my terrible swim at St. George last month, I wrote:

I’m not sure exactly why it went so wrong, but I hated every second of this swim. I’ll need to put some serious work into fixing this before Coeur d’Alene next month; there’s no way I could have done another lap of this.

I’ve done some self-reflection since then, and realized a big part of the problem was in that first sentence—I hated that swim, and never broke out of that mindset. I went there expecting to have a bad time, and it was a self-fulfilling prophecy.

Over time, I’ve noticed that during the swim leg of a race, I go through three distinct phases:

  1. Let’s get this over with 😒
  2. This is miserable 😩
  3. I can do this all day 💪

At St. George, I got stuck in that second phase, so I’ve been trying to figure out how to jump straight to the last phase from the get-go. Before this race, I psyched myself up by telling myself to enjoy the swim, and that I would love every minute of it. I repeated that like a mantra, and whenever any anxious or negative thoughts reared their head, I tried to push them away by remembering how good it feels to get into that flow state when I’m relaxed, everything clicks into place, and I can seemingly swim forever.

I think it worked.

The race started for the pros at 6:00 AM, and for age groupers at 6:30 AM, presumably so the pros would be well into their second lap by the time we started. I had never swum the full Ironman distance of 2.4 miles, but based on the pace of the practice swims we did before the race, I guesstimated I would finish in between 1:25 and 1:35, so I split the difference and seeded myself in the 1:30 group, entering the 66°F (19°C) water at 6:57 AM. People were given a chance to get a short dip in the water right before entering the chute, but I didn’t take advantage of it, and didn’t really need it; it only took me a few strokes to get over the cold and get to work.

The first lap was pretty chill; the people I started with were all evenly paced, so there wasn’t much of a washing machine until the halfway point, when I started getting lapped by faster swimmers. Partway through the lap, I started feeling some soreness in my shoulders and my brain briefly went back to bad “this is miserable” thoughts, so I had to remind myself that it always goes away eventually, and focused on getting to that flow state. It worked, and I started enjoying it. I was so relaxed, my fear of swimming in dark, deep water didn’t even kick in. This time I used my Roka Maverick Pro II sleeveless wetsuit, which also contributed to my comfort in the water; I don’t think I’ll go back to a sleeved wetsuit.

The only mild difficulty I had with the course was sighting the turn buoys—I’m color blind, and had a hard time seeing the red buoys against the green mountains in the background through foggy, tinted goggles, so I had to stop a couple times to get my bearings. Thankfully, the swim course was aligned north-to-south, so sighting was otherwise easy—I didn’t have to sight into the sun.

A screenshot from a Garmin Connect map showing the swim course for Ironman Coeur d'Alene.

After a very short run on the beach to hit the timing mat, I started the second lap. Compared to the first one, it was chaotic, since it now had people going at various paces, and the washing machine effect was almost constant—at one point after the second turn someone hit me right in the kidney, which left me smarting in the water for a few seconds. On the upside, I had less trouble around the turn buoys, I simply followed the people around me.

Me, walking out of Lake Coeur d'Alene at a beach, wearing a Roka sleeveless wetsuit, swim cap, and goggles, wit three other swimmers being me.
I wore my race number on my arm to see if I could get FinisherPix to give me good photos of the swim for once (it didn’t work). Credit: FinisherPix

I finished the swim in 1:27:27, faster than I expected. In fact, both laps were faster than my best Ironman 70.3 swim time, which I’m pleasantly surprised by. I learned two things on this race: I can swim 2.4 miles, and having the right mindset matters a lot.


After walking into T1, I spent a few minutes at the changing tent drying off and applying sunscreen, swapped my swim gear for my bike gear, grabbed my bike, and left. I particularly appreciated the help from the volunteer who basically ripped my wetsuit off of me like he was starting a lawnmower, so I didn’t have to struggle with it. I didn’t rush, and it was a fairly long distance between the swim exit and the mount line, so I spent 16:17 in T1.

The bike

I tried to be conservative with my bike pacing and nutrition since this was my first full Ironman, and as usual I used a combination of Best Bike Split, Garmin Power Guide, and pacing charts to plan things out. I aimed for 66% intensity for my bike leg, which according to Best Bike Split would give me an estimated finish time of 6:15, putting me right on the edge of the “safe zone for unsure runners and newbies” on the chart, an accurate description of my abilities.

A screenshot of a color-coded bike pacing chart table, showing Intensity Factor on the X axis, bike split on the Y axis, and Training Stress Scores in the cells.
TSS table for Ironman pacing Credit: Rick Ashburn

For nutrition, I carried five 24-ounce bottles on my bike (one between the aerobars, two in the frame, and two behind my saddle) with seven packets of Maurten Drink Mix 320, for a total of 560 grams of carbs, which spread over 6:15 came down to about 90 grams of carbs per hour. It’s a little more than I’m used to—my longest bike ride in training was five hours long and I fueled it with 80 grams per hour, but I’ve had nothing but good experiences with Maurten so far, so I hoped I’d be able to handle the extra carbs. I’m usually bad at timing my nutrition, and I knew I needed to fuel correctly on the bike so I could get through the run, so I set up a drink alarm on my Garmin every 7.5 minutes, figuring my gut would have an easier time clearing smaller, more frequent sips than dealing with bigger, less frequent gulps.

My bike was my usual Specialized Aethos road bike, fitted this time with aerobars, and an XLAB Super Wing behind my saddle with two Gorilla XT cages. I was worried about ejecting my bottles, but those cages did not let them budge a single millimeter, so I didn’t need the extras I had placed in my personal needs bag. The downside is that it’s a struggle to get bottles in and out of them, so I simply discarded empty bottles at aid stations as I went, moving the full ones to the front as needed.

The bike course consisted of two 90 km (56 mi) laps, each of them starting with an about 30 km (18 mi) out-and-back through Coeur d’Alene Lake Drive, with the bike personal needs station right at the turnaround point, followed by a long, roughly 60 km (37 mi) out-and-back section on US-95, with a short section through downtown Coeur d’Alene in between. It’s a very hilly course, with 1,267 m (4,156 ft) of total ascent, and some good climbs on US-95, which I really enjoyed. In general, it’s a good bike course, with decent pavement, great energy from Coeur d’Alene residents and spectators downtown, gorgeous scenery once you get out of the town, and plenty of road closures, so you’re never sharing the road dangerously with car traffic. It felt like a very safe course, but after that accident at Ironman Hamburg a few weeks ago, I tried to keep an eye out for the pros and the media motorcycles following them, particularly on the narrower parts of the course towards the end of US-95. Parts of the last descent into Coeur d’Alene on US-95 were designated no-passing zones because they’re fairly steep and on the shoulder, but they’re short, and didn’t seem to cause any dangerous bottlenecks.

A screenshot of a Garmin Connect map showing the bike course for Ironman Coeur d'Alene.
See this route on Garmin Connect or Strava.

After leaving T1, I rode easy through the streets of Coeur d’Alene before getting on the aerobars for the first out-and-back through Coeur d’Alene Lake Drive. Almost as soon as I got in aero, though, I felt some discomfort in my abdomen, but I chalked it up to maybe ingesting some air during the swim, and hoped it would resolve on its own. In any case, there was nothing I could do about it, so I powered through.

The first lap was long, and uneventful. I did a pretty good job following the Power Guide plan on my bike computer, and staying in aero most of the time, except on the bigger climbs, where I mostly rode on the hoods, and on the descents, for which I switched to a normal aero tuck. I’m no bike fitter, but I’m pretty happy with how I’ve been able to set up my fit—this was the longest bike ride I’ve ever done, but also the most comfortable I’ve been on one, and had no problem staying in aero for extended periods of time.

Me, riding a green Specialized Aethos road bike in aero position. I'm wearing a black helmet, gold sunglasses, and black trisuit.
I think this is the lowest aero position I can get on this bike, but at least it’s comfortable. Credit: FinisherPix

The temperature was pleasant at the beginning of the bike leg, at 72°F (22°C), but towards the end of the first lap it had warmed up to about 84°F (29°C) and the sun was relentless, so on the second lap I stopped at the personal needs station to reapply sunscreen, use the toilet, and see if a short break helped with my abdominal pain (it didn’t). I’ve never used personal needs before, so I wasn’t sure how it worked: at this race it’s right at a turnaround, so as you approach, you signal to a volunteer that you’re going to stop, they yell out your bib number, and by the time you’ve turned around, someone will be standing there with your bag. Then, you stop and do whatever you need to do, and they have tents, chairs, and water if you need to take a longer break. The volunteers there were awesome, and behaved almost like a pit crew, handing me water, and helping me deal with my helmet and sunglasses while I put on sunscreen.

As I was riding through downtown Coeur d’Alene, I noted with gratitude that the afternoon clouds were giving me a welcome respite from the blazing sun. By the time I got back out on US-95, though, the clouds had turned into a brewing storm; around the 140 km (87 mi) mark, the skies opened up, all hell broke loose, and I rode through the worst downpour I’ve ever ridden through, complete with hail, right as I was beginning a descent. It was so intense, I couldn’t help but laugh maniacally as I blasted downhill at full speed while being hammered by heavy rain and hail. On the next climb, I could see sheets of water running down the road; I struggled to pedal through what felt like an inch of water. As I was passing a group of riders, one of them said “man, this storm is fucking crazy!” I jokingly asked if this was better or worse than two years ago, and someone behind me immediately yelled “worse!” (This storm was pretty bad, but for the record, I doubt it was worse than that.)

An animated gif of a weather radar, showing the hailstorm developing and dissipating in a matter of minutes over US-95 outside Coeur d'Alene. An arrow points to the place in the map where I was riding at the moment the storm broke out.
This weather radar animation shows how quickly the storm developed and dissipated.

The storm only lasted a few minutes, but it left me soaked to the bone, and freezing. My trisuit dried quickly, but I wore my normal Giro Regime bike shoes, which don’t have the drainage that triathlon-specific shoes have, and they were completely full of water long after it had stopped raining. To make matters worse, for some reason riding through that storm made my knee pain flare up again, although it didn’t last very long.

A screenshot of a temperature chart from Garmin Connect, showing a big dip in the temperature at the time of the hailstorm.
You can tell in this temperature chart exactly when the hailstorm happened.

The rest of the bike leg went well, though, despite my lingering abdominal pain. Shortly before the turnaround at the end of US-95, I heard my name and saw Kristin waving at me on her way back, which gave me a much-needed morale boost. I finished strong, with a final time of 6:12:24, despite my long stop at personal needs. My final intensity was 62%, so I definitely left a little on the table, but considering that I didn’t feel great the entire ride, and had to ride through a fucking hailstorm, I’m pretty happy with my time. On a better day, I think I could have managed a sub-6 result, so I’ll make that my goal for next time.


While I don’t think my bike nutrition was the cause of my GI issues, it certainly didn’t help. I spent a long time here, hoping that giving my gut a chance to clear all the fluid I ingested on the bike would help a little bit. By this point I had been riding for the past hour and a half with my feet soaking wet; my toes were blue and looked like prunes, so I also wanted to make sure they were completely dry before I started on the run. Fortunately, the storm didn’t hit Coeur d’Alene proper, so all my running gear in transition was still dry, and I was able to change into a fresh pair of socks. In total, I spent 19:42 in T2.

If I could have done one thing differently on this whole race, it’s that I wish I had changed out of my one-piece trisuit into regular running clothes in T2, for reasons that will be clear in a minute.

The run

This was a fucking disaster.

I left T2, started at an easy endurance pace, and although my legs felt good, my knee pain started rearing its head once again. However, that was the least of my problems—once I started running, I could literally hear all the fluid in my gut sloshing around, despite having just used the porta-potty in T2.

I tried to power through, and was prepared to use every single porta-potty on the course if that’s what it took to finish. At the first aid station, however, I ate a gel and felt intensely nauseous. At the next one, I ate some pretzels, hoping that maybe eating some solid food instead would help settle things down. It did, but only briefly.

Partway through the first lap, I caught up with Kristin, who was fighting a battle of her own, and walked with her for a while. I stopped at a pit toilet just before the turnaround, which gave me a brief respite from my abdominal pain, but at the next aid station I tried to eat some pretzels again and couldn’t even swallow them, I had to spit them back out; I tried drinking some water, and it took everything I had to keep myself from throwing up. The same thing happened at the next one, and that’s when I realized my race was pretty much over—I could have dealt with the diarrhea, but if I couldn’t get any calories or water in, then bonking and dehydration were inevitable. However, if I was going to quit, I needed to be absolutely sure I had no other choice, or I would regret it afterwards, so I pressed on.

I caught up with Kristin again, and I told her I would try to finish the lap and see where my feet took me. They took me into the second lap, but it was a short-lived victory, and I slowed to a walk soon after; I didn’t have enough energy left to run, my knee hurt badly, and my nausea and stomach cramps were constant now. I decided to try to make it to the next aid station, wait for Kristin, and then see if I could keep walking with her. I barely made it there, and felt weak and lightheaded as I shuffled through the aid station. I asked a volunteer if I could use his chair for a moment, and I soon as I sat down, I felt like my body just… shut down. My vision turned into TV static, like when you stand up too fast, and my hands were buzzing; it was really weird and scary. A volunteer brought me a cup of Gatorade and I could barely swallow a sip, my throat felt raw and painful. I was worried these were early signs of rhabdo, so when a race official came by and asked me if I needed any help, I told him I was done racing. He took my timing chip, radioed me in as DNF, and drove me to the medical tent. After resting there for a while, I started to feel better, and was able to have some water and chicken broth, so after monitoring my vitals for a while longer, they let me go. I had made it 15.85 km (9.85 mi) into the run.

Normally I would try to share some details about the course, so I’ll be brief: the course was three laps through residential streets in downtown Coeur d’Alene, followed by an out-and-back on Coeur d’Alene Lake Drive. My memory of the course is hazy for obvious reasons, but I remember the neighbors along the residential streets brought great energy to the race, and that section of the course had a block party vibe the entire way. Many houses had turned on hoses and sprinklers along the way, which were welcome, even though it wasn’t unbearably hot and the course had a decent amount of shade. The segment on Coeur d’Alene Lake Drive was slightly uphill and also had a good amount of shade, but the thing I remember the most about it is that it’s essentially lined with pit toilets. Wonderful, beautiful pit toilets.

A screenshot of a Garmin Connect map of the partial route of the run leg of Ironman Coeur d'Alene.
I made it about a lap and change through the run leg.

Something worth mentioning is that when you DNF, the Ironman app doesn’t notify anyone tracking you, it simply stops tracking, and reports something like “location not available.” If you DNF, I suggest letting your loved ones know directly as soon as possible, because the app won’t do it, and it’s understandably worrisome to see the tracking just end. (A huge thank you to the volunteer at the medical tent who let me use her phone so I could call Kate to let her know what happened and that I was okay—all the volunteers at this race were consistently amazing.)

Needless to say, I’m disappointed that I couldn’t finish this race after all the effort I put training for it, and worse, that I don’t understand what went wrong, or what I could have done to prevent it or fix it, so I don’t know what lessons to gather from this. Was it something I ate before the race? Did I catch a stomach bug somehow? Did I accidentally swallow some contaminated water while swimming? Was it the extra carbs on the bike? Did I drink too much water, or not enough? Did I need more sodium, or less? Was it just an unlucky bad day? All of the above? I don’t have the answers yet to any of this, so I need to do some post-race analysis and introspection before I try again—and I will try again.

On the other hand, I’m trying to not be too hard on myself, and I don’t want to dwell on this. This was a hard race, I gave it my best shot, I feel like I quit when I absolutely had no other choice, and some things did go well: I did better than I expected on both the swim and the bike, so I feel pretty good about that.

For know, though, I’m just going to regroup and start planning my next race, whatever that may be.

You May Also Like