1. Introduction
The IRONMAN
® triathlon—comprising a 3.86 km swim, 180.25 km cycle, and 42.20 km run for the full distance, or approximately half those distances for the 70.3 format—has grown from 15 starters at its inaugural 1978 event in Waikiki, Hawaii, to more than 250,000 annual registrations across more than 50 countries [
1]. The sport’s global expansion, combined with its extreme physiological demands, has made it a valuable model for studying endurance performance, pacing strategies, sex differences, and the epidemiology of race non-completion. Those demands are of a kind that the usual determinants of endurance performance do not fully capture: beyond roughly four hours of competition, maximal oxygen uptake and the anaerobic threshold cease to predict performance well, and fuel and fluid provision, substrate availability, and electrolyte balance become limiting in their own right [
2,
3]. Competition over eight to seventeen hours also imposes a sustained thermoregulatory load [
4] and a progressive loss of neuromuscular function across the three disciplines [
5], so that the athlete who begins the run is not physiologically the athlete who began the swim.
Large-scale analyses of IRONMAN
® performance have been published in recent years, the largest of which examined 823,459 half-distance records to assess the predictive value of individual disciplines on overall performance [
6]. One earlier analysis of pacing in 343,345 full-distance athletes found that the fastest finishers spent proportionally less time in transitions than the rest (0.9% vs. 2.2% of total race time) [
7].
Despite this progress, existing datasets present important limitations. Published analyses have relied on distance-specific datasets that separate full-distance from half-distance events, precluding direct cross-distance comparisons. Transition times have been largely overlooked at population scale, and the two transitions are not interchangeable. T1 follows the swim and precedes the cycle, so it is dominated by the change in equipment and by the shift from horizontal to upright posture. T2 follows several hours of cycling and precedes the run, placing it at the point where the run-off-bike penalty originates; it therefore reflects accumulated fatigue as much as logistical efficiency [
8]. Treating them as a single combined interval discards that distinction. The one dedicated analysis of transition times at IRONMAN
® distance that we are aware of examined the annual top 10 finishers at the World Championship and was unable to separate T1 from T2 [
9]. At Olympic distance, Cejuela et al. found that T2 correlated more strongly with final placement than T1, which is the asymmetry a combined interval would hide; no equivalent analysis exists for long-distance triathlon [
10]. A technical report describing a collection of IRONMAN
® race results was published on Academic Torrents [
11], but it was not peer-reviewed and lacks detailed documentation of fields, validation procedures, and collection methodology. We are not aware of a peer-reviewed, openly available, and formally validated dataset for IRONMAN
® triathlon—in contrast to other endurance sports where large-scale datasets have been formally described [
12]—which limits reproducibility and obliges the research community to re-collect data from primary sources.
The aim of this work is to assemble, validate, and describe an openly available, population-scale dataset of IRONMAN® and IRONMAN® 70.3 race records, unifying full-distance and half-distance events in a single schema with separated transition times, and to characterize its composition, coverage, and data quality so that it can serve as a reusable resource for the sport science community.
2. Materials and Methods
2.1. Data Sources
Race results were obtained from two sources. The primary source was the official IRONMAN
® results platform, hosted on Competitor Group’s event management system. This platform is reached exclusively through a public REST application programming interface (API) at the base domain labs-v2.competitor.com; the base domain does not serve a browsable web interface, and the service is accessed programmatically using the endpoint pattern detailed in the Data collection subsection below. The same race results are also publicly browsable on the IRONMAN website at
https://www.ironman.com/races (for example,
https://www.ironman.com/races/im-brazil/results; both accessed on 28 March 2026), which is the human-facing presentation of the data served programmatically by this API. The API returns detailed race results in JSON format, including split times for each discipline, transition times, finish status, rankings, All World Athlete (AWA) qualification points, and distance completed per segment. A secondary source, CoachCox (coachcox.co.uk), was used to supplement the primary dataset for event series not available on the official platform. CoachCox is a third-party statistics aggregator that compiles IRONMAN
® race results via a public REST API. Its independence from the official platform is editorial rather than metrological: it collects and republishes results produced by the same timing operation. Agreement between the two sources therefore establishes faithful transcription through two separate collection pipelines, and not independent measurement of the underlying times. Both sources provide individual athlete-level results with swim, first transition (T1), cycling, second transition (T2), running, and overall finish times in seconds.
2.2. Event Discovery
Events on the official platform are identified by universally unique identifiers (UUIDs) embedded in the results pages of ironman.com. We developed an automated discovery procedure that extracts these UUIDs from the HTML source of race result pages at https://www.ironman.com/{race-slug}-results (accessed on 28 March 2026). Race slugs were derived from the CoachCox race metadata by converting event names to URL-compatible format (e.g., “IRONMAN® Florida”→“im-florida”). A total of 210 candidate slugs were tested, yielding 128 valid event UUIDs across both full-distance and half-distance IRONMAN® events. The remaining slugs either corresponded to discontinued events with no result page or were blocked by the website’s content delivery network.
Each event UUID provides access to an event page containing a list of subevents—individual race editions organized by year. For example, the IRONMAN® Florida event page lists 24 subevents from 2002 to 2025, each with its own subevent UUID. The resulting index of race editions across the 128 series is provided in the repository.
2.3. Data Collection—Official Platform
Results for each subevent were retrieved via the official API endpoint at https://labs-v2.competitor.com/api/results?wtc_eventid={subevent-uuid} (accessed on 28 March 2026). The API returns a JSON response containing an array of athlete result objects with over 30 fields per record. Requests were made using Python (v3.12) with the requests library (v2.33.0), with a self-imposed delay of 2.0 s between consecutive API calls. A progress-tracking mechanism was implemented to enable resumption of interrupted collection sessions. Data collection was performed on 28 March 2026. Of the 1235 race editions listed in the subevent index, results were retrieved for 1172, yielding 2,041,743 athlete-race records. The remaining 63 editions returned no results; 28 of these belong to the 2021 season, consistent with the cancelations of that year, and the rest are scattered editions that were canceled or whose results were never published. Among the 1172 successfully retrieved, five (four pre-2007 New Zealand races and one 2023 French race) initially returned server errors and were obtained on a second attempt. Because collection took place in March 2026, the 2026 season is represented only by races held before that date and is partial wherever it appears in this article.
For each athlete record, the following fields were extracted and mapped to standardized column names: athlete name, bib number, country, ISO 3166-1 alpha-2 country code [
13], age group, event name, event identifier, split times (swim, T1, bike, T2, run, overall) in seconds, finish status (finisher, did not finish, did not start, disqualified), rankings (overall, gender, age group) for finish and individual disciplines, AWA points, and distance completed per segment in kilometers.
2.4. Data Collection—Supplementary Source
For event series not available on the official platform, results were obtained from the CoachCox public API at https://www.coachcox.co.uk/wp-json/imstats/v1.90/race/results/{race-id} (accessed on 27 March 2026). Race identifiers were obtained from a reference dataset of 587 known race IDs, supplemented by an automated scan of 500 consecutive IDs beyond the known maximum. A total of 947 races were identified, of which 382 race-years were not represented in the official dataset. These 382 supplementary race-years contributed 665,179 additional athlete-race records. Data collection from the supplementary source was performed on 27 March 2026, with a self-imposed delay of 1.5 s between requests.
2.5. Definition of the Transition Times
Both platforms report T1 and T2 as intervals between timing mats: T1 between the swim exit and the start of the bike course, and T2 between the end of the bike course and the start of the run. We neither defined these intervals nor positioned the mats; the fields are transcribed as published. Their content therefore depends on decisions taken by each event organizer—the size and layout of the transition area, where the mats sit relative to the bike racking, and how congested that area is when a given athlete passes through it. None of these are recorded in the results, and none are guaranteed to be constant across events or across years within the same event. A transition time in this dataset is consequently the time an athlete took to traverse one particular transition area at one particular event, rather than a standardized measure of transition efficiency, and comparisons across events should be read with that in mind.
2.6. Data Quality Assessment
Data quality was assessed along four dimensions: agreement between the two sources, field completeness, internal consistency of the split times, and physiological plausibility. Completeness, internal consistency and plausibility were computed over the entire dataset; cross-source agreement is necessarily restricted to the race-years both sources hold, and the procedure for it is described next. Quantitative results for all four are reported in the Technical Validation subsection of the Results.
Cross-Source Validation Procedure
To assess agreement between the two data sources, we compared every race-year present in both, rather than a sample. For each race-year, we compared the total number of records, the distribution of finish statuses, and individual athlete split times across all six disciplines (swim, T1, bike, T2, run, overall).
Athletes were matched between sources by name within each race-year. Three matching rules were applied in sequence so that the contribution of each could be measured: case-insensitive exact matching, as used previously; the same after Unicode NFKD normalization, which folds diacritics and punctuation; and an order-invariant form that additionally sorts the name tokens. The third rule was necessary because the supplementary source records names as “Lastname, Firstname” for part of the covered period while the official platform records them as “Firstname Lastname”, a reordering that diacritic folding cannot repair. Names that appear more than once within a race-year cannot be matched one-to-one and were excluded from both sides before joining. The agreement statistic reported in the Results is computed on the order-invariant match, which is a broader and more permissive set than the exact match used in the previous version of this dataset description; the two figures are therefore not directly comparable, and the difference between the three rules is reported so that the effect of the choice is visible. The quantitative results of this comparison are reported in the Technical Validation subsection of the Results.
2.7. Data Merging
The two sources were merged into a unified dataset using a deterministic procedure. The official source was designated as primary; supplementary records were included only for race-years not represented in the official dataset. Overlap detection was performed by normalizing event names (removing year, brand prefixes, and championship designations) and matching on the combination of normalized name, year, and race type (full-distance or half-distance). When the same race-year was present in both sources, the official record was retained and the supplementary record discarded; ambiguous cases, such as events whose names differed between sources only by a sponsor prefix or a “European/Asian Championship” designation, were resolved by manual inspection of the normalized-name mapping before the merge was finalized. Applied across the two sources, this rule found 559 race-years present in both, resolved in favor of the official record in every case, against 613 present only in the official source and 382 present only in the supplementary source—1554 distinct race-years in the merged dataset. Normalization is what makes a collision detectable at all: matching the raw event names identifies none of the 559, the generic rules identify 537, and the championship-prefix rules account for the remaining 22. The manual inspection of the normalized-name mapping was carried out by one author and was not independently verified by a second. A source column was added to every record, taking the value “official” or “coachcox”, enabling downstream analyses to filter by data provenance. Fields available only in the official source (AWA points, distance completed per segment, ISO country code) were left empty for supplementary records.
2.8. Data Consolidation
Individual race JSON files were consolidated into a single comma-separated values (CSV) file using a streaming approach to minimize memory requirements. Finish status was harmonized across sources: the official platform provides boolean fields (finisher, DNF, DNS, DQ) which were mapped to a single categorical variable; the supplementary source provides a categorical field directly. Race type (full-distance or half-distance) was inferred from the event name: events containing “70.3” were classified as half-distance and all others as full-distance. Gender was derived from the age group field: categories prefixed with “F” or labeled “FPRO” were classified as female, and “M” or “MPRO” as male.
Full-distance and half-distance events were consolidated into one schema rather than kept apart because a shared schema is what makes direct comparison across the two distances possible, which distance-specific datasets preclude by construction. The race_type field preserves the distinction within the file, so pooling across distances remains a decision taken by the analyst rather than one imposed by the data.
Age-group definitions were checked for stability across the covered period, since boundaries that moved would compromise longitudinal reuse. The five-year bands from 18–24 to 75–79 are present in every year from 2002 to 2026, and no boundary changes at any point. What varies is only which of the oldest bands is populated: 80–84 is absent from 2006 to 2008, and 85–89 appears from 2015 to 2018 and again from 2022 onward. This reflects whether any athlete in those bands finished a given season rather than a change in the classification itself.
2.9. Ethical Considerations
The dataset analyzed in this study is publicly available. Both data sources provide unrestricted public access to their APIs without authentication, and the underlying race results are also publicly browsable on the IRONMAN website (
https://www.ironman.com/races, accessed on 28 March 2026) and on CoachCox (
https://www.coachcox.co.uk/imstats/, accessed on 27 March 2026). Self-imposed rate limiting (1.5–2.0 s between requests) was applied throughout data collection. Athlete names were retrieved from both sources because exact name matching was the only means of linking records across them for the cross-source validation reported in the Results. Names were used exclusively for that purpose. They were never published, transferred to third parties, or used to contact athletes, and they are retained on a single research workstation under the control of the first author, separate from any shared or deposited file. The name field is removed before deposit and is therefore absent from the released dataset.
The released dataset is de-identified rather than anonymous. Direct identifiers are removed, but the combination of event, age group, bib number, and exact split times could in principle be matched against the publicly accessible source results, which display athlete names. This residual risk is inherent to the source: race results are published by the organizers as a public record of competition, and the deposited file does not render any athlete more identifiable than the source already does.
A further 55 records were withdrawn from the deposited file because the supplementary source had applied its own redaction to those athletes, replacing both name and country with a redaction marker. That suppression is propagated here rather than reversed. The deposited file therefore contains 2,706,867 records, while the dataset described in this article comprises 2,706,922;
Table 1 marks which fields reach the deposit.
4. Discussion
We assembled and validated the largest openly available dataset of IRONMAN® triathlon race records to date, comprising 2,706,922 athlete-race records across more than 1500 events and 24 years. Three features distinguish this resource from previously published triathlon datasets: it unifies full-distance and half-distance events in a single schema, it is drawn from two separate data sources with documented cross-validation, and it provides separated first (T1) and second (T2) transition times at the population scale. The four-dimensional quality assessment—cross-source agreement, completeness, internal consistency, and physiological plausibility—supports the use of the dataset as a reliable basis for secondary analysis.
4.1. Comparison with Existing Datasets
At 2.7 million records, the dataset is more than 3.3 times larger than the largest previously published IRONMAN
® analysis, which examined 823,459 half-distance records [
6], and it spans both race distances rather than one. Earlier large-scale studies have been limited to single distances and, in the case of transition analysis, to small elite subsamples: the only dedicated IRONMAN
®-distance transition study was restricted to the annual top 10 World Championship finishers and could not separate T1 from T2 [
9], while the Olympic-distance evidence that T2 relates more strongly to placement than T1 has had no long-distance counterpart [
10]. An earlier community collection of IRONMAN
® results was released on Academic Torrents but was not peer-reviewed and lacked documentation of fields, collection methodology, and validation [
11]. The present resource follows the model of formally described, openly deposited datasets that have advanced reproducibility in other endurance sports [
12], and extends it to long-distance triathlon.
4.2. Practical Guidance for Reuse
Several properties of the dataset are relevant to its analytical reuse. Full-distance and half-distance events differ substantially in split-time distributions and in physiological demands: the median finish among finishers in this dataset is 5:53:16 at the half distance against 12:25:37 at the full distance, and the determinants of performance are not the same across a range that wide [
2]. Analyses should therefore stratify by the race_type field or explicitly justify pooling across distances. The source column allows users to restrict analyses to officially sourced records when fields unique to that source (AWA points, distance completed per segment) are required, or to use the full merged dataset when they are not, given the demonstrated equivalence between sources. The distance-completed fields localize the point of withdrawal along the race course with greater precision than inference from available splits, making them particularly informative for non-completion analyses. Because the deposited dataset excludes athlete names, longitudinal tracking of repeat participants is not directly supported in the public version; researchers requiring this capability can reproduce the full dataset from the provided scripts and match on name, accounting for spelling and name-change variations. Transition-time analyses should report the proportion of records with available data and consider restricting temporal analyses to post-2008 records, where coverage exceeds 80%.
4.3. Limitations
Three limitations concern how the dataset was assembled. First, event-level completeness cannot be quantified. No authoritative public register of every IRONMAN® and IRONMAN® 70.3 race-year held since 2002 exists against which to compute coverage, and automated discovery on the official platform was partly blocked by its content delivery network, so the series list is itself of unverified completeness. “Population-scale” in this article therefore refers to the scale of athlete-race records assembled and not to a claim of event-level completeness. Second, the two sources are not independent measurements. The supplementary source aggregates results published by the same timing operation that supplies the official platform, so their agreement demonstrates faithful transcription through two separate collection pipelines rather than external validation of the underlying times. Third, the 2026 season is partial: collection took place in March 2026, so that season holds only races run before that date and must not be read as a complete year.
Further limitations concern what the recorded values mean. Transition times are mat-to-mat intervals defined by each event’s timing provider rather than by us, and the size and layout of the transition area, the placement of the mats, and the congestion an athlete meets there are neither recorded nor guaranteed constant across events or across years; a comparison of transition times between events therefore carries an unmeasured component of course design. The dataset holds no course profile, elevation, air or water temperature, wind, or drafting regulation, so analyses of performance across events cannot control for the conditions under which those performances were produced. Courses, qualification rules and participant populations also changed over the 24 years covered, which makes any longitudinal comparison a comparison between eras as much as between athletes. Gender was inferred from age-group codes rather than self-reported, and a small fraction of records (0.5%) carried codes that could not be classified.
The remaining limitations concern the released file. Transition times are missing for 15.8% of records, and that missingness is not random but concentrated in older races with faster, more competitive fields; analyses spanning the earliest years should model this pattern rather than assume data are missing completely at random. Fields exclusive to the official source (AWA points, distance completed, ISO country code) are unavailable for the 24.6% of records drawn from the supplementary source, which effectively restricts analyses depending on them to the official subset. The public dataset contains no persistent athlete identifier, so longitudinal analyses rely on name matching in the reproducible full dataset, which is sensitive to spelling variation, transliteration of non-English names, and married-name changes; a pseudonymized identifier, derived deterministically from normalized athlete attributes, is a planned enhancement that would support longitudinal tracking without exposing names. The released dataset is de-identified rather than anonymous: direct identifiers are removed, but the combination of event, age group, bib number, and exact split times could in principle be matched against the publicly accessible source results, which display athlete names. Finally, both sources are public race-result services accessed through their own APIs; the dataset describes and validates these publicly available results rather than redistributing proprietary material, and reuse remains subject to the terms of use of the underlying platforms.
4.4. Research Directions
By unifying distances, sources, and transition-level detail at the population scale, the dataset enables lines of research that were previously constrained by data availability. Some are supported directly by fields the dataset contains: transition efficiency as a predictor of overall performance [
8,
14], epidemiology of race non-completion with dropout localized by the distance-completed fields, longitudinal trajectories of the sex difference in endurance performance [
15], data-driven classification of pacing phenotypes [
16], and the equity of the Kona qualification system through the AWA points field. Others would require linkage to information the dataset does not hold: return-to-competition patterns after the COVID-19 disruption can be described in aggregate but not attributed, since no field records why an athlete was absent, and any study of advanced footwear technology would need external data on what athletes wore, which no results platform publishes. We list the second group to mark the boundary rather than to claim it.
5. Conclusions
We present an openly available dataset of 2.7 million IRONMAN
® and IRONMAN
® 70.3 race records spanning 2002 to 2026. To our knowledge it is the largest openly available resource of its kind—more than three times the size of the largest previously published IRONMAN
® analysis, which examined 823,459 records [
6]—and the first to provide separated transition times at the population scale. Data quality was assessed along four dimensions: cross-source agreement, completeness, internal consistency, and physiological plausibility. Agreement between the two sources is close across all 559 race-years both of them hold, and internal consistency is high. The same assessment also marks where the resource is weaker: agreement is lower in the earliest seasons, transition times are absent for roughly one record in six, and the fields carried only by the official platform are unavailable for a quarter of the dataset. We report those limits alongside the strengths so that reuse can be judged against them. Together with the reproducible collection and merge scripts, the dataset provides a durable foundation for reproducible research on endurance performance, pacing, transitions, sex differences, non-completion, and qualification equity in long-distance triathlon.