> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/faq/help-topics/data-api-sdk/provider-coverage-and-per-provider-data-availability/compute-hr-zones-from-samples.md).

# Can I compute HR zones from hr\_samples?

**`hr_samples` from the Activity event are the right input for computing your own zones.** Each is a heart rate reading with a timestamp, so set your thresholds and bucket samples by time.

* **Apple** does not populate `hr_zone_data` but does send `hr_samples`, so computing zones from samples is sound.
* Sample cadence is **not a fixed interval**; it is whatever the device recorded, so derive time-in-zone from each sample's timestamp rather than assuming a fixed rate.
* **Polar** sends `hr_samples` and also populates `hr_zone_data` when the activity carries it.
