hr_above
Finds contiguous heart-rate excursions at or above a threshold and reports each bout's span, peak, mean, and context, so sustained efforts can be distinguished from single spikes.
Instructions
Every contiguous excursion at or above a heart-rate threshold (§14e-ter).
THE UNIT IS THE EXCURSION, NOT THE RECORD. A sustained bout would otherwise
arrive as hundreds of rows and a single spike as one, with nothing in the
shape to tell them apart — which is the whole question when deciding
whether a ceiling is demonstrated or merely recorded.
Each excursion carries the run and date, start offset, span, peak with its
timestamp, mean, the 30 s window CENTRED on the peak, record count,
§15.4 flag count, sampling regime, and pace / grade / cadence. **The same
peak reached while climbing at a walking pace and while running fast on
the flat are different facts about the same heart.**
RAW heart rate, never lag-shifted. FLAGS ARE REPORTED, NOT APPLIED: at the
top of the range a flag may mark a real artifact or a real spike and cannot
settle which. **A run whose peak has unresolved provenance (§14e-bis;
`unresolved_peak_run` in config/athlete.yaml, when set) is MARKED and never
dropped, and every total is reported a second time without it** under
`without_unresolved_peak`.
Args:
threshold: bpm. 0 (the default) means the configured threshold,
`hr_above_default_bpm` in config/athlete.yaml -- set it near the
top of your own HR distribution. `threshold_bpm` in the result
says which value was used.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| last_n | No | ||
| cluster | No | ||
| end_date | No | ||
| run_type | No | ||
| direction | No | ||
| threshold | No | ||
| segment_id | No | ||
| start_date | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |