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_sdnnis always empty for Garmin.avg_hrv_rmssdcomes 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_bpmis copied from the daily summary for the day the user woke up, so it is the same whole-day value asresting_hr_bpmon that daily payload. It stays empty until Garmin has sent that day's daily summary.min_hr_bpm,avg_hr_bpmandmax_hr_bpmare worked out from the heart rate readings inside the sleep window.min_hr_bpmis 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.
Last updated
Was this helpful?