



One data field that answers the three questions that decide a long race: When do I reach the next aid station? Am I going to make the cutoff? When do I eat and drink?
CHECKPOINTS & AID STATIONS
- Enter your race plan once – the field guides you checkpoint by checkpoint
- Distance and live ETA to the next aid station, with service icons: water, iso drink, cola, gel, food, soup, drop bag, toilets, first aid, resting
- Progress bar with checkpoint dots, and remaining climb (D+) to the next one
CUTOFFS – THE HEART OF IT
- Live countdown of your reserve vs. the official cutoff
- REQUIRED PACE: the slowest pace that still makes the cutoff
- The reserve counts the climbing ahead (100 m up = 1 km on the flat), so the warning comes below the hill, not halfway up
- CRITICAL CUTOFF: your pace is projected onto every remaining cutoff, and the field warns you when a later checkpoint is the tight one
- Green / amber / red at a glance, full-screen vibrating alert when time gets tight
PACING THAT DOESN’T LIE
- Press LAP at each aid station: it logs your split AND snaps the distance to the official course marker, so GPS drift stops corrupting your ETAs
- Every press answers on screen („CP2 OK −230 m“ or „NO CP NEARBY“). Got lost? Another press while the confirmation is up switches one checkpoint back
- Rolling 10-minute pace instead of a whole-race average
FUELING COACH
- Eat & drink reminders on your schedule, full-screen with vibration
- Custom reminders in one line: Salt|45; Caffeine|120|75 – each with its own interval and start, one-shot timers too (Headlamp|0|300)
- Custom messages at any kilometer („Only a marathon to go!“)
- Reminders, checkpoints and cutoffs each have their own tone and vibration pattern – pick Off / Vibration only / Vibration + tone / Tone only / Silent for each
AFTER THE RACE
- Finish recap on the watch: time, average pace, D+, aid-station time and finish margin
- In Garmin Connect: checkpoint splits with your cutoff margin and aid-station time, a required-speed chart and the finish margin
BUILT TO BE READ AT A GLANCE
- Every value is bold and sized to read mid-stride, not shrunk to fit more in
- Distance and cutoff margin are the two big numbers; your pace and the pace you NEED sit side by side
- Tight on the cutoff? The margin fills amber, then red with inverted digits once you are past it – readable even if you are colour-blind
- Optional bottom row: heart rate coloured by HR zone, plus a battery gauge
- Dark or light theme (light has its own palette). Works in any activity, in full / half / small layouts. Metric & statute. In 20 languages.
SETUP
1. Add TrailRace+ to a data screen: hold MENU → Data Screens → a 1-field layout → Connect IQ → TrailRace+.
2. Alerts show on the TrailRace+ screen out of the box. To also get them over other screens (map): hold MENU → activity settings → Alerts → Add New → Connect IQ Data Fields → TrailRace+ → On.
3. Turn Auto Lap OFF but keep the Lap Key on – the field uses LAP as its checkpoint signal and guards against automatic laps as a backup.
4. Enter the race plan (app settings), one checkpoint per „;“ as km|name|cutoff HH:MM|services|D+ — e.g. 12.4|Rozdrozi|13:30|WF|420; 26.8|Chata|16:00|WFB|780; 42|Finish|20:00||1150. Services: W=water, I=iso, C=cola, G=gel, F=food, S=soup, B=drop bag, T=WC, D=first aid, R=rest. Empty cutoff = no limit. Last entry = finish.
5. Optional: eat/drink reminder intervals, custom reminders, cutoff shift, climb weight, custom messages, theme, units.
Permissions: FIT recording, sensor history (temperature), user profile (HR zones), data field alerts.
1What TrailRace+ does
One data field that answers the three questions that decide a long race: When do I reach the next aid station? Am I going to make the cutoff? When do I eat and drink?
- Checkpoints — distance and a live ETA to the next aid station, with icons for the services waiting there.
- Cutoffs — a live countdown of your reserve against the official limit, and NEED: the slowest pace that still makes it.
- Fueling — reminders for eating, drinking and anything else (salt, caffeine, headlamp) on your schedule.
- Honest pacing — a rolling 10-minute pace instead of a whole-race average, and GPS drift snapped back to the official course markers with a press of LAP.
The field works in any activity (run, trail, ultra, hike, ride…) and adapts to full, half and small field layouts.
2Installation & first setup
- Install the field from the Connect IQ Store (via the Connect IQ phone app, or from the web).
- Add it to a data screen: in the activity, hold MENU → Data Screens → a 1-field layout → Connect IQ → TrailRace+. One big field is the sweet spot — but the field also renders in half and small layouts.
- Enable alerts over other screens (recommended): alerts on the TrailRace+ screen work out of the box. To have them reach you on the map or any other screen: hold MENU → activity settings → Alerts → Add New → Connect IQ Data Fields → TrailRace+ → On.
- Turn Auto Lap OFF in the activity settings. The field uses the LAP button as the „I’m at a checkpoint“ signal — an automatic lap every kilometer would interfere. The field has its own guard as a backup (see settings), but turning Auto Lap off is the reliable way. Keep the „Lap Key“ itself enabled — without it no lap is recorded and the field has no input at all.
- Enter the race plan — in Garmin Connect / Connect IQ app: your device → Activities & App Data → Data Fields → TrailRace+ → Settings. The plan format is covered in the next chapter.
3The race plan
The plan is one line of text. Checkpoints are separated by a semicolon, the fields of a checkpoint by a pipe:
km|name|cutoff HH:MM|services|D+ 12.4|Rozdrozi|13:30|WF|420; 26.8|Chata|16:00|WFB|780; 42|Finish|20:00||1150
| Field | Required | Meaning |
|---|---|---|
km | yes | The checkpoint’s official course kilometer (or mile). Decimal comma or dot („26,8“ = „26.8“). |
name | yes | Checkpoint name — shown in the header and in alerts. |
cutoff | no | The time limit as wall-clock time, e.g. 16:00. Race crossing midnight? Keep counting past 24 (25:30 = 1:30 am). Empty = no limit. |
services | no | Letters for the aid-station services — see the table below. |
D+ | no | Climb (m) since the previous checkpoint — the field then shows how much climbing remains to the next CP. |
Aid-station services
| Letter | Icon | Meaning |
|---|---|---|
W | drop | water |
I | cup with straw | iso drink |
C | bottle | cola |
G | sachet | gel |
F | fork & knife | food |
S | steaming bowl | soup |
B | bag | drop bag |
T | figure | toilets |
D | cross | first aid / doctor |
R | bed | resting / sleeping |
The last entry of the plan is the finish. Plan too long for one field? Continue seamlessly in Race plan (part 2) through (part 4) — the field joins them before parsing (4×250 characters in total).
4The start-line check
Until you start the timer, the field shows a plan summary — your last chance to verify on the start line that the watch knows the same race you do:
- 87 km · D+ 4450 — total distance and the sum of the climb you entered.
- 7x CP · 7x LIMIT — checkpoint count and how many carry a cutoff. If a cutoff shift is set, it shows right here (+15′) — a value forgotten from the last race can’t hide.
- CP1 14 km Ostravice — the first checkpoint; an ordering mistake is visible at a glance.
- Reminders: 3 — how many reminders are active.
- GPS — turns green once the watch has a good fix. A red ! N ignored appears here instead if the plan, messages or reminders contain a broken row.
5The main screen
- Header — number and name of the next checkpoint + its service icons. On the right, LIMIT 20:42: the cutoff as wall-clock time.
- Two big numbers — left: distance to the checkpoint; right: cutoff reserve in minutes. The reserve is green, fills amber as it shrinks, and turns red with inverted digits once you’re past the limit — readable even if you’re colour-blind.
- Progress bar — orange = covered, dots = checkpoints, the white dot = you.
- PACE — rolling pace over the last 10 minutes. It doesn’t lie: it recovers quickly after a climb, unlike a whole-race average.
- NEED — the slowest pace that still makes the cutoff. As long as NEED is slower than your PACE, you’re fine. When a later limit becomes the tight one, the column switches to it and shows >CP4.
- D+ CP — climbing left to the next checkpoint (if your plan has D+). FINISH — estimated finish-line arrival time.
- Bottom row — clock + race time, or heart rate in a pill coloured by your HR zone, or HR + battery (see the Bottom row setting).




