| WHOOP | total | Sum of the light, deep, and REM stages reported by WHOOP. |
| Fitbit | hr_lowest, hr_average, average_hrv | Calculated from heart-rate and HRV samples within the sleep session. |
| Garmin | hr_lowest, hr_average, hr_dip, efficiency, type | Calculated from the sleep interval, stages, and available heart-rate samples. |
| Google Health | efficiency, hr_lowest, hr_average, average_hrv, respiratory_rate | Calculated from the sleep session and matching samples from the same source device. Sample-derived fields remain unavailable when Junction cannot identify an exact source device. |
| Google Fit | total, awake, light, rem, deep, efficiency, type | Assembled from Google Fit sleep segments and the session interval. |
| Apple HealthKit, Android Health Connect, and Samsung Health | total, awake, light, rem, deep, latency, hr_lowest, hr_average, average_hrv, respiratory_rate, efficiency, type | Assembled from sleep stages and other samples submitted through the SDK. Fields are omitted when the required samples are unavailable. |
| Eight Sleep | awake, light, rem, deep, latency, hr_lowest, hr_average, average_hrv, respiratory_rate, efficiency, type | Calculated from Eight Sleep stages, timeseries, and session boundaries. |
| Ultrahuman | total, awake, light, rem, deep, latency, hr_lowest, type | Stage durations are assembled from the provider’s sleep-stage proportions; other fields use its sleep graph and session boundaries. |
| Polar | total, duration, hr_lowest, hr_average, efficiency, type | Calculated from Polar stages, interruptions, heart-rate samples, and session boundaries. |
| Withings | duration, type | Junction uses the session interval when Withings does not report time in bed and determines the sleep type from duration. |