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.

How do I share a prediction with my coach or a friend?

Copy the planner URL. Every input (route, FTP, weight, CdA, effort, intent, sex) is in the querystring, so the link reproduces the run on the other side.

🔒 Custom-uploaded courses use a separate share flow: the AES decryption key lives in the URL fragment (the part after #), which browsers don't send to the server. Only someone with the full link can decrypt the route. The server stores ciphertext, never sees your route in plaintext. Privacy →

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

FamilyMembers
Edge540 / 550 / 840 / 850 / 1040 / 1050 (incl. Solar variants)
Fenix7 series, 7 Pro, 8, 8 Pro, E
Forerunner955, 965, 970
EpixGen 2 (all editions)
Enduro2, 3
DescentG2, Mk3, Mk3i
D2Mach 1, Mach 1 Pro, Mach 2, Mach 2 Pro
MARQGen 2 (all editions)
Quatix7, 8 (incl. Pro)
Tactix7, 8
VenuX1

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_pk so 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:

  1. Unzip the bundle. It contains course_YYYY-MM-DD.fit and power_guide_YYYY-MM-DD.fit.
  2. Plug the Edge into your computer with the supplied USB cable. It mounts as a regular drive (called GARMIN on macOS and Windows).
  3. Drop both .fit files into GARMIN/NewFiles/.
  4. 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 → PlansImport workout file (or share-sheet the .fit file 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 .fit file onto the Karoo over USB into Workouts/, 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 .fit file 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 of Courses/. 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:

  1. FTP. Was the value you typed current, or last year's? Stale FTP is the single biggest source of error in the cohort.
  2. CdA. The 0.40 default is amateur-in-drops. Run bpm calibrate on a flat tempo ride to pull it within ~0.02 of truth, or use a wind-tunnel value if you have one.
  3. Effort. 1.0 means "at your ceiling, every watt available". Mid-pack sportive is 0.85; gruppetto is 0.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.

bikepowermodel.fit · open-source race-time prediction · per-split surface Crr · Garmin / Wahoo / Hammerhead / Bryton