Part 1: Training, Data, and Debugging: My training logs for my first ironman race

6 minute read

Published:

Sport Data Visualization

Over the past month, many of you have reached out to me about my Ironman triathlon experience. So, naturally, I decided to humble-brag and turn it into a blog series. In this series, I’ll be documenting the ups, the downs, and everything in between—covering my training (yes, I survived), my vegan nutrition, and a few coding hacks that helped me train smarter (because of course, there’s code involved).

In 2014, I watched a friend’s friend (you know the type) complete an Ironman, and it sparked a wild idea: What if I could do that too? There was just one minor hitch—I could barely swim a lap without gasping for air, didn’t own a bike (unless that rusty €30 bike counts), and could only manage a 2-3 km run, with plenty of snack breaks. But hey, why let little details like that stop me?

Back then, my goal was simple: survive the run part of a triathlon. So, I signed up for a half marathon. Naturally, the next logical step was a full marathon a year later. And to top it off, I started taking swim lessons at my university, because apparently, I love to suffer. Shoutout to my friend Aadu Huli, who unofficially took on the role of my motivator—dragging me to the pool until I upgraded my swim style from "drowning" to a somewhat decent breaststroke.

By 2017, I bought my first road bike and signed up for a sprint triathlon. That’s when I faced my first open water swim—a slightly terrifying experience where I was proud just to come out of the water still breathing. Fast forward to 2018, and I’d tackled three Olympic-distance triathlons, still holding onto my trusty breaststroke, like an old friend.

Then came the pandemic—because nothing says “pause your ambitions” like a global lockdown. Fast forward to 2023, and I found myself in a new city with fresh opportunities—and a sweet perk from work: freestyle swim coaching. Plus, joining my local triathlon club’s summer camp kicked my training into high gear. The cherry on top? A brand-new bike, which made me feel like a pro (or at least look the part). With everything in place, I decided it was time to tackle the big one—the Ironman.

Now, what kind of blog would this be without some nerdy data? I’ll be sharing my training stats (thanks to the intervals.icu API) and some slick JavaScript visualizations to track my swimming, biking, and running progress. You’ll get insights into some race prep—and maybe a few graphs showing when I hit the “why am I doing this” phase. But if I can do it, so can you—with the right support, a solid plan, and a high tolerance for discomfort.

The Most Common Question I Get: "How Often Did You Train?"

This really depends on three things:

  1. My experience level (beginner with big dreams).
  2. My competitive spirit (firmly at the back of the pack).
  3. My training plan (Phil's Intermediate Full Distance Triathlon + Free Email Access to Coach: 36 Weeks because, why not?).

Most plans suggest 2-3 sessions per sport each week, plus some weight training. As you can see from my activity stats, biking took the spotlight—because running the full marathon distance in training is brutal. My longest run capped at 44 km, while my longest bike ride stretched to 155 km. Biking clearly became my favorite because, well, let's just say I wasn’t exactly born with wheels.

Fun fact: I ran a full marathon while on vacation in São Paulo, making my longest run a 44 km beast (I forgive Garmin for the 1.804 km error). Because who doesn’t relax by running a marathon, right?

The hardest part? Cue the dramatic music. The month leading up to the race. July 2024 was my most intense month, with over 70 hours of training! My craziest week? 21 hours of pure exercise. My most intense day? A 7.5-hour simulation: 97 miles of biking, a 2.4 km swim, and a 26 km run—all in one day. Sleep? Who needs it?

Training Activity Stats

  • 🏊 Longest Swim: 4.05 km
  • 🚴 Longest Bike: 155.36 km
  • 🏃 Longest Run: 44.00 km

Training Activity Counts

  • 🏊 Number of Swims: 54
  • 🚴 Number of Bike: 110
  • 🏃 Number of Runs: 89
  • 🏋️ Number of Gym Sessions: 64

Training Hour stats

  • 📅 Most intense Month (July 2024): 70:33:00 hh:mm:ss
  • 📅 Most intense Week (July 1-7, 2024): 20:59:11 hh:mm:ss
  • 📅 Most intense day (July 28, 2024): 07:34:32 hh:mm:ss

How Many Kilometers Did I Actually Cover During Training?

Let’s get into the nitty-gritty: the actual distances during training. As the graph shows, I tried (emphasis on tried) to keep up with around 10 km of swimming, 50 km of running, and 300 km of biking per month. But... vacations happened. The dip in training during November and December aligns with my trip to India for a friend’s wedding, where I did absolutely nothing. You can see the steep decline in all distances during that time. However, I redeemed myself during my second vacation in April, as shown by a similar drop in training but with a redeeming event: I ran a marathon in São Paulo and even hiked to Machu Picchu. Clearly, vacations aren’t always an excuse to slack off—they’re sometimes just another opportunity to push limits.

Training Time Breakdown: Biking Dominates, Obviously

The donut chart highlights how much time I dedicated to each sport starting October 16, 2023 (the day I officially kicked off the training plan). As expected, biking takes up the largest chunk—no surprises there. However, running wasn’t far behind, thanks to the extra weekly run I did with a good friend outside of my plan. You can also spot the gym sessions, which made up a smaller slice of the pie but were essential for foam rolling, stretching, and sometimes sneaking in a yoga pose. Swimming had its moments too, especially with that weekly hour of coached swimming from my office perk. All in all, it's clear my schedule stayed pretty packed!

In Conclusion...

This post was equal parts humblebrag and learning journey. I got to flex my JavaScript skills and hack together some Python scripts to make sense of my training data, all while documenting my Ironman training adventure. Figuring out how to use the Intervals.icu API and tweaking the data to fit my needs was a fun (and sometimes frustrating) challenge. For those of you who stuck around this long—thank you! In a future post, I’ll dive into the costs of doing an Ironman, the lessons I learned from doing it on a plant-based diet, and plenty more. Stay tuned!