Using AI for my ultrarunning strategy

Published by

on

ChatGPT logo

I have a 100 km race coming soon that I would like to attempt to complete within 12 hours. This is something I have wanted to do for a long time, and I came within 7 minutes of achieving it last year (2024).

The first race of this year might be my best chance, so far, to attempt this. The Brighton to London 100 km race starts just a short walk from where I live, and after getting over the South Downs, it remains quite runnable, although undulating, with approximately 1600m of total elevation gain.

Also, there is a fancy gold medal if I manage to complete the race within 12 hours!

Pacing

With the help of Artificial Intelligence (AI), by way of ChatGPT, and using the right chat prompts, I have produced the following pacing strategy, which, assuming I can stick to it, should see me finish the race in approximately 11 hours and 50 minutes.

SegmentTotal Dist (km)Elev. Gain (m)Walk TimeRun Dist (km)Run PaceRestSegment TimeCumulative TimeTime of Day
Start→CP116.6743704:0016.2707:00/km00:0001:56:0401:56:0407:56 AM
CP1→CP213.6517202:0013.4506:40/km00:0001:30:0503:26:0909:26 AM
CP2→CP319.6340404:0019.2307:08/km03:0002:18:3305:44:4211:44 AM
CP3→CP417.1322702:0016.9306:51/km03:0001:58:2807:43:1001:43 PM
CP4→CP520.8633503:0020.5607:00/km03:0002:27:2810:10:3804:10 PM
CP5→Finish13.3700:0013.3706:38/km00:0001:39:2211:50:0005:50 PM

The above table tells me for each segment:

  • The distance I need to complete
  • The total elevation gain per segment
  • The amount of time I will walk at 10km per hour per 100 meters of elevation gain
  • The distance I should cover whilst I am running
  • The pace in km’s I should run at
  • 3 minutes of rest time at the last 3 checkpoints
  • How long it should take me to complete each segment
  • Cumulative time
  • The time I should reach each checkpoint

To get ChatGPT to produce the above table took many prompts and corrections of previous prompts, but when I got the table how I wanted it I simply asked ChatGPT:

If I had to write a single prompt to get you to produce this table, what would it say?

and its response was:

Create a pacing strategy for a 101.31 km ultramarathon with the following segments and elevation gains:

  • Start to CP1: 16.67 km, 437m gain
  • CP1 to CP2: 13.65 km, 172m gain
  • CP2 to CP3: 19.63 km, 404m gain
  • CP3 to CP4: 17.13 km, 227m gain
  • CP4 to CP5: 20.86 km, 335m gain
  • CP5 to Finish: 13.37 km

Target finish time is 11 hours and 50 minutes. Assume I walk at 10:00/km for a fixed amount of time per segment:

  • 4 minutes for Start→CP1
  • 2 minutes for CP1→CP2
  • 4 minutes for CP2→CP3
  • 2 minutes for CP3→CP4
  • 3 minutes for CP4→CP5
  • 0 minutes for CP5→Finish

Also include 3-minute rest stops at CP3, CP4, and CP5. Calculate the appropriate run pace for each segment to meet the target time.

Format the output as a markdown table with these columns:

  • Segment
  • Total Distance (km)
  • Elevation Gain (m)
  • Walk Time
  • Run Distance (km)
  • Run Pace
  • Rest Time
  • Segment Time
  • Cumulative Time
  • Time of Day (assuming race starts at 6:00 AM)

Looking at a pacing strategy in a table like this is very useful. The average paces per segment look achievable. I think I am being a bit optimistic with my walking time allowance per segment, but I will stick with 1 minute per 100m of elevation gain for this race, but see if I can stick to it.

Nutrition

First, I’d like to know how many calories I am likely to burn between segments.

Here is the formula ChatGPT uses:

Running on flat terrain:
→ ~1 kcal per kg per km
→ 79 kcal/km

Elevation gain:
→ ~10 kcal per 10 m gain
→ 1 kcal per meter gained

Walking burns slightly fewer calories per km (roughly ~65–70% of running)

The rule of thumb:

“Running 1 km burns roughly 1 kcal per kg of body weight.”

This comes from studies in exercise physiology, including sources like:

  • “Lore of Running” by Tim Noakes (classic reference)
  • ACSM (American College of Sports Medicine) guidelines
  • Studies measuring oxygen consumption (VO₂) during steady-state running

The idea is that:

  • Running 1 km requires about 1 kcal/kg/km regardless of speed (on flat ground)
  • Walking is more efficient, usually closer to 0.65–0.75 kcal/kg/km

SegmentDistance (km)Elev Gain (m)Flat Burn
(79 kcal/km)
Elevation Burn
(1 kcal/m)
Total Burn (approx.)
Start→CP116.6743713164371750 kcal
CP1→CP213.6517210781721250 kcal
CP2→CP319.6340415504041950 kcal
CP3→CP417.1322713532271580 kcal
CP4→CP520.8633516483351980 kcal
CP5→Finish13.370105601050 kcal

Impressive stuff, and from experience it looks accurate enough.

The following is the nutrition plan it has suggested.

SegmentCumulative TimeTime of DayEst. Calories BurnedCalories to ConsumeCarbs (g)Fluids (ml)Electrolytes
Start→CP101:56:0407:56 AM1750 kcal700 kcal175 g500–7501 salt tab
CP1→CP203:26:0909:26 AM1250 kcal520 kcal130 g500Drink mix
CP2→CP305:44:4211:44 AM1950 kcal780 kcal195 g7501–2 salt tabs
CP3→CP407:43:1001:43 PM1580 kcal660 kcal165 g500–750Drink mix
CP4→CP510:10:3804:10 PM1980 kcal870 kcal218 g750–10001 salt tab
CP5→Finish11:50:0005:50 PM1050 kcal460 kcal115 g500Drink mix
Total9560 kcal~3990 kcal~998 g3500–4750 ml~5–7 salt tabs / mixes

I used the same prompt:

If I had to write a single prompt to get you to produce this table, what would it say?

and it responded with:

“Please create a nutrition plan for an ultramarathon race, assuming a target finish time of 11 hours and 50 minutes. The race consists of multiple segments, with a variety of terrain and elevation gains. The table should include the following columns:

  1. Segment – Name of the segment (e.g., Start→CP1, CP1→CP2, etc.)
  2. Cumulative Time – The time at the end of each segment.
  3. Time of Day – The expected time of day for each segment based on a 6:00 AM start.
  4. Estimated Calories Burned – Use a formula of 1 kcal per kg per km for flat terrain, and adjust for elevation gain (approx. 100 kcal per 100m of ascent).
  5. Calories to Consume – Assume 90g of carbs per hour (360 kcal/hr), and calculate the total for each segment.
  6. Carbs (g) – Based on 90g of carbs per hour.
  7. Fluids (ml) – Estimate 500–1000 ml per hour of fluid, based on segment length and difficulty.
  8. Electrolytes – Specify electrolytes based on common fueling strategies (e.g., salt tabs, drink mix).

Also, include a totals row at the bottom summarizing the total calories burned, calories to consume, carbs, and fluid intake for the entire race.”

I am not convinced it would be able to produce the table without me having produced the pace strategy table first. As it doesn’t include specifics like the distances between checkpoints, and elevation gain.

I am comfortable with the 90 grams per hour, as I am sure I have consumed more than this in numerous races before without having issues with digestion. But it is certainly nearing the boundary of what I would feel comfortable with consuming.

What is interesting to see, and it is illustrated well in the table, is the lack of our ability, generally, to maintain our energy reserves during these longer ultra distance races. At no point during the entire race, in any of the segments, will I be able to recover even half of the calories I will burn.

The following is a nutrition plan it has suggested using my preferred products.

SegmentDurationCarbs
Target
PFH 90g
Gels
PFH 30g ChewsTailwind (Scoops)PFH 1500
Salt Tabs
Coca-Cola (150ml)
Start → CP11h56m175g12110
CP1 → CP21h30m130g1110 (in Tailwind)0
CP2 → CP32h18m195g20–1 (optional)0–1 (optional)1–21 (start sipping)
CP3 → CP41h58m165g1210 (in Tailwind)1
CP4 → CP52h27m218g21111–2
CP5 → Finish1h40m115g11 (or Tailwind)0–1 (if chews skipped)0 (in Tailwind)2

Product Key:

  • PFH 90g gel = 90g carbs
  • PFH 30g chew = 30g carbs
  • Tailwind (1 scoop) = ~25g carbs + ~300 mg sodium
  • PFH 1500 salt tab = 1500 mg sodium
  • Coca-Cola (150ml) = ~16g carbs, ~64 kcal, ~15 mg sodium, caffeine hit

The above looks very achievable to me. Infact, I’m sure I’ve consumed more than this in races before. It is nice to see a clear segment-by-segment break down of exactly how much of each of my primary fueling products I need to consume.

Overall, it was very impressive how easy and quick it was to work with ChatGPT to produce this data.

I will report back on exactly how useful and accurate it was after the race.


Discover more from Chris runs ultras

Subscribe to get the latest posts sent to your email.

One response to “Using AI for my ultrarunning strategy”

  1. Brighton to London 100k – Chris runs ultras Avatar

    […] formulated a pacing and nutrition strategy with the help of AI (these can be found here). I specifically wanted to […]

Leave a reply to Brighton to London 100k – Chris runs ultras Cancel reply