> 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/help-center/help-topics/data-api-sdk/provider-coverage-and-per-provider-data-availability/garmin-sleep-hrv-resting-hr-null.md).

# Why are HRV and resting heart rate null on some Garmin sleep records?

Garmin sleep HRV and resting heart rate come from separate Garmin summaries, so they can be empty on a sleep record until those summaries arrive.

**Garmin sleep HRV and resting heart rate come from separate Garmin summaries, so they can be empty on a sleep record until those summaries arrive.**

All of these fields are under `heart_rate_data.summary` on the sleep payload:

* `avg_hrv_sdnn` is always empty for Garmin.
* `avg_hrv_rmssd` comes from Garmin's overnight HRV summary, which Garmin sends separately from the sleep stages. It is empty when Garmin hasn't sent an HRV reading for that night. Garmin daily payloads don't carry HRV.
* `resting_hr_bpm` is copied from the daily summary for the day the user woke up, so it is the same whole-day value as `resting_hr_bpm` on that daily payload. It stays empty until Garmin has sent that day's daily summary.
* `min_hr_bpm`, `avg_hr_bpm` and `max_hr_bpm` are worked out from the heart rate readings inside the sleep window. `min_hr_bpm` is the lowest reading, not a resting heart rate measurement.

To get one resting heart rate per day for Garmin, read it from the daily payload. If you use the sleep record, upsert on `metadata.summary_id` and read it again after the daily summary has arrived.

Field definitions are in the [data models reference](https://docs.tryterra.co/reference/health-and-fitness-api/data-models).
