[{"data":1,"prerenderedAt":591},["ShallowReactive",2],{"race-ironman-vichy":3,"race-related-ironman-vichy":543},{"slug":4,"slugAliases":5,"eventName":6,"city":7,"country":8,"eventDate":9,"updatedAt":10,"eventHomepageUrl":11,"proseName":12,"eventType":13,"courses":14,"editions":541},"ironman-vichy",[],"IRONMAN Vichy","Vichy","France","2027-08-22T00:00:00.000Z","2026-09-05T16:55:53.955Z","https://www.vichy-communaute.fr/ironman-70-3-vichy/",{"de":6,"en":6},"Triathlon",[15,145,436],{"raceName":16,"kind":17,"hasTrack":18,"composedLegs":19,"startDate":142,"leg":22,"legGroup":22,"distanceInMeters":143,"elevationGainInMeters":22,"format":144,"profile":22,"intro":22,"description":22,"pacing":22,"training":22},"IRONMAN","COMBINED",false,[20,25,30],{"discipline":21,"label":22,"legOrder":23,"distanceInMeters":24,"raceName":22,"hasTrack":18,"elevationGainInMeters":22,"profile":22,"description":22},"SWIM",null,0,3800,{"discipline":26,"label":22,"legOrder":27,"distanceInMeters":28,"raceName":29,"hasTrack":18,"elevationGainInMeters":22,"profile":22,"description":22},"BIKE",20,180200,"IRONMAN — Bike",{"discipline":31,"label":22,"legOrder":32,"distanceInMeters":33,"raceName":34,"hasTrack":35,"elevationGainInMeters":36,"profile":37,"description":139},"RUN",40,42195,"IRONMAN — Run",true,160,{"classification":38,"routeShape":39,"totalAscentM":36,"totalDescentM":40,"netElevationM":41,"vertPerKm":42,"climbs":43,"remainingVertM":23,"gradientDistribution":44,"downsampledProfile":48,"trackPolyline":138},"FLAT","loop",158,1,3.8,[],{"flatPct":45,"upPct":46,"downPct":47,"steepUpPct":23,"steepDownPct":23},73.6,15.8,10.5,[49,51,54,56,59,62,64,67,70,72,74,77,79,81,84,86,89,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136],{"km":23,"elevM":50},252,{"km":52,"elevM":53},1.08,251,{"km":55,"elevM":50},2.15,{"km":57,"elevM":58},3.25,254,{"km":60,"elevM":61},4.33,262,{"km":63,"elevM":58},5.4,{"km":65,"elevM":66},6.48,257,{"km":68,"elevM":69},7.55,255,{"km":71,"elevM":50},8.65,{"km":73,"elevM":50},9.73,{"km":75,"elevM":76},10.8,253,{"km":78,"elevM":53},11.88,{"km":80,"elevM":69},12.95,{"km":82,"elevM":83},14.05,258,{"km":85,"elevM":76},15.13,{"km":87,"elevM":88},16.2,256,{"km":90,"elevM":91},17.27,260,{"km":93,"elevM":69},18.35,{"km":95,"elevM":53},19.45,{"km":97,"elevM":76},20.53,{"km":99,"elevM":76},21.6,{"km":101,"elevM":76},22.68,{"km":103,"elevM":76},23.78,{"km":105,"elevM":83},24.85,{"km":107,"elevM":76},25.93,{"km":109,"elevM":66},27,{"km":111,"elevM":83},28.08,{"km":113,"elevM":50},29.18,{"km":115,"elevM":76},30.25,{"km":117,"elevM":50},31.33,{"km":119,"elevM":53},32.4,{"km":121,"elevM":50},33.48,{"km":123,"elevM":76},34.58,{"km":125,"elevM":61},35.65,{"km":127,"elevM":58},36.73,{"km":129,"elevM":83},37.8,{"km":131,"elevM":58},38.88,{"km":133,"elevM":53},39.98,{"km":135,"elevM":50},41.05,{"km":137,"elevM":76},42.13,"wwrxGk}xS~Dm@XnCdBm@|BfC^iAaATyAaBeBl@\\wCtZsIhWaCpD|A`AGn@sAp@QfNtDlENrWeJbQoMhDwFN|EwBcAcJaNHcFnD_QZ_EfBcETr@kAtNXHcBnIeBrEeGjK{HtFoMlBmED?i@iA]dIOWwAH}BiBr@wDMUwQt@EJkBxJc@EqBlFe@B\\|@c@PiB{BiB_OjIgC?\\tWuBTtA`DiNqCgc@xK}k@tGLcJORe@bFpBxg@T\\SsMl@QRgBdIeB`@T?xBX\\bBm@|BdCh@{@iAH{A_BeBj@\\yCtZqIhW_CpDxA`AEn@uAp@QfNtDlENrCs@`SqH`QoMjDwFL`FwBgAcJaNFaFpD}P\\aEdBcEJnC_AxKVHcBnIaE|JiD`F{HvFoMhBkEDAg@iA]dIQWuAH}BkBr@uDMUyQt@EJkBzJa@GqBpGQl@eA?{@yBkB}NjIgC?ZtWuBTtA~CiNqCgc@xK_l@vGPcJg@vAO~CpBtg@T^UqMn@SRgBdIcB`@T?xBV\\dBm@pBhCt@}@iAF{AaBeBl@\\yCtZqIhW_CpDzA`AGn@uAp@QfNvDlENjKcDhKcE`QoMjDuFL|EwBeAcJ_NHcFpD}PZaEdBaETr@iArNVHcBlIeBtEeGjK{HtFoMlBkEBAg@iA]dIOWyAH{BiBr@wDMUyQt@CJmBzJa@EqBpGQl@cC{BiB{NjIiC?ZtWuBVtA~CiNsCgc@zK}k@tGLeJOVe@`FpBxg@VZWqMn@QRiBdIcB`@T?xBX\\bBm@|BdC^gAaARyA}AcBj@ZyCtZsIhW_CpD|A`AGp@uAn@QfNvDlELrCs@`SqHbQoMhDuFN~EyBeAcJcNHaFpD_QZ_EbBeETv@iArNXHcBnIeBtEeGhK{HvFoMhBkEFAi@iA]dIOWyAH{BiBr@uDMWyQt@CLmBxJa@EqBnGQl@eA@}@{BiB}NjIiC?\\tWsBTrA~CiNoCec@xK_l@vGLeJOTe@`FpBtg@T^SqMl@QRiBdIcB`@T?xBV\\dBk@rCxDlAoB",{"de":140,"en":141},"Die Runde beginnt am Parc Omnisports, folgt den Allier-Ufern und dreht durch das Zentrum von Vichy: am Kiosque à Musique vorbei, durch den Parc des Sources, dann zurück ans Wasser. Nach 10,4 Kilometern bist du wieder am Ausgangspunkt - und läufst sie noch dreimal, bevor ein 150 Meter langer Zielkanal den Tag beendet.\n\nHöhenmeter gibt es nicht: knapp 74 Prozent flach, kein einziger Anstieg im Profil, und die gesamte Strecke liegt zwischen 251 und 263 Metern. Die 160 Meter Anstieg aus den Rohdaten sind Rauschen auf ganzzahligen Höhenwerten; geglättet sind es 66 über den ganzen Marathon.\n\nDas Publikum steht in der Stadt dicht und an den Uferabschnitten dünn, und weil vier Runden gelaufen werden, kommst du an jeder Stelle viermal vorbei - auch am Zielbereich, was der mental teuerste Teil dieses Kurses ist. Die Ziellinie bleibt bis 23:30 Uhr offen, der Start ist um 7 Uhr, und Ende August kann das Allier-Tal heiß werden.","The lap starts at the Parc Omnisports, follows the banks of the Allier and turns through the centre of Vichy: past the Kiosque à Musique, through the Parc des Sources, then back to the water. After 10.4 kilometres you are where you began - and you run it three more times before a 150 metre finish chute ends the day.\n\nThere is no climbing: nearly 74 per cent flat, not one ascent in the profile, and the whole course between 251 and 263 metres. The 160 metres of gain in the raw data are noise on integer elevation values; smoothed it is 66 across the entire marathon.\n\nThe crowds are dense in town and thin on the riverside, and because it is four laps you pass every point four times - including the finish area, which is the mentally most expensive feature of this course. The finish stays open until 23:30, the race starts at 07:00, and the Allier valley can be hot in late August.","2027-08-22",226000,"FIXED_DISTANCE",{"raceName":146,"kind":17,"hasTrack":18,"composedLegs":147,"startDate":142,"leg":22,"legGroup":22,"distanceInMeters":435,"elevationGainInMeters":22,"format":144,"profile":22,"intro":22,"description":22,"pacing":22,"training":22},"IRONMAN 70.3",[148,150,341],{"discipline":21,"label":22,"legOrder":23,"distanceInMeters":149,"raceName":22,"hasTrack":18,"elevationGainInMeters":22,"profile":22,"description":22},1900,{"discipline":26,"label":22,"legOrder":27,"distanceInMeters":151,"raceName":152,"hasTrack":35,"elevationGainInMeters":153,"profile":154,"description":338},90000,"IRONMAN 70.3 — Bike",1220,{"classification":155,"routeShape":39,"totalAscentM":153,"totalDescentM":156,"netElevationM":157,"vertPerKm":158,"climbs":159,"remainingVertM":217,"gradientDistribution":218,"downsampledProfile":223,"trackPolyline":337},"ROLLING",1215,4,14,[160,167,175,183,190,197,204,210],{"startKm":161,"lengthKm":162,"avgGradientPct":163,"maxGradientPct":164,"elevGainM":165,"score":166,"category":22},11.03,0.53,3.6,4.8,19,1888,{"startKm":168,"lengthKm":169,"avgGradientPct":170,"maxGradientPct":171,"elevGainM":172,"score":173,"category":174},11.85,3.45,6.1,12.3,211,21131,"3",{"startKm":176,"lengthKm":177,"avgGradientPct":178,"maxGradientPct":179,"elevGainM":180,"score":181,"category":182},31.2,1.95,4.6,8.8,89,8911,"4",{"startKm":184,"lengthKm":185,"avgGradientPct":186,"maxGradientPct":187,"elevGainM":188,"score":189,"category":182},33.33,2.05,4.5,9.4,92,9173,{"startKm":191,"lengthKm":192,"avgGradientPct":193,"maxGradientPct":194,"elevGainM":195,"score":196,"category":22},37.55,0.6,4.3,5.8,26,2590,{"startKm":198,"lengthKm":199,"avgGradientPct":200,"maxGradientPct":201,"elevGainM":202,"score":203,"category":22},44.15,0.33,5.6,7.2,18,1833,{"startKm":205,"lengthKm":206,"avgGradientPct":207,"maxGradientPct":171,"elevGainM":208,"score":209,"category":182},49.15,3,5.1,153,15323,{"startKm":211,"lengthKm":212,"avgGradientPct":213,"maxGradientPct":214,"elevGainM":215,"score":216,"category":22},55.93,1.27,5.9,18.7,75,7471,24,{"flatPct":219,"upPct":220,"downPct":221,"steepUpPct":222,"steepDownPct":206},30.8,32.2,31.3,2.8,[224,226,228,230,233,236,239,242,245,248,251,254,257,260,263,265,268,270,273,276,279,282,285,287,290,293,296,299,302,305,308,311,314,317,320,323,326,329,332,335],{"km":23,"elevM":225},249,{"km":227,"elevM":50},2.23,{"km":229,"elevM":88},4.45,{"km":231,"elevM":232},6.68,265,{"km":234,"elevM":235},8.93,263,{"km":237,"elevM":238},11.15,266,{"km":240,"elevM":241},13.38,365,{"km":243,"elevM":244},15.6,494,{"km":246,"elevM":247},17.83,480,{"km":249,"elevM":250},20.05,374,{"km":252,"elevM":253},22.3,341,{"km":255,"elevM":256},24.53,328,{"km":258,"elevM":259},26.75,300,{"km":261,"elevM":262},28.98,285,{"km":176,"elevM":264},288,{"km":266,"elevM":267},33.42,384,{"km":125,"elevM":269},460,{"km":271,"elevM":272},37.9,447,{"km":274,"elevM":275},40.13,451,{"km":277,"elevM":278},42.35,448,{"km":280,"elevM":281},44.58,478,{"km":283,"elevM":284},46.8,466,{"km":286,"elevM":250},49.03,{"km":288,"elevM":289},51.28,497,{"km":291,"elevM":292},53.5,501,{"km":294,"elevM":295},55.73,477,{"km":297,"elevM":298},57.95,548,{"km":300,"elevM":301},60.18,540,{"km":303,"elevM":304},62.4,488,{"km":306,"elevM":307},64.63,429,{"km":309,"elevM":310},66.88,373,{"km":312,"elevM":313},69.1,362,{"km":315,"elevM":316},71.33,348,{"km":318,"elevM":319},73.55,349,{"km":321,"elevM":322},75.78,316,{"km":324,"elevM":325},78,297,{"km":327,"elevM":328},80.25,281,{"km":330,"elevM":331},82.48,267,{"km":333,"elevM":334},84.7,259,{"km":336,"elevM":58},86.93,"y_rxGifySxb@wFxFrApBiBdTpDdX_JxO}L|DeGjBmMdB~@tByCvCcT~IkMzGeDrIb^zKyE`Jg@jFiCvT_]pXsOzIwRvIkKzE}OxLeUzEsAjg@kAdYpIjQiB|@n@lAcBzLcCzLJdcAyaApKeEoWu]wA_GwMuLqBoTiDcMkAkWkBgJzKs[U}MxC}[kBgQkCgG`BwJ_AgGDaLdGyLnDiDvBwTrEsGh@{GgCgEUmDdAmBrD_ArA_EiD{ZfGkLgGmHi@iG_CwDaDHmBpBiG}Do@uHeD|C{HyBmGiU{HyJeGeCaIEcExAsC{IzAkCJoFmC_CbAiASyC`AeBu@mEnCa@hBmEmGmLsCpC}BeFmA{@wAl@uEiHcFcBgIpBuAcEcBWiXbJmD}A_DzGiLxKqClFBxJaJzMuA|OcHlFgFrl@eBnCsJtC_CSoB~AeAjK_MdKaAvCHlCvCjFn@bH_BpTqCtOqGlRgZro@yG~R]bKnApKm@dF{BtBeG[uN`G}FpS_NjSqCHqJmFeY|DuJf_@uOfNuEy@gJlFmJ`\\_EgBkEoOaAkHb@gBmA_AgFke@oB}HhAeKc_@}`@oPu_@hB_V{CsWOuKfMk[HiEiAkDaKoHbAyWcAeCuH_GkIon@aIeT`CoFzHmCxA}EvE_u@fIoo@aGqY`B_\\a@qVlHyL`HmQpS}WtLq`@iA}U`@oOfN_Q?}O|BwOlC}GbRmQiLqn@_Wah@lXwn@PuEgAmJzDwKr@g_@lIwy@vJoWvBo`@yBwWdGcLL_FzJiFpIwNpAuTzF}BdCgD|@yQYwGxDmJnKqGrIo_@qBqCzTlCnFfC`CoBaDb@aFqFoIyDcFiLI_MbAeIlE_RhLiXqA{H~RxCxAxEdJ`EhPA`MsC|KnDxGsEdCpAj@nCvAZbC|ElEGj@bGvD`AvRkBhDmDK_HvFyCzDAxGiFzCxBvIz\\jN`DnH{@vL|AzC`FjEd@fClDvD}DbC`@nIhc@tFk@`BfDyBd`@pStV~Gft@EtElCbRjO|h@y@~RDx^jGtGnJtC_AxDf@hCjDjCtHbNJjC{BfG~CjOC~K_CtJd@pExCfIrEd@pDzDxCvNpDdCbA`FtEdGv@rL~Hr_@|BdAlB~Dd@|HaF|HyFtWFzF|D~FEpCaL~GaHvKkInDmK~UStBt@jBwDjXhA`ItCjF}BdH}F`F}K|CgV|OaFvL}FlBa[x]yCrOF`\\kEj[aEfNaGxEeR`DcP@oFqA{LlJcKvQePnQQpLaJzMuA|OcHlFgFrl@eBnCsJtC_CSoB~AeAjK_MdKaAvCHlCvCjFn@bH_BpTqCtOqGlRgZro@yG~R]bKnApKm@dF{BtBeG[uN`G}FpS_NjSqCHqJmFeY|DuJf_@uOfNuEy@gJlFmJ`\\oEwCoEM_FsE}EsAnApm@mBTaBnd@lExL`NjKhDp@GpShAdMvNt^aAdJbArSIbBaOtAlBvL{G~G^r@y@hAFvg@iKb@i@rMkV`BcD|Cg@bGvBth@`@Y",{"de":339,"en":340},"Die Runde führt aus dem Parc Omnisports über Saint-Yorre nach Osten und beginnt bei Kilometer zwölf mit dem längsten Stück des Tages: dreieinhalb Kilometer mit gut sechs Prozent und 211 Höhenmetern, der Aufstieg in die Montagne Bourbonnaise. Danach reißt es nicht mehr ab - bei Kilometer 31 und 33 folgen zwei Anstiege von je zwei Kilometern um viereinhalb Prozent, bei Kilometer 49 noch einmal drei Kilometer mit gut fünf Prozent.\n\nNur knapp ein Drittel der Strecke liegt im flachen Bereich; der Rest steigt oder fällt. Der Kurs berührt die Dörfer, die in der Sperrliste der Stadt stehen - Busset, Arronnes, Le Mayet-de-Montagne, Châtel-Montagne, Isserpent - und läuft dabei zwischen 249 und 563 Metern Höhe. Im Rücken der Anstiege liegt die Chaîne des Volcans d'Auvergne.\n\nDer Schluss ist die Stelle, die im Rennen zählt: die côte Saint-Antoine bei Cusset, die letzte Steigung vor der Rückkehr nach Vichy, und danach die schnellen Kilometer am Fluss zurück in den Parc Omnisports. Gefahren wird Ende August, wenn es im Allier-Tal heiß werden kann - das Feld ist mit über 3.300 Startenden über beide Distanzen groß, und die Straßen sind nur zeitweise gesperrt.","The loop runs out of the Parc Omnisports through Saint-Yorre and begins the day's longest effort at kilometre twelve: three and a half kilometres at a good six per cent for 211 metres of gain, the climb into the Montagne Bourbonnaise. It does not let up after that - two ascents of about two kilometres at four and a half per cent follow at kilometre 31 and 33, and another three kilometres at a good five at kilometre 49.\n\nBarely a third of the route is flat ground; the rest is going up or coming down. The course touches the villages that appear on the city's road-closure list - Busset, Arronnes, Le Mayet-de-Montagne, Châtel-Montagne, Isserpent - between 249 and 563 metres of altitude, with the Chaîne des Volcans d'Auvergne behind the climbs.\n\nThe end is what matters in the race: the côte Saint-Antoine at Cusset, the last rise before the return to Vichy, and then the fast kilometres beside the river back into the Parc Omnisports. It is ridden in late August, when the Allier valley can be hot; the field is large at more than 3,300 across both distances, and the roads are closed only for a window.",{"discipline":31,"label":22,"legOrder":32,"distanceInMeters":342,"raceName":343,"hasTrack":35,"elevationGainInMeters":344,"profile":345,"description":432},21100,"IRONMAN 70.3 — Run",80,{"classification":38,"routeShape":39,"totalAscentM":344,"totalDescentM":346,"netElevationM":41,"vertPerKm":42,"climbs":347,"remainingVertM":23,"gradientDistribution":348,"downsampledProfile":352,"trackPolyline":431},79,[],{"flatPct":349,"upPct":350,"downPct":351,"steepUpPct":23,"steepDownPct":23},73.3,16.1,10.6,[353,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,411,413,415,417,419,421,423,425,427,429],{"km":23,"elevM":50},{"km":355,"elevM":76},0.55,{"km":357,"elevM":53},1.1,{"km":359,"elevM":76},1.63,{"km":361,"elevM":50},2.17,{"km":363,"elevM":58},2.73,{"km":365,"elevM":58},3.28,{"km":367,"elevM":91},3.83,{"km":369,"elevM":61},4.35,{"km":371,"elevM":76},4.9,{"km":373,"elevM":58},5.45,{"km":375,"elevM":66},6,{"km":377,"elevM":83},6.55,{"km":379,"elevM":334},7.08,{"km":381,"elevM":58},7.63,{"km":383,"elevM":58},8.18,{"km":385,"elevM":50},8.73,{"km":387,"elevM":53},9.28,{"km":389,"elevM":50},9.8,{"km":391,"elevM":53},10.35,{"km":393,"elevM":76},10.9,{"km":395,"elevM":53},11.45,{"km":397,"elevM":50},11.98,{"km":399,"elevM":50},12.53,{"km":401,"elevM":69},13.08,{"km":403,"elevM":69},13.63,{"km":405,"elevM":91},14.18,{"km":407,"elevM":91},14.7,{"km":409,"elevM":76},15.25,{"km":46,"elevM":76},{"km":412,"elevM":66},16.35,{"km":414,"elevM":66},16.9,{"km":416,"elevM":91},17.43,{"km":418,"elevM":69},17.98,{"km":420,"elevM":58},18.52,{"km":422,"elevM":53},19.08,{"km":424,"elevM":53},19.63,{"km":426,"elevM":50},20.15,{"km":428,"elevM":53},20.7,{"km":430,"elevM":76},21.25,"wwrxGk}xS~Dm@XnCdBm@|BfC^iAaATyAaBeBl@\\wCtZsIhWaCpD|A`AGn@sAp@QfNtDlENrWeJbQoMhDwFN|EwBcAcJaNHcFnD_QZ_EfBcETr@kAtNXHcBnIeBrEeGjK{HtFoMlBmED?i@iA]dIOWwAH}BiBr@wDMUwQt@EJkBxJc@EqBlFe@B\\|@c@PiB{BiB_OjIgC?\\tWuBTtA`DiNqCgc@xK}k@tGLcJORe@bFpBxg@T\\SsMl@QRgBdIeB`@T?xBX\\bBm@|BdCh@{@iAH{A_BeBj@\\yCtZqIhW_CpDxA`AEn@uAp@QfNtDlENrCs@`SqH`QoMjDwFL`FwBgAcJaNFaFpD}P\\aEdBcEJnC_AxKVHcBnIaE|JiD`F{HvFoMhBkEDAg@iA]dIQWuAH}BkBr@uDMUyQt@EJkBzJa@GqBpGQl@eA?{@yBkB}NjIgC?ZtWuBTtA~CiNqCgc@xK_l@vGPcJQTe@`FpBtg@T^UqMn@SRgBdIcB`@T?xBV\\v@i@pANnBfDlAoB",{"de":433,"en":434},"Die Runde ist dieselbe, die der Marathon des vollen Rennens viermal läuft; der Halbmarathon nimmt sie zweimal. Sie beginnt am Parc Omnisports, läuft an den Allier-Ufern entlang und dreht dann durch das Zentrum von Vichy - vorbei am Kiosque à Musique und am Parc des Sources, den Anlagen aus der Kurzeit der Stadt, mit Publikum an den engen Stellen.\n\nDas Profil ist praktisch leer: 73 Prozent der Strecke sind flach, kein Abschnitt zählt als Anstieg, und die gesamte Runde bewegt sich zwischen 251 und 263 Metern über dem Meer. Die 80 Höhenmeter, die aus den Rohdaten fallen, sind Quantisierungsrauschen; geglättet bleiben 33.\n\nGelaufen wird an einem späten Augustnachmittag - das 70.3-Feld startet um 9:40 Uhr, ist also in der Mittagshitze auf der Strecke, während die Ziellinie bis 23:30 Uhr für die Langdistanz offen bleibt. Die Uferabschnitte liegen teils im Schatten, die Stadtpassagen nicht.","The lap is the same one the full race's marathon covers four times; the half takes it twice. It starts at the Parc Omnisports, runs the banks of the Allier and then turns through the centre of Vichy - past the Kiosque à Musique and the Parc des Sources, the ornamental legacy of the spa era, with the crowds at the narrow points.\n\nThe profile is effectively empty: 73 per cent of the route is flat ground, no section registers as a climb, and the whole lap sits between 251 and 263 metres above sea level. The 80 metres that fall out of the raw data are quantisation noise; smoothed, 33 remain.\n\nIt is run through a late-August afternoon - the 70.3 field starts at 09:40, so it is out in the midday heat, while the finish line stays open until 23:30 for the full-distance athletes. The riverside stretches are partly shaded; the town sections are not.",113000,{"raceName":437,"kind":438,"hasTrack":18,"composedLegs":439,"startDate":142,"leg":22,"legGroup":22,"distanceInMeters":435,"elevationGainInMeters":22,"format":144,"profile":22,"intro":22,"description":22,"pacing":22,"training":22},"IRONMAN 70.3 Relay","RELAY",[440,441,495],{"discipline":21,"label":22,"legOrder":23,"distanceInMeters":149,"raceName":22,"hasTrack":18,"elevationGainInMeters":22,"profile":22,"description":22},{"discipline":26,"label":22,"legOrder":27,"distanceInMeters":151,"raceName":152,"hasTrack":35,"elevationGainInMeters":153,"profile":442,"description":494},{"classification":155,"routeShape":39,"totalAscentM":153,"totalDescentM":156,"netElevationM":157,"vertPerKm":158,"climbs":443,"remainingVertM":217,"gradientDistribution":452,"downsampledProfile":453,"trackPolyline":337},[444,445,446,447,448,449,450,451],{"startKm":161,"lengthKm":162,"avgGradientPct":163,"maxGradientPct":164,"elevGainM":165,"score":166,"category":22},{"startKm":168,"lengthKm":169,"avgGradientPct":170,"maxGradientPct":171,"elevGainM":172,"score":173,"category":174},{"startKm":176,"lengthKm":177,"avgGradientPct":178,"maxGradientPct":179,"elevGainM":180,"score":181,"category":182},{"startKm":184,"lengthKm":185,"avgGradientPct":186,"maxGradientPct":187,"elevGainM":188,"score":189,"category":182},{"startKm":191,"lengthKm":192,"avgGradientPct":193,"maxGradientPct":194,"elevGainM":195,"score":196,"category":22},{"startKm":198,"lengthKm":199,"avgGradientPct":200,"maxGradientPct":201,"elevGainM":202,"score":203,"category":22},{"startKm":205,"lengthKm":206,"avgGradientPct":207,"maxGradientPct":171,"elevGainM":208,"score":209,"category":182},{"startKm":211,"lengthKm":212,"avgGradientPct":213,"maxGradientPct":214,"elevGainM":215,"score":216,"category":22},{"flatPct":219,"upPct":220,"downPct":221,"steepUpPct":222,"steepDownPct":206},[454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493],{"km":23,"elevM":225},{"km":227,"elevM":50},{"km":229,"elevM":88},{"km":231,"elevM":232},{"km":234,"elevM":235},{"km":237,"elevM":238},{"km":240,"elevM":241},{"km":243,"elevM":244},{"km":246,"elevM":247},{"km":249,"elevM":250},{"km":252,"elevM":253},{"km":255,"elevM":256},{"km":258,"elevM":259},{"km":261,"elevM":262},{"km":176,"elevM":264},{"km":266,"elevM":267},{"km":125,"elevM":269},{"km":271,"elevM":272},{"km":274,"elevM":275},{"km":277,"elevM":278},{"km":280,"elevM":281},{"km":283,"elevM":284},{"km":286,"elevM":250},{"km":288,"elevM":289},{"km":291,"elevM":292},{"km":294,"elevM":295},{"km":297,"elevM":298},{"km":300,"elevM":301},{"km":303,"elevM":304},{"km":306,"elevM":307},{"km":309,"elevM":310},{"km":312,"elevM":313},{"km":315,"elevM":316},{"km":318,"elevM":319},{"km":321,"elevM":322},{"km":324,"elevM":325},{"km":327,"elevM":328},{"km":330,"elevM":331},{"km":333,"elevM":334},{"km":336,"elevM":58},{"de":339,"en":340},{"discipline":31,"label":22,"legOrder":32,"distanceInMeters":342,"raceName":343,"hasTrack":35,"elevationGainInMeters":344,"profile":496,"description":540},{"classification":38,"routeShape":39,"totalAscentM":344,"totalDescentM":346,"netElevationM":41,"vertPerKm":42,"climbs":497,"remainingVertM":23,"gradientDistribution":498,"downsampledProfile":499,"trackPolyline":431},[],{"flatPct":349,"upPct":350,"downPct":351,"steepUpPct":23,"steepDownPct":23},[500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539],{"km":23,"elevM":50},{"km":355,"elevM":76},{"km":357,"elevM":53},{"km":359,"elevM":76},{"km":361,"elevM":50},{"km":363,"elevM":58},{"km":365,"elevM":58},{"km":367,"elevM":91},{"km":369,"elevM":61},{"km":371,"elevM":76},{"km":373,"elevM":58},{"km":375,"elevM":66},{"km":377,"elevM":83},{"km":379,"elevM":334},{"km":381,"elevM":58},{"km":383,"elevM":58},{"km":385,"elevM":50},{"km":387,"elevM":53},{"km":389,"elevM":50},{"km":391,"elevM":53},{"km":393,"elevM":76},{"km":395,"elevM":53},{"km":397,"elevM":50},{"km":399,"elevM":50},{"km":401,"elevM":69},{"km":403,"elevM":69},{"km":405,"elevM":91},{"km":407,"elevM":91},{"km":409,"elevM":76},{"km":46,"elevM":76},{"km":412,"elevM":66},{"km":414,"elevM":66},{"km":416,"elevM":91},{"km":418,"elevM":69},{"km":420,"elevM":58},{"km":422,"elevM":53},{"km":424,"elevM":53},{"km":426,"elevM":50},{"km":428,"elevM":53},{"km":430,"elevM":76},{"de":433,"en":434},[542],{"eventName":6,"eventDate":9,"eventHomepageUrl":11},[544,551,560,567,573,583],{"slug":545,"eventName":546,"proseName":547,"city":549,"country":8,"eventType":13,"eventDate":550,"distanceInMeters":143,"elevationGainInMeters":22,"classification":38},"ironman-les-sables-dolonne","IRONMAN Les Sables-d'Olonne - Vendée",{"de":548,"en":548},"IRONMAN Les Sables-d'Olonne","Les Sables-d'Olonne","2027-06-27T00:00:00.000Z",{"slug":552,"eventName":553,"proseName":554,"city":555,"country":8,"eventType":13,"eventDate":556,"distanceInMeters":557,"elevationGainInMeters":558,"classification":559},"embrunman","Embrunman",{"de":553,"en":553},"Embrun","2027-08-15T00:00:00.000Z",230995,5007,"MOUNTAINOUS",{"slug":561,"eventName":562,"proseName":563,"city":564,"country":8,"eventType":13,"eventDate":565,"distanceInMeters":143,"elevationGainInMeters":566,"classification":559},"ironman-france-nice","IRONMAN France Nice",{"de":562,"en":562},"Nice","2027-09-12T00:00:00.000Z",3058,{"slug":568,"eventName":569,"proseName":570,"city":571,"country":8,"eventType":13,"eventDate":572,"distanceInMeters":435,"elevationGainInMeters":22,"classification":155},"ironman-70-3-aix-en-provence","IRONMAN 70.3 Aix-en-Provence",{"de":569,"en":569},"Aix-en-Provence","2027-05-23T00:00:00.000Z",{"slug":574,"eventName":575,"proseName":576,"city":578,"country":579,"eventType":13,"eventDate":580,"distanceInMeters":581,"elevationGainInMeters":582,"classification":155},"valais-triathlon-festival","Valais Triathlon Festival 2026",{"de":577,"en":577},"Valais Triathlon Festival","Sion","Switzerland","2026-08-15T00:00:00.000Z",225995,1129,{"slug":584,"eventName":585,"proseName":586,"city":587,"country":579,"eventType":13,"eventDate":588,"distanceInMeters":589,"elevationGainInMeters":590,"classification":155},"ironman-switzerland-thun","IRONMAN Switzerland Thun",{"de":585,"en":585},"Thun","2026-07-05T00:00:00.000Z",226200,2104,1789876372938]