6Reserve and climbing
The big number top right is your reserve: how many minutes you will have left on the next checkpoint’s cutoff if you keep moving the way you did over the last ten minutes. Since version 1.6 it also counts the climbing still ahead of you.
Why climbing matters
A flat kilometre takes a few minutes; a kilometre up a steep hill takes far longer. If the field only counted distance, it would show a relaxed reserve on the flat below a climb that will cost you an hour, and warn you only halfway up. So it uses the rule ITRA and UTMB work with: 100 metres of climbing count as 1 km on the flat.
And the other way round: a climb before a descent
On a climb you move slowly but gain height, so the field counts the metres you climb as well as the horizontal ones. Halfway up you don’t get a projection as if you would crawl like that all the way to the finish, nor a needless CRITICAL CUTOFF alert.
Where the field gets the climbing from
- From the race plan: the fifth column of each checkpoint is the segment’s D+ (see chapter 3).
- On screen it shows as D+ CP: the plan’s D+ for the segment minus what you have climbed since the last checkpoint.
- A segment without D+ in the plan counts as flat, so it pays to fill D+ in – race road books usually list it.
- Descents are not counted; downhill is treated as flat.
The Climb weight setting
100 m = 1 km fits most courses. If you know your course, adjust it in the Climb weight setting:
| Value | When to use it |
|---|---|
| 100 | Default – typical mountain and trail courses. |
| 70–90 | Steep technical climbs: chains, scree, boulders. Every metre up costs more time there. |
| 120–150 | Gentle, runnable hills you run up nearly all the way. |
| 0 | Ignore climbing – the reserve comes from distance alone, as up to version 1.5. |
PACE and NEED stay in min/km. NEED is the average pace that still makes the cutoff: the remaining kilometres divided by the remaining time, which holds with or without hills.
7LAP at aid stations
One habit that straightens out your whole race: press LAP at every aid station. Every press answers right on the screen, so you always know what just happened.
- It logs a split — laps in Garmin Connect then match the legs between checkpoints.
- It snaps the distance to the official course marker. GPS drifts in mountains and forest — after 60 km it can be off by kilometers. Pressing LAP says „I am exactly at km 26.8 right now“ and every estimate (ETA, NEED, FINISH) straightens out.
- You see the confirmation instantly — a green CP3 OK alert with the checkpoint’s name and the applied correction (say −230 m). You know the press took, and you see how far GPS had drifted. The watch’s native lap banner (lap number, time, pace) covers it for ~10 s — the confirmation therefore holds for 20 s and waits for you once the banner clears.
- Pressed far from any checkpoint? The field shows NO CP NEARBY and changes nothing — a press beyond the „LAP window“ (default 400 m) doesn’t snap the distance. Fix a mis-press simply by pressing again at the real station.
- Did the confirmation name a different checkpoint than the one you’re standing at? Press LAP again while the confirmation is still up — the candidate steps one checkpoint back and the calibration recomputes immediately. Every press restarts the 20 s confirmation window (presses go through the watch’s native lap banner); over-pressing is fine, the cycle comes around and returns you to the original pick.



