Another new TQ motor: hpr40

@mschwett. I took your advice and added ride segments to the app rather than relying on average grade and rider input power for the entire ride. Users can now break the route down into 5 segments (climbs, descents, flats, etc) and input ride details and assist levels for each). I tested results against one ride I did recently with two big climbs and descents of different lengths, assist levels and rider input. The predicted end SOC was spot on with what the battery SOC showed on my display.

https://sites.google.com/view/tq-hpr-ebike-range-estimator

1784935063798.png

 
@mschwett. I took your advice and added ride segments to the app rather than relying on average grade and rider input power for the entire ride. Users can now break the route down into 5 segments (climbs, descents, flats, etc) and input ride details and assist levels for each). I tested results against one ride I did recently with two big climbs and descents of different lengths, assist levels and rider input. The predicted end SOC was spot on with what the battery SOC showed on my display.

https://sites.google.com/view/tq-hpr-ebike-range-estimator

View attachment 213186

cool! it also occurred to me that you’d need to take into account the motor cutoff on descents!
 
@@mschwett. I took your advice and added ride segments to the app rather than relying on average grade and rider input power for the entire ride. Users can now break the route down into 5 segments (climbs, descents, flats, etc) and input ride details and assist levels for each). I tested results against one ride I did recently with two big climbs and descents of different lengths, assist levels and rider input. The predicted end SOC was spot on with what the battery SOC showed on my display.

https://sites.google.com/view/tq-hpr-ebike-range-estimator

Took it a step further and added GPX upload so you don't have to manually enter ride information.
1785349673084.png
 
Took it a step further and added GPX upload so you don't have to manually enter ride information

Strong work! This is an important step for model validation, cuz you know how much battery was actually used over a variety of past rides.

Once your model's matching reality reasonably well on a big enough GPX database of known rides, you'll have range predictions you can reasonably rely upon.

You'll probably also get a sense for the kinds of rides that challenge the model, and hence when to take the predictions with a grain of salt.
 
The GPX file provides the elevation and distance for ride segments (which you can adjust and modify) The summary data is calculated based on ride segment data + bike details + TQ App Settings + Advanced Settings
 
Once your model's matching reality reasonably well on a big enough GPX database of known rides, you'll have range predictions you can reasonably rely upon.

So far its proving to be reasonably accurate. For example I did a ride yesterday (GPX file attached) and it estimated I would return with 52.5% SOC, actual was 52%. That said there are two many variables you can only guess at in advance (like headwind) which have large impacts so accuracy of +/- 10% is best you can hope for.
 
Curious, how does the model take variations in rider mood and assist choices into account?

For example, the rolling 5 mi Coast Highway run from home to Carlsbad Village has few interruptions. One day I might ride it in a mix of ECO and OFF at a relatively slow pace, enjoying the ocean views at, say, 120W of normalized average rider power (NARP).

On my power-sensing mid-drive, that's pretty easy on the battery. But next time, I might have a bad case of the zoomies and do the whole thing in SPORT at over 150W NARP. That kind of riding eats up a lot of Wh/mi.

So, same GPX route with very different Wh/mi averages. Given that you're ultimately after range predictions, how do you tell the model how you intend to ride it that day?

To complicate matters further, I often don't know how I'll ride the bulk of it till I'm already underway. And sometimes I change my mind partway there — often in favor of harder and faster at the same time.
 
Last edited:
Once your model's matching reality reasonably well on a big enough GPX database of known rides, you'll have range predictions you can reasonably rely upon.

For each segment you input your anticipated NARP and assist mode (ECO, MID, HIGH), which is needed to determine motor power for that segment. No doubt the model will soon be replaced by an AI on your phone that reads your mind and knows how much effort you will put out on any given ride....
 
For each segment you input your anticipated NARP and assist mode (ECO, MID, HIGH), which is needed to determine motor power for that segment.

Reasonable approach.

No doubt the model will soon be replaced by an AI on your phone that reads your mind and knows how much effort you will put out on any given ride....

A device that knows my mind before I do! Could come in very handy. Also terrifying.
 
Curious, how does the model take variations in rider mood and assist choices into account?

For example, the rolling 5 mi Coast Highway run from home to Carlsbad Village has few interruptions. One day I might ride it in a mix of ECO and OFF at a relatively slow pace, enjoying the ocean views at, say, 120W of normalized average rider power (NARP).

On my power-sensing mid-drive, that's pretty easy on the battery. But next time, I might have a bad case of the zoomies and do the whole thing in SPORT at over 150W NARP. That kind of riding eats up a lot of Wh/mi.

So, same GPX route with very different Wh/mi figures. Given that you're ultimately after range predictions, how do you tell the model how you intend to ride it that day?

To complicate matters further, I often don't know how I'll ride the bulk of it till I'm already underway. And sometimes I change my mind partway there — often in favor of harder and faster at the same time.

that’s why having the power max setting in each mode is so useful! so that when you ride hard you don’t get LESS range lol.
 
that’s why having the power max setting in each mode is so useful! so that when you ride hard you don’t get LESS range lol.

Totally agree. But riding my Vado SL 1 hard in my custom SPORT assist mode (55/70) definitely burns more Wh/mi than riding equally hard in my custom ECO (35/45). In exchange, I go much faster in the SPORT case.

Then when the carrot effect kicks in, I pedal even harder. Quite exhilarating when you're in the mood for a workout, but by no means leg- or battery-friendly.
 
The GPX file provides the elevation and distance for ride segments (which you can adjust and modify) The summary data is calculated based on ride segment data + bike details + TQ App Settings + Advanced Settings
I loaded a GPX file from a recent ride and it calculated over 50% remaining. I had 15% remaining. That's why I asked where the data came from.
 
I loaded a GPX file from a recent ride and it calculated over 50% remaining. I had 15% remaining. That's why I asked where the data came from.
Thanks for checking! If you are willing to share you GPX file and your settings (screenshot of all the input fields below filled in for your situation) I can dig in an report back why the discrepancy.
1785376853070.png
 
We've discussed the accuracy of this kind of modeling several times. A lot of the uncertainty comes down to how well really know certain key model parameters like system mass M, CdA, air density D, and the coefficient of rolling resistance Crr.

These are generally not easy numbers to measure, but estimates can be made. The first 16 minutes of the video below discusses parameter estimates in the context of Stage 19 of the 2026 Tour de France: Did Pogacar's record-breaking climb of Alpe D'Huez really average 7 W/kg for 35+ minutes, as many have claimed?


They used the model at mywindsock.com to conclude that 7 W/kg is plausible given the knowns and all the parameter uncertainties involved, but it could have been as "low" as 6.7 W/kg.

Point is, if you plan to rely on modeling to predict ebike range, you should make an effort to use the best M, CdA, D, and Crr estimates you can get your hands on. Online resources like www.bicyclerollingresistance.com and various CdA estimators can help.

The video also touches on some of the other assumptions and uncertainties impacting model accuracy. These apply to the model at hand as well.
 
Last edited:
if you plan to rely on modeling to predict ebike range, you should make an effort to use the best M, CdA, D, and Crr estimates you can get your hands on
For sure, use the best assumption you have for model inputs especially those inputs which move the needle the most -rider input, assist level settings, and headwind.
 
Back