TrailRace+

TrailRace+
Data field

TrailRace+ – race-day command center for ultra & trail running.

TypeData field
PriceFree
PlatformGarmin Connect IQ
TrailRace+ screenshot 1TrailRace+ screenshot 2TrailRace+ screenshot 3

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 water / food / drop-bag icons
  • 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
  • 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 (pressed by accident? press again at the station – it self-corrects)
  • Rolling 10-minute pace instead of a whole-race average

FUELING COACH

  • Eat & drink reminders on your schedule, full-screen with vibration
  • Custom messages at any kilometer („Only a marathon to go!“)

AFTER THE RACE

  • Your LAP at each aid station shows up as a checkpoint split in Garmin Connect

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 in a pill coloured by your HR zone, plus a battery gauge – both race-length decisions on ultras
  • Dark or light theme (light has its own palette). Works in any activity, in full / half / small layouts. Metric & statute. In 20 languages: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian.

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 (activity settings). The field uses the LAP button as a checkpoint signal; it also has an auto-lap guard as a backup. Laps in Garmin Connect then match your checkpoints; per-km pace stays in the charts.

4. Enter the race plan (app settings), one checkpoint per „;“ :

km|name|cutoff HH:MM|WFB|D+

e.g. 12.4|Rozdrozi|13:30|WF|420; 26.8|Chata|16:00|WFB|780; 42|Finish|20:00||1150

W=water F=food B=drop bag. Empty cutoff = no limit. Last entry = finish.

5. Optional: eat/drink reminder intervals, custom messages (21=Only a marathon to go!), 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.

TrailRace+ main screen
The main screen mid-race

2Installation & first setup

  1. Install the field from the Connect IQ Store (via the Connect IQ phone app, or from the web).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Without a plan the field only shows the hint „Set race plan in settings“. The plan is the single required thing — everything else has sensible defaults.

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
FieldRequiredMeaning
kmyesThe checkpoint’s official course kilometer (or mile). Decimal comma or dot („26,8“ = „26.8“).
nameyesCheckpoint name — shown in the header and in alerts.
cutoffnoThe 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.
servicesnoLetters for the aid-station services — see the table below.
D+noClimb (m) since the previous checkpoint — the field then shows how much climbing remains to the next CP.

Aid-station services

LetterIconMeaning
Wdropwater
Icup with strawiso drink
Cbottlecola
Gsachetgel
Ffork & knifefood
Ssteaming bowlsoup
Bbagdrop bag
Tfiguretoilets
Dcrossfirst aid / doctor
Rbedresting / 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).

Don’t feel like typing pipes on a phone? Click your plan together in the plan generator — it guards the format and the cutoff order, splits the plan into 250-character parts and each one copies with a single button. Reminders and messages too.
A row with a typo (non-numeric kilometer, missing name…) is never dropped behind your back — the pre-race screen shows a red „! 2 ignored“ so you know to double-check the plan.

4The start-line check

Pre-race screen
The pre-race summary — timer not started yet

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

Anatomy of the main screen
Anatomy of the 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).
Reserve in the red — past the limit
Past the limit — red slab, inverted digits
Checkpoint without a limit
CP without a cutoff — the column becomes TO GO / AVG
Light theme
Light theme — its own palette, readable in the sun
Light theme, warning
Light theme with the reserve shrinking

6LAP 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.
LAP confirmation — CP OK with the correction
CP3 OK — the press took; course snapped by −230 m
NO CP NEARBY — press outside the window
NO CP NEARBY — press outside the window, nothing changes
CP PASSED — checkpoint passed without LAP
CP2 PASSED — checkpoint passed without a press, distance runs on GPS

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).

checkpoint per the plan LAP press 300 m from the CP (drift) 1000 m window ✓ CP2 OK −300 m * 400 m window (default) ✓ CP2 OK −300 m 50 m window ✗ “NO CP NEARBY” * a big window snaps bigger drift — but just as happily an accidental press far from any station
One press, three windows. The window must exceed the drift (or the press falls through, as with 50 m), but a huge window also catches mistakes — which is why the 400 m default is a good middle ground. The Auto Lap near-checkpoint exception stays capped at 400 m even with a bigger window.

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.

last lap exactly 1 km (±45 m) Auto Lap far from any CP → discarded last lap exactly 1 km (±45 m) CP inside the window (max 400 m) → the auto lap snaps: “CP2 OK −300 m” the correction is bounded, and the next manual LAP straightens it out
The two settings combined: the protection recognises Auto Lap by the distance of exactly one kilometre after the previous lap. Far from a checkpoint it’s discarded (top row); inside a checkpoint’s window it’s exceptionally let through and snaps the course (bottom row) — a checkpoint can simply sit one kilometre past your last press.
Time spent at an aid station (including a pause near one) counts into the AID total you’ll see in the finish recap and in Garmin Connect.

7Alerts

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!“).