Passed a checkpoint without pressing?
The field advances by GPS on its own and announces it: CP2 PASSED — no LAP, distance from GPS. Nothing is lost. Large GPS drift is covered too: when that announcement comes before you physically reach the station (common on long trails), the checkpoint stays „open“ — a LAP press at the real aid station still snaps the course onto it, even when the offset is bigger than the window.
The LAP window
The LAP window setting says how far from a checkpoint a press still „takes“ and snaps the distance. The default 400 m is a sensible middle ground: the window must be bigger than the GPS drift it exists to fix — and smaller than something that would catch accidental presses in the middle of nowhere. On long courses with heavy drift, raise it freely; don’t lower it — a 50 m window effectively disables recalibration (drift is usually bigger).
Auto Lap
The watch’s automatic laps send the field the same signal as your thumb — that’s what the default-on Ignore Auto Lap protection is for: a lap arriving exactly one kilometre (or mile) after the previous one, away from any checkpoint, is discarded. Even so, turn Auto Lap off in the activity profile for a race — the protection is a safety net, not a replacement.
8Alerts
Alerts are full-screen, hold for ~12 s (LAP confirmations 20 s, to outlive the watch’s native lap banner) and then clear themselves. Each category has its own vibration pattern and tone, so the wrist can tell them apart — from each other and from the watch’s own alerts: reminders = one long pulse + the message tone, checkpoints = two pulses + the low tone, cutoffs = three pulses + the high tone. For each category you pick Off / Vibration only / Vibration + tone / Tone only / Silent (screen only) separately (three „Vibration & tone – …“ settings; vibration-only is the default). Reminders due at the same moment arrive as one combined alert („EAT! + DRINK!“).







