Page actions
instrument / verified-clean
Target Heart Rate Zones
The current ledger marks this instrument verified clean within the source-bound verification corpus.
Inspectable records
Ledger state
The current ledger marks this instrument verified clean within the source-bound verification corpus.
- Area
- Biology, Medicine & Pharmacology (educational estimates only — every panel labeled not-medical-advice)
- Tranche
- tranche-4
- Evidence ID
- t4-206
- Ledger rows
- 1
No ledger note is attached.
Review findings
The formulas themselves are standard, but the instrument cannot be fully verified as a zone-table generator until it specifies the zone scheme, intensity encoding, endpoint convention, and bpm rounding policy. The existing honest-label language is appropriate and should remain visible on every panel.
Formula and scope findings
- Both HRmax formulas are standard population-average estimates: 220−age and Tanaka 208−0.7×age.
- Karvonen THR=(HRmax−HRrest)×intensity+HRrest is correct when intensity is represented as a decimal fraction from 0 to 1.
- The spec does not define the zone boundaries, number of zones, whether boundary endpoints are inclusive, or how fractional bpm values are rounded for the displayed zone table.
- The input label "intensity %" is ambiguous: the formula requires either decimal fractions such as 0.70 or percentage points converted by dividing by 100, such as 70→0.70. The implementation must specify and enforce one representation.
Unit assumptions
- Age is in years.
- Heart rates and HRmax, HRrest, and THR are in beats per minute (bpm).
- In the calculations below, intensity values are decimal fractions; for example, 0.50 means 50%.
- The displayed ranges retain fractional bpm values unless a separate rounding policy is specified.
- Karvonen zones use HRrest; direct percentage-of-HRmax zones would be a different calculation and are not defined here.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
The specification has no stated validation for non-physiological ages, intensity bounds, or numeric overflow. Extreme inputs can produce -Infinity, and an intensity-unit ambiguity can produce 8460 bpm instead of 144 bpm.
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": 30,
"resting_hr_bpm": 60,
"formula_choice": "220-age",
"intensity_ranges": [
[
0.5,
0.6
],
[
0.6,
0.7
],
[
0.7,
0.8
],
[
0.8,
0.9
],
[
0.9,
1
]
]
},
"expected_outputs": {
"hrmax_bpm": 190,
"zone_table_bpm": [
{
"intensity": "50%-60%",
"range": [
125,
138
]
},
{
"intensity": "60%-70%",
"range": [
138,
151
]
},
{
"intensity": "70%-80%",
"range": [
151,
164
]
},
{
"intensity": "80%-90%",
"range": [
164,
177
]
},
{
"intensity": "90%-100%",
"range": [
177,
190
]
}
]
},
"working": "HRmax = 220−30 = 190 bpm. HR reserve = 190−60 = 130 bpm. Zone 1: 130×0.50+60 = 65+60 = 125; 130×0.60+60 = 78+60 = 138. Zone 2: 130×0.60+60 = 138; 130×0.70+60 = 91+60 = 151. Zone 3: 130×0.70+60 = 151; 130×0.80+60 = 104+60 = 164. Zone 4: 130×0.80+60 = 164; 130×0.90+60 = 117+60 = 177. Zone 5: 130×0.90+60 = 177; 130×1.00+60 = 130+60 = 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_CLEANevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json