How are calories calculated?
For iPhone, Android, or “With iPhone” Apple Watch Based Workouts
If you have a power meter Cadence uses that as it’s by far the most accurate way to estimate calorie burn. Otherwise, Cadence uses MET values with adjustments made for grade.
Cadence doesn’t currently calculate based on heart rate because testing has shown it to be wildly inaccurate, often producing numbers 30-50% more than expected. I’d rather err on the side of calculating too low.
Also, by default, Cadence doesn’t send its calorie estimation to Strava when it syncs. This causes Strava to do its own calorie calculation on the data. This setting can be changed in Settings > Strava.
The reason I have it this way is because calorie calculation is pretty complicated. Unless you’re using a power meter on a bicycle, calorie calculations are an estimate at best. Big companies like Garmin actually license a calorie algorithm (update: Garmin purchased the analytics company Firstbeat they were licensing from), and I’m guessing Strava and Apple do the same, or have their own algorithms. I figure with the number of engineers working at those companies, they’re going to provide a better calorie estimation than I can.
For “Watch Only” based Apple Watch Workouts
Cadence uses Apple’s built-in workout session calorie calculations.
Cadence 2.9.0 Update
Cadence 2.9.0, currently in beta testing (8/30/26), completely refactors calorie calculations, separating active, basal, and total calories, and adds bike settings for position, surface, and e-bike compensation. Here’s how 2.9.0 will calculate calories:
Calories are surprisingly hard to pin down. Unless you ride with a power meter, every calorie number in every app — Cadence, Strava, Apple, Garmin — is an educated estimate, and no two apps will ever agree exactly. Here’s how Cadence does it, so you know what your numbers mean.
The three numbers: Active, Basal, and Total
Cadence now shows calories as three separate numbers:
- Basal — the calories your body burns just to stay alive during the ride: heart beating, breathing, staying warm. You’d burn these even sitting still. (Other apps sometimes call this “resting.”)
- Active — the extra calories from the actual effort of riding or running.
- Total — Active + Basal added together. This is the big number, and it’s what most apps and your Apple Watch show.
Each one is available as its own data field on your screens and as a voice announcement, so you can watch whichever you care about.
If you have a power meter (most accurate)
A power meter measures exactly how hard you’re pedaling, in watts — by far the most accurate way to estimate calorie burn. If Cadence sees power, it uses it and ignores all the estimating below.
If you don’t have a power meter (the estimate)
Cadence works out roughly how many watts it took to move you down the road, using real physics — the same forces a power meter would feel:
- Your weight (you + your bike)
- Your speed
- The hills: climbing takes far more energy than flat or downhill
- Air resistance: the biggest force at speed; depends on how you’re sitting (see Riding Position below)
- Rolling resistance: how much the road drags your tires (see Road Surface below)
It then turns those watts into calories exactly like it would for a power meter. It’s an estimate, but a good one — it’s tuned to land within a few percent of real power-meter data.
If your calories look lower than before: they probably are. Older versions of this estimate ran high; the new one is much more accurate. The lower number is the more honest one, not a bug.
Your bike settings: Settings ▸ Gear ▸ (your bike)
Two of those forces depend on your specific bike and how you ride it, so you can set them per bike. Cadence starts everyone on sensible defaults (a road bike, hands on the hoods, regular asphalt), so you only need to touch these if they don’t match you:
- Riding Position: how you usually sit. Sitting up catches a lot of wind and burns more; on the hoods is the middle; in the drops or on aero bars is more slippery and burns less.
- Road Surface: smooth asphalt rolls easily; rough/chipseal and gravel drag more and burn more.
- E-Bike Compensation: if your bike has a motor, the motor does part of the work, so you burn fewer calories. Pick the assist you normally use (Light, Medium, or Heavy) and Cadence lowers the estimate to match. Leave it on None for a regular bike.
These only affect rides without a power meter — with a power meter your real effort is already measured, motor or not.
Your body: Settings ▸ Profile ▸ Body Metrics
The Basal (resting) number uses a well-established formula (Mifflin-St Jeor) that needs your weight, height, age, and sex. Filling these in makes your resting calories accurate for your body. If you leave height or sex blank, Cadence falls back to a simpler weight-only estimate. It still works, just less precisely.
Running
For runs, Cadence uses a research-based model (Minetti) that accounts for grade, so running uphill correctly costs more than running flat, and steep downhills cost the least.
Heart rate
Cadence does not estimate calories from heart rate. Testing showed it to be wildly inaccurate — often 30–50% too high. I’d rather give you an honest, slightly conservative number than an inflated one.
Apple Watch “Watch Only” workouts
If you record on your Apple Watch without your iPhone (“Watch Only”), Cadence uses Apple’s own built-in workout calorie calculation, not the method above.
Why don’t my calories match Strava, Apple, or Garmin?
They won’t, and that’s expected. Every app uses a different method: Garmin licenses a dedicated algorithm (from Firstbeat, which they now own), and Strava and Apple have their own. Without a power meter there’s no single “correct” number, so different tools will always land in different places.
Because of this, Cadence doesn’t send its calorie number to Strava by default, it lets Strava calculate its own from your ride data. If you’d rather Strava show Cadence’s number, turn on Settings ▸ Strava ▸ Include Calories.
Why did an old ride’s calories change?
When you open an activity recorded before this update, Cadence recalculates it with the new model, so its total may differ from what you saw before. This is expected and the new number is the more accurate one.
