When does WHOOP daily data arrive, and why don't my WHOOP numbers match the WHOOP app?
WHOOP daily data is fetched when WHOOP reports a new recovery or workout, and each day is dated by the local date its WHOOP cycle starts.
WHOOP daily data is fetched when WHOOP reports a new recovery or workout, and each day is dated by the local date its WHOOP cycle starts. Both affect how values line up with the WHOOP app.
When daily data arrives
WHOOP sends notifications for workouts, sleeps and recoveries, but not for cycles (WHOOP webhooks). Daily data comes from WHOOP's cycles, so Terra fetches it when a recovery or workout notification arrives, covering the previous and current day. A sleep notification fetches sleep only.
As a result, a daily payload can arrive with the previous day's cycle in it, and a day's values can be updated by a later notification.
Why values don't match the WHOOP app
Dates. Terra dates each WHOOP daily record by the local date on which that cycle starts. A cycle that starts in the evening is dated that evening's day, which may not be the day you see it under elsewhere. When comparing with the WHOOP app, check the neighbouring day too.
Strain. Daily
strain_data.strain_levelis the strain for the whole cycle. Thestrain_data.strain_levelon an activity is that workout's strain only.HRV and SpO2. For WHOOP these are on the sleep payload, not daily:
heart_rate_data.summary.avg_hrv_rmssdandrespiration_data.oxygen_saturation_data.avg_saturation_percentage. Daily doesn't carry them for WHOOP.User maximum heart rate.
user_max_hr_bpmcomes from WHOOP's body measurements, on the body payload.
WHOOP provides no steps and no stage by stage sleep samples. See step and distance metrics for WHOOP.
Field paths are in the data models.
Last updated
Was this helpful?