GPX-powered pacing

Race the course you're
actually racing.

TriMaps turns a real race GPX file into a swim, bike and run pacing plan built from your target power, your pace, and the course's actual hills and wind, not a flat-road guess.

01

Real course physics

Bike splits are solved from a gravity, rolling-resistance and aerodynamic-drag power balance on the course's actual gradient and GPS heading, so climbs, descents and wind direction all show up in your time, not just distance.

02

Grade-adjusted run pace

Upload a run GPX and your flat off-bike pace is adjusted segment by segment for the terrain, using a running cost-of-locomotion model, plus a heat and humidity nudge for race-day conditions.

03

Segment-by-segment splits

Full elevation and speed charts, split tables by km or mile, and a nutrition & hydration plan sized to your race duration and the heat.

04

1:1 coaching, built in

Every TriMaps pacing plan can be backed by real coaching, from your first 10k to full IRONMAN, by a coach who's raced the distances he trains you through.

How it works

1
Pick or upload a course

Choose a real sample race or drop in your own bike and run GPX files.

2
Set your targets

Target bike power, off-bike run pace, swim pace, and expected race-day conditions.

3
Get your plan

A full swim, T1, bike, T2 and run pacing plan, with segment splits and a nutrition strategy, all built from the actual course.

Racing something this season?

1:1 coaching from £70/month, covering first 10k to full IRONMAN, with every race paced off the real course through TriMaps rather than a flat-road guess. Tell me what you're training for and I'll tell you honestly whether I can help.

Get started

TriMaps.

Upload a race's GPX file, set your power target, and get a swim–bike–run pacing plan built from the actual course.

Bike course

Real course GPX
Real GPS-recorded course files, bike and run, grouped by race distance.

Bike effort

Hold this power and the model solves your real speed segment by segment from the course's actual hills and headwind/tailwind, so bike splits won't be one flat number throughout, and that's expected.
Add your FTP and TriMaps will check your target is a sensible intensity for this distance, and show Normalised Power, Intensity Factor and TSS with your plan.
No power meter needed. Tell TriMaps what you comfortably hold on a flat road at the effort you'd race at, and it works out the equivalent power, then rides that effort over the real course. Your speed on the course will come out lower than this number, and that gap is the thing worth knowing.
Advanced aerodynamics

Run course

Real course GPX
This is your flat, comfortable pace. The run splits below adjust it for the course's hills plus heat and humidity, so the pace you see won't always match this number exactly. That's the model working, not an error.
Defaults to match your bike course. Pick a different race here to mix and match.

Swim & transitions

Conditions

Manual input
Enter expected race-day conditions, or pick a sample course above to load its typical conditions.

Course profile

Example inputs loaded, edit anything to build your own
Bike distance–
Elevation gain–
Steepest grade–

Pacing plan

Adjusted for hills, wind, heat & humidity
Swim–
T1–
Bike–
T2–
Run–
Total–

Bike intensity

Steady-power plan
Normalised power–
Average power–
Variability index–

Segment splits

Bike
Run
Elapsed time in each table restarts at zero for that discipline, not from the race start.

Nutrition & hydration

Race-day notes

Estimates assume steady effort at your target power and pace, with no drafting, mechanical stops, or late-race fade. Treat this as a planning baseline, not a guarantee. Bike speed is solved from a gravity + rolling-resistance + aerodynamic-drag power balance on your course's actual gradient profile, with wind treated as a head/tailwind component from the course's real GPS heading at each point; downhill speed is capped for safety. Run pacing (when a run GPX is uploaded) is grade-adjusted using a running cost-of-locomotion model, so hills cost more than their distance alone suggests, and is then nudged slower for heat and humidity using a simple heuristic: not a rigorous physiological (WBGT) model.

