Help
User manual + FAQ. Methodology in /methodology; library / CLI / integrations in /developers.
What does it cost?
Nothing. The library is MIT, the web app is free. Email sign-in is needed to download the Power Guide FIT or upload a ride: only so abuse isn't anonymous. No ads, no subscription, no newsletter.
Anonymous usage analytics via self-hosted PostHog (which pages get hit, which downloads succeed, which API calls error). No PII. The hashed email never touches the analytics stream.
Hosting is out of pocket on Scaleway. If that ever stops being viable, the library + Docker compose run locally: no lock-in. Privacy →
Do I need to sign up?
Not to plan a route or see a prediction. The planner form works anonymously. Sign-in (email magic link, no password) is needed only to:
- Download the Garmin Power Guide FIT for your Edge.
- Upload a past ride to the analyzer.
- Upload a custom GPX (the encrypted BYO-course flow).
That's it. No newsletter, no marketing follow-ups. Email is one-way hashed in storage; the address is never displayed back.
Does it work without a power meter?
No. The whole model is power-balance physics: it solves for power against drag, rolling resistance, gradient. Without a measured FTP, the ceiling number is a guess and so is the prediction.
Which Garmin devices support Power Guide?
Power Guide is a Garmin Connect feature; the bundle's per- split watts overlay only renders on Power Guide-capable Garmin devices. Other head units (Wahoo, Hammerhead, Bryton, older Garmins) read the FIT Workout download instead: same per-split power targets, no GPS overlay.
Compatible families (Garmin's published list, 2026):
| Family | Members |
|---|---|
| Edge | 540 / 550 / 840 / 850 / 1040 / 1050 (incl. Solar variants) |
| Fenix | 7 series, 7 Pro, 8, 8 Pro, E |
| Forerunner | 955, 965, 970 |
| Epix | Gen 2 (all editions) |
| Enduro | 2, 3 |
| Descent | G2, Mk3, Mk3i |
| D2 | Mach 1, Mach 1 Pro, Mach 2, Mach 2 Pro |
| MARQ | Gen 2 (all editions) |
| Quatix | 7, 8 (incl. Pro) |
| Tactix | 7, 8 |
| Venu | X1 |
Older Edges (520, 820, 530, 830, 1030, 1030 Plus) and pre- Power-Guide watches load the Course track but don't render the watts overlay. Use the FIT Workout download instead.
What's the difference between the two downloads?
The planner offers two FIT formats, picked per device:
- Garmin bundle (ZIP) — two files inside: a Course FIT (GPS track, named alerts at every named cobble or gravel sector and food station, Virtual Partner pacing) and a Power Guide FIT (the per-split target-watts overlay). Both share a
course_pkso the device associates them once both are loaded. This is the full-feature path for Power Guide-capable Garmin devices: Edge 540+, Fenix 7+, Forerunner 955+, and the rest of the Garmin lineup that supports it (full list). - FIT Workout — one file, no GPS. A structured workout with one power-target step per 90-120 s split, ±5 % tolerance band. Loads on any head unit that reads FIT workouts: Wahoo Roam / Bolt / Elemnt, Hammerhead Karoo 2 / 3, Bryton Rider, and any Garmin Edge (including older 520 / 820 that can't read Power Guide). Lose the route on the screen, keep the power targets.
If the Edge supports Power Guide, the bundle is the right pick. Otherwise the Workout is the universal fallback.
How do I load the Garmin bundle onto my head unit?
USB sideloading is the only path that works. Garmin Connect's web upload re-encodes the file and strips the proprietary Power Guide messages (352 / 353), so the overlay vanishes. Garmin Express has the same problem. Drag-drop the files onto the device directly:
- Unzip the bundle. It contains
course_YYYY-MM-DD.fitandpower_guide_YYYY-MM-DD.fit. - Plug the Edge into your computer with the supplied USB cable. It mounts as a regular drive (called
GARMINon macOS and Windows). - Drop both
.fitfiles intoGARMIN/NewFiles/. - Eject, disconnect, then power-cycle the Edge. It picks them up on next boot and moves them into
GARMIN/Courses/.
On the Edge, go to Navigation → Courses, find the course (named after your route), and tap Ride. The Power Guide overlay appears as a native data field showing the target watts for the current segment, with a colour band that flips when you drift outside the ±5 % tolerance.
Power Guide overlay works on Edge 540+, Fenix 7+, Forerunner 955+, and the other devices on the compatibility list. Older Edges (520, 820, 530, 830, 1030, 1030 Plus) and pre-Power-Guide watches load the Course track but won't render the overlay. Use the FIT Workout instead.
On Fenix / Forerunner / Epix watches the procedure is the same: the watch mounts as a GARMIN drive over USB, drop the two FIT files into GARMIN/NewFiles/, eject, and pick the course from Navigation → Courses on the watch.
How do I load the FIT Workout onto a non-Power-Guide head unit?
- Wahoo Roam / Bolt / Elemnt. Open the Wahoo app on your phone, tap the workout icon → Plans → Import workout file (or share-sheet the
.fitfile from email / iMessage into the Wahoo app). The workout shows up under Workouts on the head unit. Pair the power meter, hit Start workout, and the device counts you through the steps with watts targets per interval. - Hammerhead Karoo 2 / 3. Drag the
.fitfile onto the Karoo over USB intoWorkouts/, or upload to a coaching platform that syncs (TrainingPeaks, intervals.icu) and let the Karoo pick it up. Workouts menu on the device, select, start. - Bryton Rider. Sideload the
.fitfile via the Bryton app or USB into the workout folder. Workout menu on the device. - Older Garmin (Edge 520, 820, 530, 830, 1030, 1030 Plus, or any pre-Power Guide watch). Same USB drag-drop as the Garmin bundle, but the workout goes into
GARMIN/Workouts/instead ofCourses/. Training → Workouts → Choose Workout.
The Workout has no GPS — you ride the route on whatever map you're using, and the device counts targets in parallel. Pair this with the GPX you already loaded for navigation.
Will the SPA stay free / hosted?
Out-of-pocket on Scaleway. No business model, no paid tier planned. If the hosting bill ever stops being viable, the library is MIT and the Docker compose runs locally.
The prediction was off, now what?
Three things to check before blaming the model:
- FTP. Was the value you typed current, or last year's? Stale FTP is the single biggest source of error in the cohort.
- CdA. The 0.40 default is amateur-in-drops. Run
bpm calibrateon a flat tempo ride to pull it within ~0.02 of truth, or use a wind-tunnel value if you have one. - Effort.
1.0means "at your ceiling, every watt available". Mid-pack sportive is0.85; gruppetto is0.70.
After that, the honest gaps live on the methodology page (crits, bunch-tow, deep wet cobble). Honest gaps →
If it's still off, donate the ride via the Analyzer with a comment about what looked wrong. The FIT is stripped and anonymised before it hits the cohort. Never paste a raw FIT into a GitHub issue: that's a privacy leak you can't take back. Donated rides are how the model gets fitter.