The short version
When we have a good heart-rate stream during a workout or across your day, it's the best signal we have for how many calories you're burning — heart rate rises with the oxygen your muscles demand, and oxygen demand is energy. We convert heart rate to calories using a peer-reviewed published equation (Keytel et al., 2005), personalized to your age, sex, and weight, applied minute by minute and summed. This page shows the exact equation, how we keep it honest at low intensities, and when we trust it versus fall back to other methods.
Why we’re publishing this
Calorie numbers are everywhere and almost always presented as gospel, with no hint of how they were produced or how much to trust them. We'd rather show our work. This page covers the heart-rate method specifically; the companion page, Resting & Activity Calories, covers your baseline metabolism and the MET-based estimates we use when heart rate isn't available.
The equation
Heart rate predicts energy expenditure well during exercise because, across the submaximal range, the two rise together. The relationship has been measured and published. We use the Keytel et al. (2005) equation,[1] which predicts energy expenditure from heart rate, personalized by age, sex, and body weight:
For men:
kcal/min = (−55.0969 + 0.6309 × HR + 0.1988 × weight_kg + 0.2017 × age) / 4.184
For women:
kcal/min = (−20.4022 + 0.4472 × HR − 0.1263 × weight_kg + 0.0740 × age) / 4.184
These are the published coefficients, used verbatim — we didn't invent them. (The division by 4.184 converts kilojoules to kilocalories.) The separate male and female forms aren't cosmetic: sex meaningfully changes the heart-rate-to-energy relationship, and using one equation for everyone would systematically misestimate roughly half of users.
How we apply it
- Minute by minute. Heart rate is sampled roughly every 5 seconds. For each interval we compute the kcal/min rate at that heart rate and multiply by the interval's length, then sum across the session or day. Rates are never averaged-then-multiplied — short bursts and recoveries are each counted at their own rate.
- We cap gaps. If your device drops out, we don't pretend you were exercising through the gap — any interval longer than 20 seconds is capped at 20 seconds so a disconnect can't silently inflate your burn.
- We clamp implausible readings. Heart rate is bounded to 30–220 bpm before the equation sees it, so a sensor glitch can't produce a wild number.
Keeping it honest at low intensity
Heart rate can be elevated for reasons that aren't exercise — caffeine, stress, heat, standing up — and the raw equation would happily bill those as calories burned. To prevent that, the daily calorie calculation gates contribution on intensity using your heart-rate reserve (how far you are between rest and max):
- Below 35% of your heart-rate reserve, we credit only your baseline metabolic rate — no “active” calories. You're elevated, but you're not working.
- Above that threshold, active calories phase in smoothly and scale up to the full heart-rate estimate as intensity climbs.
This keeps a stressful, sedentary afternoon from masquerading as a workout, while still capturing genuine activity the moment you actually start moving.
When we trust it
Heart-rate calories are our primary method, but only when the data supports it:
- For a workout, we need at least a couple of valid heart-rate readings in the session. If they're there, the heart-rate estimate is used.
- For your whole day, heart rate must cover at least 50% of the daily window before we use it for your total energy expenditure. Below that, too much of the day is unobserved, and we fall back to the MET and session-based methods instead of extrapolating wildly from a few covered minutes.
What we need from you
The equation is personalized, so the inputs matter:
- Age and sex are required — without them we can't pick or evaluate the equation, and we won't fabricate a number.
- Weight defaults to 70 kg if we don't have yours, which will skew the estimate; your real weight makes it accurate.
- Resting and max heart rate come from your recent data where available (with sensible age-based defaults otherwise), and set the reserve band used for the low-intensity gate.
What we’re honest about
What we’re honest about
- It's a population equation, not a metabolic cart. Keytel was fit on a sample of adults; your personal heart-rate-to-energy relationship may differ from the average. Treat the number as a well-grounded estimate, not a measurement.
- It's calibrated for steady aerobic effort. Heart rate tracks energy beautifully for running, cycling, and rowing. For heavy lifting — where heart rate stays low relative to the work — it under-reads calories, the same blind spot our Strain model corrects for load. Calorie estimates during pure strength work are conservative.
- We don't use VO₂max in the calorie math. Keytel published a version that incorporates VO₂max; we use the version that doesn't, because a reliable measured VO₂max isn't available for most users. We'd rather use a robust equation everyone can run than a sharper one that silently falls back to a guess.
- The estimate is only as good as the heart-rate data. Gaps, motion artifacts, and poor sensor contact all degrade it — which is exactly why we cap gaps, clamp readings, and require minimum coverage before trusting it.
How this metric evolves
This is the calorie methodology v1.0. We expect to incorporate better per-user calibration and cleaner sensor handling over time. Material changes will be noted here.
References
- [1] Keytel L.R., Goedecke J.H., Noakes T.D., Hiiloskorpi H., Laukkanen R., van der Merwe L., Lambert E.V. Prediction of energy expenditure from heart rate monitoring during submaximal exercise. Journal of Sports Sciences, 23(3):289–297 (2005). doi:10.1080/02640410470001730089. We use the sex-specific equations that take heart rate, weight, and age (the non-VO₂max forms).
This document describes a proprietary metric built on a published equation. The reasoning and application are documented in the interest of transparency; the underlying implementation is our own.