Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

Heart Rate Zone Calculator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Everyday & Life
Tranche
tranche-4
Evidence ID
t4-223
Ledger rows
1

No ledger note is attached.

Review findings

The arithmetic formulas are standard conditional on the stated assumptions, but the specification is not implementation-complete. The exact unresolved ambiguities are the zone endpoint convention, bpm rounding policy, accepted age and heart-rate ranges, and whether intensity inputs are decimal fractions or whole percentages. Retain the honest label that 220 − age is a population-average estimate and not medical advice.

Formula and scope findings

  • HRmax = 220 − age is a population estimate, not an individually measured maximum and is not the only accepted HRmax equation; the implementation must preserve the educational-estimate label.
  • Karvonen requires a valid resting HR when that method is selected, but resting HR is described as optional without stating this conditional requirement.
  • Zone boundary conventions are unspecified: inclusive endpoints can make adjacent zones overlap, while exclusive endpoints change displayed ranges.
  • Rounding policy for fractional bpm endpoints is unspecified; rounding, flooring, or retaining decimals produces different tables.
  • The phrase ACSM-style, widely published does not identify one exact zone-boundary and rounding convention.

Unit assumptions

  • age is an integer or real number measured in completed years, not months or another unit.
  • heart rates and HRmax are measured in beats per minute (bpm).
  • %intensity is represented as a decimal fraction from 0.50 through 1.00, not as 50 through 100.
  • For the test vectors, zones use lower-inclusive and upper-exclusive intervals, except Zone 5, which includes its upper endpoint; fractional bpm values are retained without rounding.
  • For Karvonen, HRmax and HRrest are both in bpm, and HRmax must exceed HRrest.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

An extreme but syntactically numeric age such as 1e308 can produce a finite negative HRmax and entirely negative zone values instead of being rejected. Age zero is also accepted arithmetically despite being an invalid real-world demographic input.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "age_years": 30,
    "method": "percent_HRmax",
    "resting_HR_bpm": null
  },
  "expected_outputs": {
    "HRmax_bpm": 190,
    "zones_bpm": [
      {
        "zone": "50-60%",
        "range": "95 to <114"
      },
      {
        "zone": "60-70%",
        "range": "114 to <133"
      },
      {
        "zone": "70-80%",
        "range": "133 to <152"
      },
      {
        "zone": "80-90%",
        "range": "152 to <171"
      },
      {
        "zone": "90-100%",
        "range": "171 to 190 inclusive"
      }
    ]
  },
  "working": "HRmax = 220 − 30 = 190 bpm. Zone boundaries: 190×0.50 = 95; 190×0.60 = 114; 190×0.70 = 133; 190×0.80 = 152; 190×0.90 = 171; 190×1.00 = 190. Therefore the five intervals are [95,114), [114,133), [133,152), [152,171), and [171,190]."
}

Related workflows

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json