PRIVATE RIDER BETA · REQUEST ACCESS
Shared ride feature · Turbo Levo + Bosch Smart System

Not a stats dump — a story with chapters.

A finished ride keeps distance, time, climb, your whole-ride share, measured heart rate, battery used, and each detected climb together—then paints effort onto the trail. Over time, the same local journals become a per-bike ownership ledger and a shareable story of your year.

The Ride Story. The post-ride sheet: totals, the whole-ride duet with the assist-mode mix, the battery's consumption curve from start to end, the elevation profile with loss as well as gain, speed, power and peak-temperature figures, heart rate when the Watch had it, climb chapters, and the route the ride was on—plus a one-tap start in Video Studio (top left).

RIDE MAP · COLOR BY RIDER SHARE
RIDER SHARE
24%51%78%
NoneRider shareSpeedHeart rate

derived · measured rider + motor power · gray = missing sample

Effort-painted maps. Color a story or route run by rider share, speed, or measured heart rate, with the legend kept visible.

What is built, and what is gated

Ride files are the source History reads the local journals directly. Recovered rides remain visible, and GPX or FIT export—or saving a ride as a route—is explicit.
FIT keeps the powers separate Rider power uses FIT’s standard power channel. Motor power is included only when recorded, in a named motor_power developer field.
Heart stays contextual Watch heart rate appears only when enabled and recent; the Story includes average and maximum only when measured samples exist.
Bike identity is honest Bike Status shows only negotiated protocol and capability fields. The serial stays hidden until the rider reveals it.
Any stretch of a route becomes a segment Name a start and a finish on a saved route, or take a detected climb. Every run is timed from your own GPS, interpolated between fixes with the uncertainty stated, never a hundredth. The times travel with the ride.
A ride remembers its route The ride↔route link is written into the journal and survives: follow a route mid-ride and the ride files under it; save a ride as a route and the route keeps a link back to the ride it came from.

Ride a route twice and it starts coaching you.

Open a route you've ridden and it answers the question you'd ask a friend who knows the trail: what should I expect? Median and best time, battery watt-hours, average heart rate, and how much of the work was yours — all from your own cleanly-ended runs of that route, every figure labeled an estimate.

Route training, honestly

Clean runs only Abandoned and partial runs never pollute "What to expect" — a number built from a ride you didn't finish would be a lie about the rides you will.
First rides say so A route with no clean runs yet says exactly that instead of hiding the card. Your first run is the baseline, not a blank.
Runs carry their figures Each run in the list shows average speed, climb, and heart rate beside its time — enough to see why a run was fast, not just that it was.
Yours alone Every figure comes from your local journals. There are no leaderboards and no accounts to compare against — the route learns you, and tells no one.
EMERALD RIDGE · WHAT TO EXPECT
Median time48:07
Best time46:12
Battery~187 Wh
Avg heart147 BPM

estimates · from your 6 cleanly-ended runs · you did ~40% of the work

Aug 10 · 10.4 mph avg · +1,345 ft · 148 BPM46:12FASTEST
Aug 03 · 10.0 mph avg · +1,340 ft · 146 BPM48:07
Jul 21 · 9.4 mph avg · +1,338 ft · 151 BPM51:26
Route board · best time46:12 · Aug 10
Route board · best rider share44% · Jul 21
Route board · fewest Wh171 Wh · Aug 03

The board lives in Rides → Performance · dates kept with every best

Every number, across every ride.

Rides → Performance turns the journals into one picture: totals against last period, the rider-versus-motor duet over weeks, efficiency by assist mode, how your heart answers your legs, records, and goals with rings you can actually reach. Every card says where its numbers came from, nothing plots a zero it didn't measure, and insights cite their figures or stay quiet.

Performance. Period, totals with deltas, goal rings, the duet over time.

Deeper. Assist mix with cost per mile, correlations with a real r, insights that cite their numbers, and a per-route board of your bests. Compose your own report from any metric and pin it.

The ride becomes an ownership record.

Bikes → Ownership and Service filter local ride history, battery evidence, and maintenance by the selected bike. The odometer is the bike's own — every mile it rolled, app open or not — with the GPS total kept honest beside it as "ridden with OpenLevo." New rides attach to the active profile; older unassigned rides stay safely with “This bike.”

BIKES → OWNERSHIP

Trail Bike

Odometer · from the bike1,284 mi
Recorded rides86
Ride time112h 18m
Rider energy41,820 kJ
Ridden with OpenLevo1,178 mi · GPS
Latest battery snapshot524 → 341 Wh · measured
Aug 03 · Fork service1,241 mi · bike odometer
Share ownership record

Plain text only when you share it. No serial number or ride locations.

OPENLEVO

The Year on the Bike · 2026

Share PNG ↗

86 rides. One season, shared by you and the motor.

Distance1,284 mi
Climb181,420 ft
THE DUET
You 41%Motor 59%
Fastest route run46:12 · Aug 10
Battery consumed3,820 Wh · derived

Computed locally from ride journals · no route locations included