Toughest Ironman 70.3 Courses
Ranked by median finish time across all historical finishers. Slower medians indicate more demanding terrain, heat, or both — not just slower fields.
Note: Official DNS/DNF rate data is not yet available in our dataset. Median finish time and field spread are used as robust difficulty proxies until dropout-rate data can be ingested.
| # | Race | Region | Median Time | Field Spread | Top 5% Target | Finishers | Estimate |
|---|---|---|---|---|---|---|---|
| 1 | Ironman 70.3 Goa (2025) | Other | 7:11:09 | 1h 21m | 5:28:42 | 686 | |
| 2 | Ironman 70.3 San Salvador (2026) | Other | 6:56:18 | 1h 30m | 5:10:06 | 642 | |
| 3 | Ironman 70.3 Subic Bay (2025) | Other | 6:48:56 | 1h 37m | 5:15:51 | 299 | |
| 4 | Ironman 70.3 Kenting (2025) | Other | 6:45:26 | 1h 23m | 5:21:19 | 794 | |
| 5 | Ironman 70.3 Rockford (2025) | Other | 6:41:39 | 1h 30m | 5:04:07 | 1,646 | |
| 6 | Ironman 70.3 Hawaii (2026) | North America | 6:40:26 | 1h 23m | 5:01:59 | 1,113 | |
| 7 | Ironman 70.3 Desaru Coast (2025) | Other | 6:38:49 | 1h 31m | 5:06:27 | 390 | |
| 8 | Ironman 70.3 Waco (2025) | North America | 6:38:47 | 1h 21m | 5:01:07 | 1,715 | |
| 9 | Ironman 70.3 Omaha (2026) | North America | 6:37:03 | 1h 24m | 5:08:39 | 1,285 | |
| 10 | Ironman 70.3 Mossel Bay (2025) | Other | 6:35:36 | 1h 09m | 5:10:48 | 1,735 | |
| 11 | Ironman 70.3 Langkawi (2025) | Other | 6:34:34 | 1h 38m | 4:31:05 | 497 | |
| 12 | Ironman 70.3 Nice France (2025) | Europe | 6:33:35 | 1h 21m | 4:57:54 | 1,967 | |
| 13 | Ironman 70.3 Vietnam (2026) | Asia | 6:31:07 | 1h 33m | 4:58:34 | 1,225 | |
| 14 | Ironman 70.3 Acapulco (2025) | Latin America | 6:28:56 | 1h 16m | 5:04:37 | 346 | |
| 15 | Ironman 70.3 Lapu-Lapu (2025) | Other | 6:28:50 | 1h 28m | 4:50:14 | 658 | |
| 16 | Ironman 70.3 Phu Quoc (2025) | Other | 6:26:36 | 1h 24m | 4:56:26 | 723 | |
| 17 | Ironman 70.3 Puerto Princesa (2025) | Other | 6:26:01 | 1h 19m | 5:03:16 | 267 | |
| 18 | Ironman 70.3 Musselman (2025) | Other | 6:25:42 | 1h 21m | 4:58:13 | 1,334 | |
| 19 | Ironman 70.3 Muncie (2025) | North America | 6:24:46 | 1h 30m | 4:54:35 | 700 | |
| 20 | Ironman 70.3 Chattanooga (2026) | North America | 6:21:54 | 1h 27m | 4:45:16 | 2,495 | |
| 21 | Ironman 70.3 Muskoka (2025) | North America | 6:21:48 | 1h 13m | 5:02:04 | 1,273 | |
| 22 | Ironman 70.3 Puerto Rico (2026) | North America | 6:20:19 | 1h 27m | 4:53:43 | 799 | |
| 23 | Ironman 70.3 St George (2025) | Other | 6:19:51 | 1h 30m | 4:34:54 | 2,049 | |
| 24 | Ironman 70.3 Pennsylvania Happy Valley (2025) | North America | 6:17:44 | 1h 19m | 4:48:51 | 805 | |
| 25 | Ironman 70.3 Coeur d'Alene (2025) | North America | 6:17:25 | 1h 19m | 4:51:05 | 976 | |
| 26 | Ironman 70.3 Victoria (2026) | North America | 6:16:38 | 1h 15m | 4:54:08 | 1,299 | |
| 27 | Ironman 70.3 Durban (2026) | Africa | 6:15:18 | 1h 14m | 4:53:43 | 1,441 | |
| 28 | Ironman 70.3 Louisville (2025) | North America | 6:15:00 | 1h 28m | 4:32:37 | 958 | |
| 29 | Ironman 70.3 Goseong Korea (2025) | Asia | 6:14:28 | 1h 04m | 4:59:31 | 1,124 | |
| 30 | Ironman 70.3 Boise (2025) | North America | 6:13:59 | 1h 26m | 4:22:15 | 1,422 | |
| 31 | Ironman 70.3 Boulder (2025) | North America | 6:13:00 | 1h 29m | 4:30:17 | 1,613 | |
| 32 | Ironman 70.3 Augusta (2025) | North America | 6:12:31 | 1h 32m | 4:36:49 | 2,142 | |
| 33 | Ironman 70.3 Riviera Nayarit (2025) | Other | 6:09:55 | 1h 09m | 4:58:46 | 987 | |
| 34 | Ironman 70.3 Swansea (2025) | Other | 6:09:40 | 1h 18m | 4:46:45 | 1,452 | |
| 35 | Ironman 70.3 Cozumel (2025) | Latin America | 6:08:45 | 1h 10m | 4:49:05 | 1,568 | |
| 36 | Ironman 70.3 Wisconsin (2025) | North America | 6:08:40 | 1h 14m | 4:56:01 | 1,506 | |
| 37 | Ironman 70.3 New Zealand (2026) | Oceania | 6:07:20 | 1h 17m | 4:47:29 | 1,046 | |
| 38 | Ironman 70.3 Texas (2026) | North America | 6:07:20 | 1h 20m | 4:41:32 | 1,336 | |
| 39 | Ironman 70.3 New York (2025) | North America | 6:07:08 | 1h 14m | 4:50:30 | 2,165 | |
| 40 | Ironman 70.3 Ohio (2025) | North America | 6:06:20 | 1h 15m | 4:40:51 | 994 | |
| 41 | Ironman 70.3 Oceanside (2026) | North America | 6:06:16 | 1h 23m | 4:33:14 | 2,655 | |
| 42 | Ironman 70.3 Campeche (2025) | Other | 6:03:10 | 1h 14m | 4:48:55 | 344 | |
| 43 | Ironman 70.3 Florida (2025) | North America | 6:02:46 | 1h 15m | 4:38:25 | 880 | |
| 44 | Ironman 70.3 Mallorca (2026) | Europe | 6:02:20 | 1h 07m | 4:52:37 | 2,715 | |
| 45 | Ironman 70.3 Cap Cana (2026) | Other | 6:02:00 | 1h 08m | 4:49:40 | 750 | |
| 46 | Ironman 70.3 Indian Wells La Quinta (2025) | Asia | 6:00:40 | 1h 17m | 4:32:11 | 2,201 | |
| 47 | Ironman 70.3 Des Moines (2025) | North America | 6:00:24 | 1h 09m | 4:46:21 | 1,004 | |
| 48 | Ironman 70.3 Mont Tremblant (2025) | Other | 6:00:16 | 1h 12m | 4:51:23 | 2,526 | |
| 49 | Ironman 70.3 Cartagena (2025) | Latin America | 6:00:14 | 1h 06m | 4:54:51 | 1,764 | |
| 50 | Ironman 70.3 Maine (2025) | North America | 6:00:03 | 1h 13m | 4:41:25 | 1,818 | |
| 51 | Ironman 70.3 Ecuador (2025) | Latin America | 5:59:16 | 1h 05m | 4:44:26 | 686 | |
| 52 | Ironman 70.3 Washington Tri-Cities (2025) | North America | 5:58:54 | 1h 17m | 4:43:48 | 1,634 | |
| 53 | Ironman 70.3 North Carolina (2025) | North America | 5:58:39 | 1h 15m | 4:46:27 | 2,549 | |
| 54 | Ironman 70.3 Santa Cruz (2025) | North America | 5:58:17 | 1h 16m | 4:33:50 | 2,196 | |
| 55 | Ironman 70.3 Peru (2026) | Latin America | 5:57:14 | 1h 18m | 4:33:20 | 996 | |
| 56 | Ironman 70.3 Cairns (2025) | Oceania | 5:57:08 | 1h 17m | 4:33:39 | 1,048 | |
| 57 | Ironman 70.3 Bolton (2025) | Other | 5:57:02 | 1h 09m | 4:42:10 | 1,093 | |
| 58 | Ironman 70.3 Michigan (2025) | North America | 5:54:56 | 1h 10m | 4:42:39 | 1,518 | |
| 59 | Ironman 70.3 Eagleman (2025) | Other | 5:54:22 | 1h 20m | 4:27:23 | 1,962 | |
| 60 | Ironman 70.3 Oregon (2025) | North America | 5:54:17 | 1h 22m | 4:33:33 | 2,136 | |
| 61 | Ironman 70.3 Italy Emilia-Romagna (2025) | Europe | 5:54:10 | 58m | 4:47:52 | 2,060 | |
| 62 | Ironman 70.3 Pucon (2026) | Latin America | 5:54:06 | 1h 15m | 4:38:51 | 1,218 | |
| 63 | Ironman 70.3 Sao Paulo (2025) | Latin America | 5:53:42 | 1h 16m | 4:33:44 | 1,485 | |
| 64 | Ironman 70.3 Portugal - Cascais (2025) | Europe | 5:52:33 | 1h 05m | 4:51:09 | 2,349 | |
| 65 | Ironman 70.3 Aracaju-Sergipe (2025) | Latin America | 5:52:27 | 1h 12m | 4:39:00 | 1,016 | |
| 66 | Ironman 70.3 Aix-en-Provence (2026) | Europe | 5:51:46 | 1h 08m | 4:33:57 | 2,217 | |
| 67 | Ironman 70.3 Vichy (2025) | Europe | 5:51:28 | 1h 03m | 4:41:34 | 2,070 | |
| 68 | Ironman 70.3 Marathon (2025) | Other | 5:50:58 | 1h 11m | 4:41:11 | 688 | |
| 69 | Ironman 70.3 Shanghai (2025) | Other | 5:50:22 | 1h 13m | 4:36:11 | 1,058 | |
| 70 | Ironman 70.3 Dallas (2026) | North America | 5:49:12 | 1h 19m | 4:28:12 | 1,685 | |
| 71 | Ironman 70.3 Zell Am See-Kaprun (2025) | Europe | 5:48:37 | 1h 02m | 4:35:48 | 1,844 | |
| 72 | Ironman 70.3 Monterrey (2025) | Latin America | 5:48:24 | 1h 15m | 4:32:22 | 1,258 | |
| 73 | Ironman 70.3 Luxembourg-Region Moselle (2025) | Europe | 5:48:10 | 1h 08m | 4:39:38 | 2,391 | |
| 74 | Ironman 70.3 Tallinn (2025) | Europe | 5:46:44 | 1h 04m | 4:35:34 | 1,148 | |
| 75 | Ironman 70.3 Western Australia (2025) | Oceania | 5:46:38 | 1h 07m | 4:41:41 | 1,084 | |
| 76 | Ironman 70.3 Encarnacion (2025) | Other | 5:45:56 | 1h 21m | 4:37:56 | 369 | |
| 77 | Ironman 70.3 Switzerland (2026) | Europe | 5:44:24 | 58m | 4:38:06 | 1,958 | |
| 78 | Ironman 70.3 Krakow (2025) | Other | 5:43:56 | 1h 07m | 4:33:18 | 1,620 | |
| 79 | Ironman 70.3 Belgrade (2025) | Other | 5:43:16 | 1h 10m | 4:27:44 | 552 | |
| 80 | Ironman 70.3 Jonkoping (2025) | Other | 5:42:50 | 1h 10m | 4:25:07 | 1,748 | |
| 81 | Ironman 70.3 Panama (2026) | Latin America | 5:41:40 | 1h 14m | 4:31:27 | 1,100 | |
| 82 | Ironman 70.3 Punta Del Este (2026) | Other | 5:41:14 | 1h 06m | 4:35:40 | 1,148 | |
| 83 | Ironman 70.3 Oman (2025) | Middle East | 5:39:39 | 1h 20m | 4:27:00 | 691 | |
| 84 | Ironman 70.3 Duisburg (2025) | Other | 5:38:46 | 59m | 4:36:46 | 2,024 | |
| 85 | Ironman 70.3 Kraichgau (2026) | Europe | 5:38:44 | 1h 04m | 4:28:53 | 2,227 | |
| 86 | Ironman 70.3 Sunshine Coast (2025) | Oceania | 5:38:40 | 1h 12m | 4:17:24 | 1,459 | |
| 87 | Ironman 70.3 Muscat (2026) | Other | 5:36:56 | 1h 22m | 4:23:15 | 795 | |
| 88 | Ironman 70.3 Valencia (2026) | Other | 5:36:42 | 1h 03m | 4:22:05 | 2,269 | |
| 89 | Ironman 70.3 Salalah (2025) | Other | 5:35:21 | 1h 17m | 4:38:52 | 203 | |
| 90 | Ironman 70.3 Knokke-Heist (2025) | Other | 5:34:56 | 1h 01m | 4:29:44 | 1,852 | |
| 91 | Ironman 70.3 Westfriesland (2025) | Other | 5:34:53 | 1h 01m | 4:24:57 | 1,617 | |
| 92 | Ironman 70.3 Western Sydney (2026) | Oceania | 5:34:15 | 1h 11m | 4:13:49 | 1,507 | |
| 93 | Ironman 70.3 Porec (2025) | Other | 5:33:22 | 1h 01m | 4:34:54 | 1,293 | |
| 94 | Ironman 70.3 Alghero (2026) | Other | 5:32:37 | 1h 05m | 4:28:03 | 2,255 | |
| 95 | Ironman 70.3 Geelong (2026) | Oceania | 5:32:06 | 1h 07m | 4:18:59 | 1,280 | |
| 96 | Ironman 70.3 Valdivia (2025) | Other | 5:31:12 | 1h 01m | 4:32:45 | 1,460 | |
| 97 | Ironman 70.3 Elsinore (2025) | Europe | 5:31:09 | 1h 01m | 4:30:15 | 1,795 | |
| 98 | Ironman 70.3 Hradec Kralove (2025) | Other | 5:30:08 | 1h 03m | 4:17:36 | 1,343 | |
| 99 | Ironman 70.3 Agadir (2025) | Other | 5:30:07 | 1h 09m | 4:24:43 | 461 | |
| 100 | Ironman 70.3 Puerto Varas (2026) | Other | 5:28:01 | 1h 03m | 4:25:33 | 953 | |
| 101 | Ironman 70.3 San Juan (2026) | Other | 5:27:57 | 1h 02m | 4:25:15 | 830 | |
| 102 | Ironman 70.3 Tours Metropole - Loire Valley (2025) | Other | 5:26:57 | 1h 01m | 4:20:36 | 2,195 | |
| 103 | Ironman 70.3 Rio de Janeiro (2025) | Latin America | 5:26:12 | 1h 01m | 4:20:53 | 1,444 | |
| 104 | Ironman 70.3 Brazil (2025) | Latin America | 5:26:07 | 1h 02m | 4:20:18 | 1,414 | |
| 105 | Ironman 70.3 Florianopolis (2025) | Latin America | 5:25:50 | 1h 01m | 4:23:20 | 1,424 | |
| 106 | Ironman 70.3 Poznan (2025) | Europe | 5:25:50 | 1h 06m | 4:16:22 | 1,049 | |
| 107 | Ironman 70.3 Venice-Jesolo (2026) | Europe | 5:25:25 | 1h 00m | 4:27:21 | 2,345 | |
| 108 | Ironman 70.3 Gulf Coast (2026) | Other | 5:24:54 | 1h 08m | 4:00:16 | 1,547 | |
| 109 | Ironman 70.3 Erkner Berlin-Brandenburg (2025) | Other | 5:24:14 | 57m | 4:25:14 | 1,562 | |
| 110 | Ironman 70.3 Buenos Aires (2025) | Latin America | 5:23:30 | 54m | 4:30:14 | 1,046 | |
| 111 | Ironman 70.3 Turkey (2025) | Europe | 5:22:42 | 1h 03m | 4:24:32 | 1,152 | |
| 112 | Ironman 70.3 Brasilia (2026) | Latin America | 5:20:57 | 1h 02m | 4:18:37 | 1,331 | |
| 113 | Ironman 70.3 Calgary (2025) | North America | 5:20:26 | 38m | 4:28:18 | 244 | |
| 114 | Ironman 70.3 Warsaw (2025) | Other | 5:16:05 | 1h 07m | 4:08:34 | 1,637 | |
| 115 | Ironman 70.3 Colombo (2026) | Other | 5:14:38 | 1h 13m | 4:09:35 | 359 | |
| 116 | Ironman 70.3 Port Macquarie (2025) | Oceania | 5:13:45 | 1h 03m | 3:54:55 | 1,193 | |
| 117 | Ironman 70.3 Weymouth (2025) | Europe | 5:09:02 | 59m | 4:10:00 | 1,504 | |
| 118 | Ironman 70.3 San Andres (2025) | Other | 5:01:26 | 54m | 4:09:33 | 878 | |
| 119 | Ironman 70.3 Western Massachusetts (2025) | North America | 5:00:05 | 1h 02m | 4:00:05 | 1,057 | |
| 120 | Ironman 70.3 Melbourne (2025) | Other | 4:55:21 | 55m | 3:56:07 | 1,261 |
120 races shown. Click any column header to re-sort.
The primary number is the typical finish time — how long the median finisher takes to cross the line. Since the swim (1.9 km) and run (21.1 km) are the same length at every 70.3, a significantly slower field usually means one thing: the course is harder. Either the bike has real climbing, the heat is brutal, or both.
The second number is field spread — the gap between athletes finishing in the top quarter and those in the bottom quarter of the field. A wide spread means the course disproportionately punishes less-prepared athletes: fast athletes still finish close to their normal time, but mid-pack athletes struggle much more than usual. This is a useful signal for how demanding the course gets if conditions aren't perfect for you.
Comparing across regions will give you the most useful picture — a race in the Canary Islands and a race in New Zealand race in completely different conditions. Filter by region to find the toughest race near you, or to compare difficulty within a similar climate band.