How the numbers are calculated
Bike time comes from solving power = rolling resistance + climbing + aerodynamic drag for speed on every segment of the course's elevation profile, then summing segment times. Your position and road-surface choices set CdA (drag area) and Crr (rolling resistance); both are overridable under Advanced. Wind is applied per segment using the course's actual GPS-derived heading, so a headwind slows a segment and a tailwind assists it, so the same course rides differently depending on which way you're pointed into the wind. Air density is estimated from your entered temperature and the course's average elevation (thinner air at altitude means less drag), and can be overridden manually. Run pacing applies a grade-adjustment curve (based on Minetti's running cost-of-locomotion model) to your flat off-bike pace when a run GPX is supplied, so a hilly run course slows you down realistically instead of using one flat number end to end; a heat/humidity heuristic then applies a small extra slowdown above roughly 17°C effective temperature: negligible on a mild day, more noticeable in genuine race-day heat. Treat the heat adjustment as a rough guide, not a medical or physiological guarantee.
Quick estimate, no course needed

Base Triathlon
Calculator.

A simple flat-course time estimate from your swim pace, bike speed and run pace. No GPX file needed. Every distance is editable, so a course that's a bit short or long still works. For a plan built from a real course's hills, wind and heat, use the full Course & Pacing tool instead.

Race distance

750m swim · 20km bike · 5km run
Course a little shorter or longer than standard? Edit the distance field in each card below. A preset just fills them in as a starting point, and editing one switches to Custom.

Swim

Bike

A flat, no-wind average, not solved from power like the Course & Pacing tool.

Run

Transitions

Estimated finish time

Flat-course estimate
Swim–
T1–
Bike–
T2–
Run–
Total–

This assumes a flat course and steady effort throughout, with no hills, wind or heat adjustment. It's a quick ballpark for comparing paces or setting a rough goal, not a race-specific plan. Sample paces and distances are just a starting point, so edit anything.

For the run you've just done

Share a Run.

Drop in the GPX of a run or ride you've finished and TriMaps draws the route the way it appears in the tool, coloured low ground to high. You get a see-through PNG: no white box, no background, just the route and your numbers. Put it over a photo from the day in Instagram, Stories, wherever you like.

Your activity file

Export from Garmin Connect, Strava, Coros, Wahoo or anything else that gives you a GPX. If the file has timestamps in it, your time and pace come through too. If it doesn't, you still get distance and climbing. On Strava you need the website rather than the app: open the activity, then the three-dot menu, then Export GPX.

Title

Keep it short. Long titles get shrunk to fit rather than wrapping into the route.

How it sits on the photo

This only swaps the text and wordmark between off-white and near-black. The route keeps its colours either way.

Preview

On a phone, Share it is the quick way: it opens your usual share sheet, so the card goes straight to Instagram or into your camera roll. You can also press and hold the picture above to save it. On a computer, use Download the PNG. The checkerboard is only showing you where the card is see-through, and isn't in the file you get.

Plain English, no jargon

How It Works.

If the main tool looked like a cockpit full of switches, start here. This page explains what TriMaps is doing, what every box means, and what to actually do with the plan on race day.

The idea in one paragraph

Most people work out their race time by taking a speed they've ridden before and multiplying it by the distance. That works fine on a flat road on a still day. It falls apart on a real race course, because a course isn't a distance. It's a specific set of hills, in a specific order, with the wind pointing a specific way.

TriMaps takes the actual GPS file of the race, breaks it into fifty-metre pieces, and works out how fast you specifically would travel over each one, given your effort, your weight and the wind that day. Then it adds them up. The answer is usually not the number people expected, and the difference is the point.

Same rider, same effort, Roth9:56
Same rider, same effort, Leeds10:42

Two iron-distance races, one athlete, identical settings. Forty-six minutes apart, entirely because of what the courses are made of. No average-speed calculator can tell you that.

Do I need a power meter?

No. Use “I ride by speed”.

On the Course & Pacing page, the Bike effort box has two tabs. Pick I ride by speed and just tell it what you comfortably average on a flat road at the effort you'd race at. It works out the rest.

It will then show you what that same effort produces on the actual race course, almost always a lower number. That gap, in minutes, is the whole reason this site exists.

If you do ride with power

Use I ride with power and enter the watts you plan to hold. If you also know your FTP, add it. TriMaps will tell you whether the number you've chosen is a sensible intensity for the distance, or whether you're about to ride yourself into a walk.

That check is the single most useful thing on the page. Most blown-up marathons are decided on the bike.

Every box, explained

Race distance Sprint / Olympic / 70.3 / Full
Sets the swim distance and the run distance, and tells the tool how hard you ought to be riding. It also jumps you to a matching sample course where one exists.
Bike course
Either pick a real race from the list, or upload the GPX file of your own course. The list is real GPS-recorded race files. Where the organiser publishes an elevation figure, the course is calibrated against it; where no figure exists, the profile is left as the file recorded it.
Target power (watts)
The effort you intend to hold on the bike. Not your maximum: the number you could still be producing five hours later.
Your flat-road average
The speed-mode alternative. What you'd hold on a flat road, on your own, at race effort. Be honest here rather than optimistic; the whole plan hangs off it.
Rider weight and bike + kit
Weight barely matters on the flat and matters enormously uphill. Include everything you'll carry: bottles, tools, nutrition.
Riding position
How much air you're pushing, and the single biggest lever on your bike time. The default assumes a normal age-group setup on a TT bike or clip-on bars. Only pick fitted, well-drilled TT position if you've actually been fitted and hold it comfortably for hours, because choosing a position you don't really ride will flatter your finish time.
Road surface
How much the road drags on your tyres. Fresh tarmac is fast, chip-seal is slow, and the difference over 180km is real.
Off-bike flat pace
Your comfortable running pace after the bike, on flat ground, not your standalone 10k pace. The plan then slows it for hills and heat, so the paces you see won't match what you typed. That's the tool working, not a bug.
Conditions
Air temperature, humidity, wind speed and the direction the wind is coming from. Picking a sample race fills in typical conditions for that event; change them to whatever the forecast says.
Advanced aerodynamics
Safe to ignore. If you've been wind-tunnel tested or you know your rolling resistance, you can override the estimates here. If those words mean nothing to you, the defaults are fine.

Reading your plan on race day

01

Follow the effort, not the split

The one number to race off is your target power or your target effort. The segment splits are what should happen if you hold it. They're a description, not an instruction. Chasing a split into a headwind is how races end badly.

02

Expect the speeds to swing

You'll see 48 km/h in one block and 25 km/h in another. That's the course, not an error. A steady effort produces wildly unsteady speeds, and that's exactly what you want.

03

Read the race-day notes

These call out the steepest pitch, the longest climbing block, and where the wind will hurt. If you remember one thing from the whole page on race morning, make it those three.

04

Treat the run pace as a ceiling

The run assumes you rode the bike sensibly and didn't fall apart. Ride too hard and no pacing plan survives it. Build in a little room and be pleased to beat it.

The jargon, decoded

FTP Functional Threshold Power
Roughly the highest power you could hold for an hour. It's the reference everything else is measured against. Optional here, but if you know it the tool gets much more useful.
NP Normalised Power
What your ride felt like, rather than what it averaged. Surging up climbs costs your body more than the average suggests, and NP captures that. Ride perfectly evenly and it lands on your average.
IF Intensity Factor
Your Normalised Power as a fraction of your FTP. 0.70 means you rode at 70% of your hour power. Full-distance racing lives around 0.64–0.74; a 70.3 around 0.76–0.84. Go higher and the marathon collects the debt.
TSS Training Stress Score
One number for how much the ride took out of you, combining how hard and how long. A full-distance bike leg typically lands somewhere around 280–330.
VI Variability Index
Normalised Power divided by average power: how evenly you rode. 1.00 is metronomic. Your plan is built at a steady effort, so it lands at essentially 1.00; if your actual race file comes back at 1.10 or higher, you burned matches the course never asked for.
Grade-adjusted pace
Running uphill costs more than the distance suggests, and running downhill gives less back than you'd hope. The tool adjusts your flat pace for the gradient at every point of the run course.
CdA and Crr
Drag area and rolling resistance: how much air you push and how much the road grabs your tyres. You set them by choosing a riding position and a road surface; the numbers themselves live under Advanced.

What it can't tell you

TriMaps assumes you hold a steady effort, don't stop, don't get a mechanical, and don't fade. Real races have all four. Treat the finish time as a well-argued baseline, not a promise.

The heat adjustment is a rough rule of thumb, not physiology. Nutrition figures are generic starting points. Sweat rates and stomachs vary enormously, so test them in training rather than discovering the truth at kilometre 140.

And it knows nothing about you beyond the numbers you typed in. It can't see that you've had a bad month, or that you always go out too hard. That's what a coach is for.

Still stuck?

Send me the race you're doing and what you're aiming for, and I'll walk you through it.

1:1 coaching + race-day pacing

Coaching Plans.

With TriMaps you don't just get a plan or a coach. Every athlete I train gets both, with races paced off the real course instead of a guess.

Lewis Brett finishing IRONMAN Hamburg; the finish-line board reads LEWIS BRETT, M25-29, 9:37:46
IRONMAN Hamburg 2025 · 9:37:46 · M25–29
Built by a coach who's raced it

Lewis Brett LB Coaching Performance

Multiple-time IRONMAN finisher (PB 9:37), with 70.3s and marathons behind that too, plus a sub-11-hour Welsh 3000s: all fifteen 3,000ft peaks in Snowdonia, against the 24 hours most people give themselves. I've coached athletes from their first 10k through to full IRONMAN distance, using the same approach every time: real structure, real results, built around real life, not a plan that only works if nothing else in your world does. TriMaps grew out of planning my own athletes' races off the actual course instead of guesswork, and it's now built into how I coach.

Work with me

1:1 Coaching

1:1, ongoing
£70/month

Personal coaching from first 10k to full IRONMAN, with your race plans built and paced through TriMaps as part of the service, not a bolt-on. Structure that fits around your actual life, and a coach who's raced the same distances he's coaching you through.

First 10k to full IRONMAN Road, tri and mountain Built around real life Race pacing via TriMaps included

Not ready yet? Start free

8-Week Novice Plan

Free · 9 pages · PDF

A beginner-friendly first block for someone new to triathlon, no race required. Six sessions a week across swim, bike and run, building from zero intensity in week 1 to your first real intervals by week 4, a peak week, a deliberate recovery week, and a final week that proves the progress against your own smartwatch numbers.

RPE-based effort Smartwatch + turbo trainer Long ride builds 60→90 min
9 pages, free, no sign-up. Print it or keep it on your phone.
How the eight weeks build
WEEK 1
Foundations, zero intensity
WEEK 2
Building endurance
WEEK 3
Introducing effort
WEEK 4
First real intervals
WEEK 5
Consolidation + first brick
WEEK 6
Peak week
WEEK 7
Recovery
WEEK 8
Progress check

Anyone new to structured exercise, or with any underlying health concerns, should check with a doctor before starting. More plans and distances are on the way.

Racing something this season?

1:1 coaching from £70/month, covering first 10k to full IRONMAN, with every race paced off the real course through TriMaps rather than a flat-road guess. Tell me what you're training for and I'll tell you honestly whether I can help.

Get started