Reminder — EAT!
EAT! — food reminder (default every 30 min)
Reminder — DRINK!
DRINK! — drink reminder (default every 15 min)
Custom reminder
REMINDER — custom, here „Salt“ every 45 min
One-shot reminder
One-shot reminder — „Headlamp!“ at minute 300
Checkpoint approaching
Checkpoint approaching — announced with its service icons
CUTOFF! — the reserve is shrinking
CUTOFF! — the reserve on the current limit is shrinking
Custom message
A custom message at the kilometer you chose

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.

you, current pace CP3 · cutoff 13:00 +40 min CP4 · cutoff 16:30 +12 min the tight one → NEED shows >CP4 Finish · cutoff 22:00 +55 min
Your pace is projected onto every remaining limit at once. The nearest checkpoint can be fine (+40 min) — and yet the race hinges on CP4 with +12 minutes. That’s the one NEED switches to.

8On 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.

YOU TRAILRACE+ “DRINK!” time-based reminders “1 km to CP2” Auto Lap — the app discards it LAP press at the station “CP2 OK −230 m” course snapped, estimates line up
One race leg: your only job on top (LAP at the station), everything the field tells you on its own below. Auto Lap’s kilometre laps are discarded by the guard.

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.

CP2 per the plan GPS drift “CP2 PASSED” — before you’re there the real station → LAP checkpoint stays open → “CP2 OK −600 m”
Drift beyond the window: the announcement comes early, but the checkpoint stays open — a press at the real station straightens everything out.

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.

KILOMETRES ON THE WATCH ODOMETER → CP3 per the plan CP4 0 to −500 m “CP3 PASSED” CP3 “open” — until halfway to CP4 short detour: LAP → “CP3 OK −1000 m” ✓ long detour: you stand at CP3, the odometer is already past CP4 the LAP offers CP4 — another press switches: “CP3 OK −3000 m” ✓
The axis is the watch odometer, not the course: every detour kilometre moves the app forward along the plan even though you haven’t advanced on the course. While the checkpoint is open (green band), a single LAP straightens everything at once. A longer detour overruns the halfway point and further checkpoints — the confirmation then offers a different CP: read its number and name, and switch to the right one with another press while it’s up.
Your fixed anchor when lost: LIMIT in the header is wall-clock time — extra kilometres can’t move it. The reserve in minutes is computed from distance, so after a big detour it runs optimistic; trust it again once a LAP has straightened the course.

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.

TONE VIBRATION TrailRace+ · reminders message TrailRace+ · checkpoints low TrailRace+ · cutoffs high watch · native alert (pace, HR)
You can tell without looking: one long pulse = reminder, two = checkpoint, three = cutoff, one short buzz = Garmin.

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.

9Reminders & 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 eat and drink take 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.

10Cutoff 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.

11The finish & Garmin Connect

Finish recap
The finish recap after stopping the timer

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.
  • Aid-station time and the fuel-alert count in the activity summary.

12All settings at a glance

SettingDefaultWhat it does
Race plan (part 1–4)emptyThe race checkpoints — see chapter 3. Parts are joined.
Custom messagesemptykm=text; km=text — an alert at the given kilometer.
RemindersemptyName|interval|first — see chapter 9.
Cutoff shift (min)0Moves every limit, −300 to +600 min. See chapter 10.
Eat reminder (min)30Interval of the EAT! alert. Disabled by setting reminders to Off.
Drink reminder (min)15Interval of the DRINK! alert.
Highlight limit stateonAmber/red fill of the reserve slab (off = coloured digits only).
Vibration & tone – remindersVibration onlyOff / Vibration only / Vibration + tone / Tone only / Silent (screen only). Off = no reminder alerts at all. Signal: message tone + one long pulse.
Vibration & tone – checkpointsVibration onlySame choices for checkpoint and auto-advance announcements; LAP confirmations still show (silently) even when Off. Signal: low tone + two pulses.
Vibration & tone – cutoffsVibration onlySame choices for CUTOFF! and CRITICAL CUTOFF. Signal: high tone + three pulses.
Ignore Auto LaponGuard: 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)400How close to a checkpoint a LAP press snaps the distance. Raise it if GPS drift is large.
Bottom rowclockClock + race time / HR + race time / HR + battery.
ThemedarkDark, light, or follow the watch. Light uses noticeably more battery on AMOLED.
UnitsautoKilometers / miles, or follow the watch setting.

13Tips & 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?
56 devices are supported — Fenix 7/8/E, Epix 2, Forerunner 165–970, Venu 3/4, vívoactive 5/6, Instinct 3 AMOLED, Enduro 3, MARQ 2, Descent and more. 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.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|first` per entry („Salt|45; Caffeine|120|75“), interval 0 = one-shot at the given minute („Headlamp|0|300“). Keywords `eat`/`drink` take 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.

Other apps
SkiTour+Namedays CZNamedays SKNamedays DERecapSpotovkaHoubař

← Back to all apps