Skip to content

Wellness fields (HRV, sleep, SpO2) not mapping from Intervals.icu API to latest.json #18

Description

@mmmgame1888

HI, I recently started using your Section 11 AI coach. It's amazing, thank you! I also recently got a fitbit air to track my wellness data. However, data like resting hr, hrv, sleep hours, and spO2) isn't making it into the latest.json. I asked Claude for help, and it drafted the below issue summary. Can you update the sync?

If you have a donation page, i'd be happy to contribute.

Cheers,
mmmgame1888

Summary

Wellness data from Intervals.icu is not being mapped correctly into latest.json.
The data exists in Intervals.icu (confirmed via CSV export) but fields appear
as null in the JSON output.

Affected fields

  • hrv_rmssd (always null — CSV shows ~37–40 RMSSD)
  • sleep_hours (always null — CSV shows ~7h/night as sleepSecs)
  • spO2 (always null — CSV shows 97%)
  • resting_hr (sporadic — only appearing on some days, not consistently)

Evidence

On 2026-06-23, the Intervals.icu CSV export shows hrv=37.389473 for that date,
but the latest.json generated at 2026-06-23T22:07:26 UTC shows hrv_rmssd: null
for the same date. This rules out a timing issue — the data was in Intervals.icu
when the sync ran.

Setup

  • Wellness source: Fitbit Air via Health Sync → Intervals.icu
  • sync.py version: 3.112
  • Sync method: GitHub Actions (json-auto-sync)

Expected behaviour

HRV, sleep, and SpO2 should populate in the wellness_data and
current_status.current_metrics sections of latest.json when present
in Intervals.icu.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions