The anatomy of an Ironman day: real swim, bike and run splits by finish time
Median swim, bike, run and transition splits for every finish-time bracket, from 1.9 million Ironman and 70.3 results in the Labthlete dataset. What a 12-hour Ironman or a 5:30 half actually looks like, leg by leg.
The median Ironman in our 921,783 finish dataset takes 12:32:31: a 1:16 swim, a 6:12 bike and a 4:43 marathon, with the bike taking exactly half the day. The median 70.3 takes 5:48:05: 38 minutes of swimming, 2:55 of riding and a 2:03 half marathon.
Averages hide the story: a “12 hour Ironman” is not a scaled up “10 hour Ironman”. As the day gets longer the run share grows, transitions balloon, and the marathon is where brackets are won and lost. Below are the median splits for every finish bracket, from 1.9 million real finishes. Find your target time and read your day, leg by leg.
Ironman: what each finish time is made of
| Finish | Swim | T1 | Bike | T2 | Run | Share of field |
|---|---|---|---|---|---|---|
| Sub 10 | 1:00:26 | 5:04 | 4:59:16 | 3:50 | 3:23:07 | 7.2% |
| 10 to 11 | 1:07:10 | 6:16 | 5:24:49 | 4:53 | 3:50:35 | 13.7% |
| 11 to 12 | 1:12:15 | 7:43 | 5:48:52 | 6:09 | 4:16:40 | 19.0% |
| 12 to 13 | 1:16:40 | 9:12 | 6:13:20 | 7:31 | 4:43:31 | 19.2% |
| 13 to 14 | 1:20:50 | 10:34 | 6:37:57 | 8:46 | 5:10:59 | 16.3% |
| 14 to 15 | 1:24:52 | 11:43 | 7:02:21 | 9:51 | 5:39:05 | 12.1% |
| 15 to 17 | 1:30:59 | 13:06 | 7:35:47 | 10:46 | 6:16:48 | 12.5% |
Two patterns worth staring at. First, the bike is half the day everywhere: the median bike share is 50.0% whether you finish in 10 or 16 hours. Second, transitions scale with finish time: sub 10 athletes spend about 9 minutes in T1 plus T2; the 15 hour group spends nearly 24. Free minutes live there.
70.3: the same anatomy, compressed
| Finish | Swim | T1 | Bike | T2 | Run | Share of field |
|---|---|---|---|---|---|---|
| Sub 4:30 | 27:43 | 2:38 | 2:19:04 | 1:50 | 1:25:12 | 3.4% |
| 4:30 to 5 | 32:08 | 3:29 | 2:31:33 | 2:22 | 1:37:00 | 11.8% |
| 5 to 5:30 | 35:27 | 4:14 | 2:43:15 | 2:55 | 1:48:54 | 20.6% |
| 5:30 to 6 | 38:22 | 4:56 | 2:54:57 | 3:34 | 2:01:42 | 23.4% |
| 6 to 6:30 | 40:59 | 5:30 | 3:06:27 | 4:11 | 2:15:40 | 18.1% |
| 6:30 to 7 | 43:32 | 5:56 | 3:17:47 | 4:48 | 2:30:03 | 11.7% |
| 7 to 8 | 47:01 | 6:24 | 3:33:24 | 5:26 | 2:48:43 | 9.4% |
The 70.3 field is front loaded around 5:30 to 6:00 (23.4% of all finishers, the biggest single bracket) and the leg shares are almost identical to the full distance: 11% swim, 51% bike, 35% run at the median.
Reading your own target
These are medians of people who hiteach bracket, not prescriptions: you can reach 12 hours with a faster bike and a slower run, or the reverse. Which mix is right depends on your engine, not the field’s. The Labthlete predictor simulates your race from your thresholds, durability and the actual course, and its bike-run trade-off chart shows what riding harder does to your marathon, not the average one.
Frequently asked questions
What is the average Ironman time?
The median across 921,783 Ironman finishes in the Labthlete dataset is 12:32:31, built from a 1:16 swim, a 6:12 bike and a 4:43 run. The most common finish bracket is 11 to 13 hours, holding 38% of the field.
What is the average 70.3 (Half Ironman) time?
The median across 993,459 finishes is 5:48:05: roughly a 38 minute swim, a 2:55 bike and a 2:03 half marathon. Nearly a quarter of the field finishes between 5:30 and 6:00.
What bike split do I need for a sub 12 Ironman?
Finishers between 11 and 12 hours ride a median 5:48 (about 30.9 km/h) and run a 4:16 marathon off it. The full table above gives the matching swim and transition times.
How much time do transitions take?
More than most plans assume: a median 12 to 13 hour Ironman spends almost 17 minutes in T1 plus T2 combined, and even sub 10 athletes spend about 9 minutes. In a 70.3 the combined median ranges from 4:28 at the front to almost 12 minutes at the back.
The free Labthlete predictor simulates your race from your own physiology: watts, thresholds, durability and the course. No account needed.
Try the predictor