Comparisons
newIntroduction
Comparisons are part of Sahha Insights . They provide context to daily scores or biomarkers by comparing them with relevant reference groups, helping to understand if values are typical, high, or low compared to global averages, similar demographic cohorts, or personal historical baselines.
List of Comparisons
| Category | Name | Description | Unit | isHigherBetter |
|---|---|---|---|---|
| score | sleep | Overall sleep quality | index | true |
| score | activity | Physical activity and movement levels | index | true |
| score | readiness | Body's recovery state and preparedness for exertion | index | true |
| score | wellbeing | Holistic health combining sleep and activity | index | true |
| score | mental_wellbeing | Mental wellbeing state based on behavioral patterns | index | true |
| biomarker | steps | Daily step count | count | true |
| biomarker | sleep_duration | Total time spent asleep | minute | true |
| biomarker | heart_rate_resting | Resting heart rate | bpm | false |
| biomarker | heart_rate_variability_sdnn | HRV measured as SDNN | ms | true |
| biomarker | heart_rate_variability_rmssd | HRV measured as RMSSD | ms | true |
| biomarker | vo2_max | Maximum oxygen uptake | mL/kg/min | true |
Browse our comprehensive data dictionary to view all available outputs beyond just comparisons.
How It Works
Comparisons provide three distinct reference points to contextualize metric values:
- Global: Comparison against global population averages.
- Demographic: Comparison against people with similar characteristics (e.g., age and gender).
- Baseline: Comparison against an individual's historical average over the last 30 days.
Comparisons are calculated daily, and include:
- The reference group's average value
- Percentile position within the group (not applicable for baseline)
- Absolute and percentage differences compared to the individual's value
- A descriptive state label (
very_low,low,average,high,very_high) based on the percentile position
Output Schema
Each comparison is scoped to a single profile and metric, calculated daily, and provides a snapshot of the profile's values relative to the three comparison groups.
id UUID Unique identifier for the comparison
type string Always set to comparison
category string One of score or biomarker
name string Metric being compared (e.g., readiness)
value float nullableYour value for this metric
unit string Unit of the metric (e.g., index, bpm, count)
isHigherBetter boolean nullableWhether higher values are better
periodicity string Frequency of calculation (daily)
startDateTime datetime Start of the daily window
endDateTime datetime End of the daily window
data ComparisonData[] List of comparisons (global, demographic, baseline)
createdAtUtc datetime UTC timestamp when calculated
version float Version of comparisons
{ "type": "comparison", "category": "score", "name": "readiness", "value": 0.75, "unit": "index", "isHigherBetter": true, "periodicity": "daily", "startDateTime": "2025-04-02T00:00:00+04:00", "endDateTime": "2025-04-02T23:59:59+04:00", "data": [ { "type": "demographic", "value": 0.71, "percentile": 58, "state": "average", "properties": { "ageMin": 30, "ageMax": 44, "gender": "female" } }, { "type": "global", "value": 0.78, "percentile": 42, "state": "average" }, { "type": "baseline", "value": 0.84, "percentile": null, "difference": -0.09, "properties": { "windowDays": 30 } } ], "createdAtUtc": "2025-04-06T09:30:00Z"} {
"type": "comparison",
"category": "score",
"name": "readiness",
"value": 0.75,
"unit": "index",
"isHigherBetter": true,
"periodicity": "daily",
"startDateTime": "2025-04-02T00:00:00+04:00",
"endDateTime": "2025-04-02T23:59:59+04:00",
"data": [
{
"type": "demographic",
"value": 0.71,
"percentile": 58,
"state": "average",
"properties": { "ageMin": 30, "ageMax": 44, "gender": "female" }
},
{ "type": "global", "value": 0.78, "percentile": 42, "state": "average" },
{
"type": "baseline",
"value": 0.84,
"percentile": null,
"difference": -0.09,
"properties": { "windowDays": 30 }
}
],
"createdAtUtc": "2025-04-06T09:30:00Z"
}
ComparisonData
Each entry in the data array contains:
type string Comparison group: global, demographic, baseline
value float nullableReference group's average value
percentile integer nullableYour percentile rank (null for baseline)
difference float nullableAbsolute difference from your value
percentageDifference float nullableRelative percentage difference
state string Comparison category: very_low, low, average, high, very_high
properties object nullableAdditional info (demographic details or baseline window)
Getting Started
Query comparisons via GET /api/v1/profile/insight/comparison
Receive daily comparison updates automatically
Support
For assistance with Comparisons or the Insights product, contact us at support@sahha.ai or join the Sahha Slack Community .
- Previous
- Trends
- Next
- Archetypes