Critical cutoff
The field doesn’t watch only the nearest cutoff. It continuously projects your pace onto every remaining limit — when the tight one turns out to be a checkpoint three stations ahead (typically after a long climb), a red CRITICAL CUTOFF alert names it and the NEED column switches to it (label >CP4). The alert doesn’t loop: the next one comes only after another 15 minutes of reserve are lost, and never sooner than 5 minutes apart.
9On the trail
A quick playbook: “this happens → you see → you do”. These are exactly the situations a long race throws at you. Underlined names are clickable — they show what it looks like on the watch.
An aid station is coming up
You see: with the station’s name, distance (“0.8 km”) and its service icons. You do: run on, and press LAP when you’re actually there. No rush — the alert is just the announcement; it’s your press on the spot that snaps the course.
You pressed LAP at the station
You see: a green with the correction (say −230 m). You do: nothing — done. The number just tells you how far GPS had drifted since the last checkpoint; a big number isn’t an error, it’s the very thing the press is for.
You pressed LAP and got “NO CP NEARBY”
It means: by the app’s reckoning you’re farther than 400 m (the LAP window) from every checkpoint — a mis-press, or heavy drift. You do: nothing broke (calibration is untouched); carry on and press again right at the station. And if you’re standing at an aid station right now (say, after getting lost): press LAP once more while is up — the app snaps onto the last passed checkpoint, and further presses let you switch to the right one. If this message greets you at every station, raise the LAP window setting.
“CP2 PASSED” came, but there’s no station in sight
It means: GPS drifted beyond the window — the app thinks the checkpoint is behind you while you’re still running towards it. Meanwhile the distance shows a blue negative number (“−230 m”) — how far past the checkpoint the app thinks you are, and exactly what your press will correct. You do: keep going and press LAP at the real station — the checkpoint stayed “open” and the press snaps onto it even across the bigger offset (you’ll see with a larger correction). From that moment everything lines up again.
You got lost and ran extra kilometres
It means: the field doesn’t know the course — it only sees the watch odometer, and the detour has pushed it ahead. The distance to CP3 crosses zero into blue negatives, 500 m past the plan mark fires, and a long detour can “pass” further checkpoints the same way. You do: get back on course and press LAP at the real aid station — and read the confirmation. A detour shorter than roughly half the leg to the next CP: the checkpoint is still “open” and one press straightens everything (). A longer detour: the press may latch onto a later checkpoint — the confirmation shows a different number and name than where you stand. Then press LAP again while the confirmation is up: each press steps one checkpoint back and recalibrates immediately (), the 20 s window restarts, and the cycle brings you back if you over-press. It works after too — a press during that message first snaps onto the last passed checkpoint, then you switch the same way.
You pressed LAP a bit early by mistake
You see: — a press inside the window took, even though you weren’t quite there. You do: press again at the real station — the second press snaps the calibration to the right spot and the plan doesn’t advance. Just wait for the confirmation to leave the screen: a press during it switches the candidate to another checkpoint (and if you over-press, further presses cycle you back).
The watch beeps and you don’t know why
Tell them apart by feel: one long pulse = (eat, drink, custom). Two pulses = . Three pulses = — look at the screen. One short buzz = a native Garmin alert (pace, HR), nothing to do with the app. The tones underline it: message / low / high.
NEED turned red / CRITICAL CUTOFF appeared
It means: at your current pace you’ll miss one of the limits — names which one, and past the limit the reserve slab . You do: hold the pace from the NEED column or faster; once the reserve recovers, the colours return. The alert won’t nag in a loop — the next one comes only when the projection gets meaningfully worse.
The start got delayed
You do: set Cutoff shift to the delay in minutes (e.g. +15). Every limit moves at once, no retyping. Set it back to 0 after the race — a non-zero value stays visible on the so it can’t hide.
You’ve reached the finish
You do: stop the timer past the finish line and enjoy the — it stays on screen through the save dialog. Save afterwards.
10Reminders & custom messages
Reminders (by time)
One text setting, format Name|interval|first, entries separated by semicolons:
Salt|45; Caffeine|120|75; Headlamp|0|300
Salt|45— every 45 minutes.Caffeine|120|75— first at minute 75, then every 120.Headlamp|0|300— interval 0 = one-shot at minute 300 (5 h after the start).- The names
eatanddrinktake over the built-in food/drink reminders — handy when you want to give them an offset too (e.g.eat|30|60: start eating only from minute 60).
Everything counts from the timer start (race time, not wall clock), and reminders written here fire even with fuel alerts toggled off — typing one means you want it.
Custom messages (by distance)
21=Halfway there!; 60=Only a marathon to go!
The text pops up as an alert the moment you pass that kilometer. Great for messages from your crew — or your own psychological anchors.
11Cutoff shift
The organizer delays the start by 15 minutes at the line? Don’t retype the plan.
The Cutoff shift (min) setting moves every limit at once: +15 = all cutoffs 15 minutes later. It works the other way too (-10 = 10 minutes stricter) and propagates everywhere — the reserve colours, the NEED pace, the critical cutoff and the alerts.
A non-zero shift is visible on the pre-race screen as „7x LIMIT +15′“ — so a value forgotten from the last race can’t surprise you. Set it back to 0 after the race.
12The finish & Garmin Connect
Stop the timer past the finish line and the field shows your race card — and keeps it on screen through the save dialog, exactly for that photo to the family group chat:
- total time and distance,
- average pace and climbed D+,
- AID — total time spent at aid stations,
- FUEL — how many times the field reminded you to eat and drink,
- the final reserve against the last limit.
Resuming the run cancels the recap — the race goes on.
What you’ll find in Garmin Connect
- Laps = checkpoints — thanks to pressing LAP at the stations, the splits match the legs of the race.
- The „Cutoff margin“ chart — the whole story of your fight with the cutoffs in one activity chart.
- In the lap table, per checkpoint: the checkpoint margin — the minutes you had left on its cutoff at the moment you pressed LAP (straight from the clock, GPS plays no part; for a checkpoint without a cutoff, the margin to the next cutoff ahead) — and aid-station time per lap. A stop at a station shows on the lap that starts there.
- The „Required speed“ chart — in km/h (mph): how fast you had to move for the nearest, or the critical, cutoff. A jump = a later checkpoint took over, 0 = nothing to chase.
- In the activity summary: aid-station time (in minutes), finish margin and the fuel-alert count.
This is what the lap table looks like after a short course with four checkpoints:
| Lap | Segment | Checkpoint margin | Aid station time |
|---|---|---|---|
| 1 | Start → Svah | 8 min | 0 min |
| 2 | Svah → Nadvorni | 25 min (Nadvorni has no cutoff: margin to the next one) | 0 min |
| 3 | Nadvorni → Stoupani | 17 min | 3 min (the stop at Nadvorni) |
| 4 | Stoupani → Finish | 25 min | 0 min |
13All settings at a glance
| Setting | Default | What it does |
|---|---|---|
| Race plan (part 1–4) | empty | The race checkpoints — see chapter 3. Parts are joined. |
| Custom messages | empty | km=text; km=text — an alert at the given kilometer. |
| Reminders | empty | Name|interval|first — see chapter 10. |
| Cutoff shift (min) | 0 | Moves every limit, −300 to +600 min. See chapter 11. |
| Climb weight | 100 | Metres of D+ worth 1 km on the flat in the reserve, FINISH time and critical cutoff; 0 = distance only. See Reserve and climbing. |
| Eat reminder (min) | 30 | Interval of the EAT! alert. Disabled by setting reminders to Off. |
| Drink reminder (min) | 15 | Interval of the DRINK! alert. |
| Highlight limit state | on | Amber/red fill of the reserve slab (off = coloured digits only). |
| Vibration & tone – reminders | Vibration only | Off / Vibration only / Vibration + tone / Tone only / Silent (screen only). Off = no reminder alerts at all. Signal: message tone + one long pulse. |
| Vibration & tone – checkpoints | Vibration only | Same choices for checkpoint and auto-advance announcements; LAP confirmations still show (silently) even when Off. Signal: low tone + two pulses. |
| Vibration & tone – cutoffs | Vibration only | Same choices for CUTOFF! and CRITICAL CUTOFF. Signal: high tone + three pulses. |
| Ignore Auto Lap | on | Guard: an automatic lap never snaps the distance, only a real LAP press near a checkpoint. Still, turn Auto Lap off in the profile. |
| LAP window (m) | 400 | How close to a checkpoint a LAP press snaps the distance. Raise it if GPS drift is large. |
| Bottom row | clock | Clock + race time / HR + race time / HR + battery. |
| Theme | dark | Dark, light, or follow the watch. Light uses noticeably more battery on AMOLED. |
| Units | auto | Kilometers / miles, or follow the watch setting. |
14Tips & FAQ
Can I change settings mid-race?
Yes. As long as the checkpoint distances stay the same, progress is preserved — the current checkpoint, the snapped distance and already-fired reminders all survive. A changed cutoff or cutoff shift applies immediately.
Why doesn’t the field show a pace right after the start?
The rolling pace needs a few dozen seconds of data. Until then it shows dashes — more honest than showing nonsense.
How much battery does the field use?
By itself, a negligible amount. On AMOLED watches the theme is what matters: dark is significantly more frugal than light.
What languages does it speak?
20: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian.
Does it run on my watch?
61 watches are supported — fēnix 9, fēnix 9 Pro and Pro Solar, fēnix 8 and fēnix E (including tactix and quatix), epix 2 and epix Pro, Forerunner 70, 165, 170, 265, 265S, 570, 965 and 970, Venu 2, 2S, 3 and 4, vívoactive 5 and 6, Instinct 3 AMOLED and Instinct Crossover AMOLED, MARQ 2, D2 (including Mach 2), Descent Mk3 and Descent G2. The full list is on the store page.
Found a bug, missing a feature?
Write via „Contact Developer“ on the store page — racers‘ feedback is what moves the app forward.
1.6.2 2026-10-08
- 14 more watches: fēnix 9, fēnix 9 Pro and Pro Solar (43, 47 and 51 mm), D2 Mach 2 and Mach 2 Pro, Forerunner 265S and Forerunner 70, Venu 2S, Instinct Crossover AMOLED and Descent G2 – 61 watches in all
- New: TrailRace+ PRO with the whole race route on the watch (a separate app, 14 days free); the link is at the top of the store description
- Japanese: texts drawn on the watch show in English (the watch font has no Japanese characters); the settings in Garmin Connect stay Japanese
- Swedish and Norwegian say tidsgräns / tidsgrense instead of cutoff
1.6.0 2026-09-15
- The reserve, FINISH time and critical cutoff now count the climbing ahead of you (km-effort, the ITRA and UTMB rule: 100 m of climbing count as 1 km on the flat). Until now all three projected your last-10-minutes pace over flat distance only: a flat stretch right before a 1000 m climb showed a comfortable reserve exactly where it should warn, and a slow climb before a long descent could fire a false CRITICAL CUTOFF. The climb left in the segment is the D+ CP value on screen (the plan’s D+ minus what you have climbed since the checkpoint); a checkpoint without D+ in the plan counts as flat. PACE and NEED stay in min/km
- New setting „Climb weight“ (default 100): how many metres of climbing count as 1 km on the flat – lower for steep technical courses, higher for runnable hills, 0 = distance only as before
- More race statistics in Garmin Connect: the lap table (a lap = the leg between checkpoints) gets „Checkpoint margin“ – the minutes you had left on the cutoff when you pressed LAP, taken straight from the clock so GPS cannot skew it (a checkpoint without a cutoff shows the margin to the next one) – and „Aid station time“ for every lap (the stop at a station shows on the lap that starts there). New „Required speed“ chart (km/h or mph) and „Finish margin“ in the activity summary
- Aid station time in Garmin Connect is now in minutes („47 min“ instead of „2820 s“); activities recorded before 1.6 keep their old value and label
- Fixed: the LAP confirmation (CP OK) is no longer covered right after the press by a CRITICAL CUTOFF alert or the next checkpoint’s announcement – it could happen when the press passed the checkpoint that had the tightest cutoff
- Fixed: a signal set to „Off“ now really turns its alerts off from the start of the activity; after switching the watch on it used to behave like „Silent“ until the settings were changed during the activity
1.5.12 BETA 2026-08-30
- FIT diagnostics: the auto-pass event spike (cp_event 2) is no longer overwritten when the next checkpoint’s approach fires in the same tick (seen in the 2026-08-30 field FIT) – the rarer code wins the record
1.5.11 BETA 2026-08-28
- Fixed: the checkpoint approach alert no longer steals the screen from a cyclable LAP confirmation. After a mis-snap one checkpoint ahead, the next CP sits within approach range, and the blue announcement replaced the confirmation one second after the press – disarming candidate cycling exactly in the situation it exists for
1.5.10 BETA 2026-08-28
- LAP confirmations (and the no-match alert) hold for 20 s instead of 12 (field report): the watch’s native lap banner – lap number, time, pace, with no off switch on fenix 8 – covers the field for ~10 s after every recorded lap, leaving barely 2 s of visible confirmation. Presses go through the banner (cycling works even while it is up, each press restarts the window and buzzes per the checkpoint signal setting), and the answer now waits on screen once the banner clears
- Guide: keep the „Lap Key“ enabled – disabling it stops laps from recording and mutes the field’s only input (turning Auto Lap off does not remove the banner; they are separate settings)
1.5.9 BETA 2026-08-28
- Candidate cycling on the LAP confirmation (lost-runner recovery): a detour inflates the odometer, the app runs ahead of the runner, and a press at the real station can then match a later checkpoint. The confirmation is now answerable – another press while „CPx OK“ is up steps the candidate one checkpoint back and recalibrates immediately; below the last confirmed checkpoint the cycle wraps to the original pick, so an over-press can always get back. A second press during „NO CP NEARBY“ first snaps onto the last passed checkpoint – the long-detour dead end is gone. FIT diagnostics gains lap verdict 5 (cycled)
1.5.8 BETA 2026-08-28
- The distance to the next checkpoint goes negative past the plan mark („-230 m“ = the app thinks the checkpoint is 230 m behind you) instead of sitting on a dead „0“: you see the GPS drift live, and the number is exactly the correction a LAP press at the real station will apply. The value turns checkpoint-blue so the minus sign can’t be overlooked
1.5.7 BETA 2026-08-28
- One combo per category instead of a checkbox plus a type (field request): the three on/off toggles (Fuel alerts / Checkpoint alerts / Cutoff alerts) are folded into the signal settings, which now offer five choices – Off / Vibration only / Vibration + tone / Tone only / Silent (screen only). Off disables the category’s alerts entirely; LAP confirmations still show (silently) even with checkpoints off – a mute LAP button must never come back
1.5.6 BETA 2026-08-28
- Per-category alert signal replaces the 1.5.5 three-way sound setting: three list settings (reminders / checkpoints / cutoffs), each choosing Vibration only / Vibration + tone / Tone only. Every category has its own system tone and vibe pattern, so the wrist can tell them apart: reminders = message tone + one long pulse, checkpoints = low alert tone + double pulse, cutoffs = high alert tone + triple pulse. Settings reset with this update – pick your choices again
- Reminders due at the same moment fire as ONE combined alert („EAT! + DRINK!“): back-to-back alerts proved to lose their tone on the device (the second play request lands in the previous one’s quiet window), and one screen beats two 12-second interruptions anyway
- Alert view draws with anti-aliasing (where the device supports it): the nested-fill ring showed visible stair-stepping on AMOLED
1.5.5 BETA 2026-08-28
- Alert tones setting is now a three-way choice: Off / Safety alerts only / All alerts – „safety only“ keeps cutoff and critical-limit alerts audible while nutrition and checkpoint alerts stay vibration-only (new sndMode key, the old on/off value carries over until the first settings sync). Vibration itself is never gated – it is the one channel that reaches a sleeved wrist
- Tones are the plain system pair (low for info, high for safety) again: the 1.5 custom melody played SILENTLY on fenix 8 (no error, so the fallback never fired – proven in the field: native alerts beeped, ours did not). Telling the app apart from the watch’s own alerts is carried by the vibration pattern (double/triple pulse vs. Garmin’s single buzz)
- Alert ring drawn as nested filled circles instead of a thick-pen circle: thick-pen circles render with a visible seam/gap on real devices (field report: a light slit on the ring’s left side, glaring on the white theme)
1.5.4 BETA 2026-08-28
- Beta build shows as „TrailRace+ Beta“ in the watch’s data-field picker (beta-only app name via manifest-beta + resources-beta) – with production and beta installed side by side the two entries were indistinguishable
1.5.3 BETA 2026-08-28
- Auto Lap guard fixed for how Garmin Auto Lap actually counts (proven by a field-test FIT): it fires 1 km/1 mi AFTER THE LAST LAP, not on absolute km marks – so every manual LAP press shifted the phase and the following auto laps slipped past the guard (one popped a phantom „NO CP NEARBY“, and near a checkpoint they could recalibrate). The guard now tracks the distance of the previous lap event and swallows a lap arriving exactly one interval after it. This also explains part of the original tester chaos: his presses were shifting the auto-lap phase all along
- Alert tone fallback: if the device rejects the custom tone profile, the plain system tone plays instead of silence (field report: „vibration yes, sound no“); the diagnostics START line now also records whether alert tones are enabled (snd=on/off)
1.5.2 BETA 2026-08-27
- Diagnostics log: a START line at every timer start (plan size, distance state, LAP window, guard) and a line for a lap ignored for missing plan/distance – an empty CIQ_LOG now always means a capture problem, never a silent app (found testing indoors: no GPS = null distance = the only mute branch)
1.5.1 BETA 2026-08-27
- Diagnostics: every lap decision is recorded into the activity FIT (lap fields lap_verdict 0-4 / lap_cp / lap_snap in metres, plus a cp_event record spike: 1 approach, 2 auto-pass, 3 open-window expired) – a shared activity export now replays exactly what the field did with each press against the GPS ground truth. Not shown in Garmin Connect (intentionally: read from the file)
- The same events go to the on-device Connect IQ log: create GARMIN/APPS/LOGS/CIQ_LOG.YML on the watch and TR+ lines capture laps, auto-passes, approaches and window expiries with distances and offsets
1.5.0 BETA 2026-08-27
- LAP now always answers on screen (field report „the LAP button does nothing“): a matched checkpoint confirms itself – „CP2 OK“ with the applied correction („-230 m“) and the checkpoint’s name and services; a press with no checkpoint in range says „NO CP NEARBY“ instead of silently doing nothing
- Checkpoint passed without LAP stays „open“ until halfway to the next one: when GPS drift exceeds the match window, the app auto-passes the checkpoint BEFORE the runner physically reaches the station – a LAP press there used to be an unfixable no-op, now it snaps the course onto that checkpoint
- Auto Lap guard follows the match window: the „at an aid station“ radius grows from a fixed 150 m to the LAP window (capped at 400 m), so GPS drift no longer makes the guard swallow a legitimate press at the station; a lap while an alert is still on screen bypasses the guard entirely (Auto Lap cannot fire twice at the same distance)
- Alerts now sound and feel unlike the watch’s built-in threshold alerts (field report: a pace-zone beep and a race alert were indistinguishable without looking): a two-note rising chirp and a double vibration pulse, safety alerts a three-note falling tone and a triple pulse (on watches without custom tone support the old system tones remain)
- Lighter blue for ETA and distance-to-checkpoint values on the dark theme (0x40C4FF → 0x80D8FF): blue is the hue AMOLED panels render dimmest and the old shade washed out in direct sunlight
1.4.4 BETA 2026-08-19
- Fourth race-plan settings field: capacity grows from 3×250 to 4×250 characters – a 20+ checkpoint plan like the full UTMB chart no longer has to fight for every letter
1.4.3 BETA 2026-08-18
- Three new checkpoint service icons per the official UTMB Runner’s Guide legend: T toilets (grey restroom figure), D first aid (red medical cross), R resting/sleeping (amber bed). Plan letters are now W/I/C/G/F/S/B/T/D/R; the format hint says so in all 20 languages. Unknown letters were always skipped, so plans written for this version degrade gracefully on older ones.
1.4.2 BETA 2026-08-18
- Cutoff shift (new setting, -300..+600 min): start delayed at the line? One number moves every cutoff with it – no plan retyping. Applied right after parse so status colours, NEED pace, critical cutoff and alerts all see the shifted times; wraps correctly across midnight (0:10 shifted -60 min = 23:10). A non-zero shift stays visible on the pre-race screen (e.g. „5x LIMIT +15′“) so a leftover value can’t skew the next race unnoticed.
- Pre-race screen and finish recap now show D+ with its unit („D+ 4450 m“, feet in statute mode) – the raw number used to render unit-less and unconverted
- Fixed (code review): the NEED column now takes over even when the NEXT checkpoint has no cutoff of its own but a later one is critical – it used to keep showing AVG and hide the one pace that still decided the race
- Fixed (code review): the critical-cutoff projection is cleared once past the finish – a stale value could pop the red alert after the race was over
- Fixed (code review): rolling pace recovers from a timer that jumps backwards (missed reset); the pre-race counts row drops to the smaller font instead of overflowing the round edge on big plans
- Internal: scenario test suite – five automated race replays (screen flow, reminder timeline, LAP/auto-advance, cutoff alerts, critical projection) run in the release gate alongside the 24 unit tests
1.4.1 BETA 2026-08-17
- Critical-cutoff alert no longer loops: 5-minute cooldown between alerts for the same checkpoint, re-alert only after another 15 minutes of projected reserve lost (was 10), and no alert at all once the projection is more than 15 minutes past the cutoff (the race there is already decided – keep the screen readable)
1.4.0 BETA 2026-07-20
- Critical cutoff: pace is projected onto ALL remaining cutoffs; when a later checkpoint is the tight one, the NEED column switches to it (label gains „>CPn“) and a red alert names it (thresholds: takes over under 20 min projected reserve, 3 min hysteresis between candidates, re-alert on another 10 min lost)
- Auto-advance info alert: a checkpoint passed without LAP announces itself („CP2 PASSED – no LAP, distance from GPS“) instead of switching silently; waits for a free screen
- Finish recap: timer stopped past the finish shows the race card – elapsed time, avg pace, D+, total aid-station time, fuel alerts, final cutoff margin; cleared by resume or reset
- Alert tones (new setting, default off): safety alerts TONE_ALERT_HI, the rest TONE_ALERT_LO, on top of vibration
- Plan km fields: decimal comma normalized („26,8“ = 26.8), any other non-numeric tail rejected into the dropped-row warning (toFloat used to read „26.8x“ as 26.8 and silently move the checkpoint)
1.3.0 2026-07-20
- Reminder engine: one text setting „Reminders“ replaces ad-hoc alarm types —
Name|interval|firstper entry („Salt|45; Caffeine|120|75“), interval 0 = one-shot at the given minute („Headlamp|0|300“). Keywordseat/drinktake over the built-in food/drink reminders (localized alert kept), giving them offsets too; the numeric eat/drink settings stay and just feed the same engine. Typed reminders fire even with the fuel-alerts toggle off (typing one is opting in); a mid-race settings edit never replays reminders that already fired, and a one-shot added with a time already behind does not fire retroactively - Checkpoint services: 7 pictograms — W water, I iso drink (new, violet 0xB388FF/0x7C4DFF), C cola (new), G gel (the former F drawing), F food (new fork & knife, neutral ink), S soup (new), B drop bag. Unknown letters were already skipped, so old plans are untouched
- Header icon overflow now shrinks then trims from the right instead of dropping the whole group (a 5-service checkpoint used to lose ALL header icons); alert and half-layout groups auto-shrink via Icons.fitSize
- „Set race plan in settings“ hint word-wraps to the round chord (clipped in most languages as one line)
- Strings: 3 new (Reminders title/prompt, REMINDER alert) in all 20 languages; plan-format hint now lists W/I/C/G/F/S/B
1.2.0 2026-07-19
- Now in 20 languages: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian (Japanese covers the phone settings; the field itself stays English there — the watch font has no CJK glyphs)
- HR zone colours fixed: the pill now keys the zones to the active activity profile’s sport (it could be one zone off before) and re-reads them when the timer starts, with a periodic retry while unknown
- Editing settings mid-race no longer resets progress: when checkpoint distances are unchanged, the current checkpoint and the climbed-metres baseline are preserved (changing a cutoff or target time no longer snaps remaining D+ back to the full route)
- Custom messages already fired no longer replay after a settings edit
- Checkpoint approach alert shows units (e.g. „400 m“, „0.8 km“)
- Setting hints folded into setting titles so they show in Garmin Connect Mobile (GCM never renders the separate hint text for numeric/toggle/list settings)
- HR pill corners gently rounded instead of a full capsule
1.1.0 2026-07-16
- Heart rate on the bottom row, in a pill coloured by your HR zone (grey/blue/green/orange/red), plus a battery gauge – configurable (Bottom row setting)
- Alerts now draw right in the field (12 s, with vibration and backlight), so eat/drink/checkpoint/cutoff pop-ups can’t be muted by the watch; enable the Connect IQ alert in the activity’s Alerts to also get them over the map
- Back-to-back reminders no longer overwrite each other – the second waits its turn
- Stronger Auto Lap guard: a lap on the km/mile grid away from an aid station is ignored from the very first one
- Distance to the checkpoint switches to metres under 1 km (feet under 1000 ft)
- Required pace keeps showing a number even with a huge time cushion (no more dashes)
- Eat/drink reminder intervals can go down to 1 minute
1.0.0 2026-07-15
Initial release: TrailRace+, a race-day command center data field for ultra & trail running. Race plan with checkpoints, cutoffs and aid-station services; live countdown of your reserve vs. the official cutoff with a required-pace readout; rolling pace; LAP-triggered checkpoint recalibration with an auto-lap guard; eat/drink reminders and custom messages; dark/light themes; metric & statute units. English + Czech.






