ForHosting KIT · Health & fitness

Heart rate reserve calculator

Subtracts resting heart rate from maximum to give the range you train within: a maximum of 190 bpm and a resting rate of 60 bpm leave a reserve of 130 bpm. Coaches use that span as the base for individual intensity zones. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Maximum heart rate
190
Resting heart rate
60
You get
Heart rate reserve
130 bpm

Heart rate reserve is the difference between maximum heart rate and resting heart rate. This calculator accepts those two measurements in beats per minute and returns the reserve available between rest and maximum effort. Coaches and training applications often use that difference as an input when defining individualized intensity zones, because it accounts for resting rate instead of relying on maximum rate alone. The calculation is fully offline and deterministic: it performs validated subtraction without network access, randomness, stored profiles, or changing assumptions.

What heart rate reserve represents

Heart rate reserve, commonly abbreviated HRR, describes the span between a person's resting heart rate and maximum heart rate. The formula is maximum heart rate minus resting heart rate, with every value expressed in beats per minute. If maximum heart rate is 190 bpm and resting heart rate is 60 bpm, the reserve is 130 bpm.

That number is not a pulse you should try to hold; it is the available range that many training-zone methods use as a baseline. Resting rate matters because two people can share the same maximum while beginning exercise from different resting levels. Their reserves will therefore differ, and a percentage of reserve can reflect that difference when a coach calculates target intensity.

This capability deliberately performs only the reserve calculation. It does not estimate maximum heart rate from age, infer resting rate from a wearable, or prescribe an exercise zone. Because the operation is simple subtraction with strict validation, the output is suitable for calculators, training-plan worksheets, automated tests, and other contexts where a stable numeric building block is more useful than an opaque fitness recommendation.

Treat maximum and resting rates as measurements supplied by the user or another trusted source, and interpret training decisions with appropriate professional guidance when health risks or symptoms are involved.

How to enter valid maximum and resting rates

Plain numbers are preferred, although clean decimal numeric strings are accepted for compatibility with text forms and spreadsheet exports. Both inputs must be greater than zero, and maximum heart rate must be strictly greater than resting heart rate. Those rules ensure that the resulting reserve is positive, as required by this capability's contract.

A pair such as 185 and 55 returns a reserve of 130 bpm; a pair such as 60 and 60 fails because its reserve would be zero, while 55 and 70 fails because its reserve would be negative. The calculator does not impose an arbitrary age-based ceiling, because measured maximum rates and individual physiology vary and the requested operation is subtraction rather than diagnosis. It also does not round valid decimals: if a testing protocol supplies 188.5 and 57.5, the exact JavaScript numeric difference is returned.

Using reserve as an input to training zones

A common next step is to use heart rate reserve in the Karvonen-style target-rate formula: resting heart rate plus a selected intensity fraction multiplied by heart rate reserve. For a reserve of 130 bpm and a resting rate of 60 bpm, an illustrative sixty-percent calculation would be 60 plus 0.60 times 130, or 138 bpm. That target-zone step is intentionally outside this capability.

Keeping the reserve calculation separate makes the response easy to reuse across zone systems, coaching policies, and software interfaces without embedding one set of intensity bands or implying that a generic percentage is right for every person. Coaches can use the browser result beside a plan, while students can verify the subtraction before working through percentage exercises. No profile is stored, no wearable account is contacted, and no current date is consulted.

Heart rate can be influenced by medication, illness, temperature, fatigue, and measurement method, so the mathematical reserve should not be treated as medical clearance. When building a real training product, explain where maximum and resting rates came from, let users update those values, and involve a qualified professional when exercise intensity may create a health concern.

Prepare training-zone inputs

Calculate the positive reserve that a documented percentage-based zone formula can use in a later step.

Build fitness software

Add a validated, deterministic HRR primitive to coaching dashboards, workout planners, or exercise education tools.

What is the heart rate reserve formula?

Heart rate reserve equals maximum heart rate minus resting heart rate, with all three values expressed in beats per minute.

Does this calculator estimate maximum heart rate from age?

No. You provide maximum heart rate directly. The capability does not use age or an estimated maximum-rate formula.

Can I use the result to calculate training zones?

Yes, reserve is an input to several zone methods, but this capability does not select percentages or prescribe safe exercise intensity.

What does the calculator cost?

It is free to run in the browser.

Is the reserve a heart rate I should aim for during exercise?

No. It is not a pulse to hold but the span between rest and maximum effort. Training methods take a percentage of that span to set targets, so the reserve is a starting figure rather than a goal.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/health/heart-rate-reserve

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/health/heart-rate-reserve \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"maximum_heart_rate":190,"resting_heart_rate":60}'
{
  "maximum_heart_rate": 190,
  "resting_heart_rate": 60
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.heart_rate_reserve",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Use the browser version for a quick check, or call the API for $0.002 per successful request when a training plan, worksheet, or fitness application needs the same reproducible result.

What heart rate reserve represents

The response repeats both validated inputs, returns heart_rate_reserve, labels the unit as bpm, and includes the exact formula name so downstream software can display or audit the result.

How to enter valid maximum and resting rates

Provide maximum_heart_rate and resting_heart_rate as finite, positive values in beats per minute. Common field aliases such as max_hr, hr_max, rhr, and resting_hr are also recognized. Missing fields, zero, negative values, Infinity, NaN, booleans, arrays, objects, and text containing units are rejected with invalid_input instead of being guessed or silently converted. For the cleanest integrations, send JSON numbers, store the returned unit with the result, and surface validation messages to users so they can correct a reversed or mistyped pair rather than receiving a plausible-looking but invalid training input.

Using reserve as an input to training zones

Developers can call this endpoint first, retain the returned reserve, and apply their own documented zone rules later. The calculation runs locally in the browser for interactive use and uses the same pure logic through the API, so a given input pair produces the same JSON values every time. A successful API request costs $0.002; invalid requests fail clearly rather than returning a non-positive reserve.

Check worksheets and test fixtures

Generate reproducible maximum-minus-resting answers for coursework, examples, unit tests, and CI assertions.

Why must maximum heart rate exceed resting heart rate?

The reserve must be positive. Equal values produce zero and a lower maximum produces a negative result, so both cases return invalid_input.

Read the full KIT documentation →