Metric reference
Generated from the metric registry, which is the single source of truth shared by the tracking table, the API, the correlation engine and the AI tools. Registry version 2, 59 metrics.
id is the canonical field name. It is what you pass to any tool that takes a metric, and what appears as a key in stored day data.
Core
Fields you fill in yourself, in the tracking table or by voice.
| id | Type | Unit | Analytical role | Description |
|---|---|---|---|---|
date |
date | — | — | Calendar date of the entry |
wakeAt7am |
binary | — | behavior (habits) | Woke up by 7am (yes/no) |
reading30min |
binary | — | behavior (habits) | Read for at least 30 minutes (yes/no) |
takeVitamins |
binary | — | behavior (habits) | Took daily vitamins/supplements (yes/no) |
weight |
number | lbs | outcome (fitness) | Body weight in pounds (lbs) |
pushUps |
number | reps | outcome (fitness) | Number of push-ups completed |
sitUps |
number | reps | — | Number of sit-ups completed |
oneMileRun |
time | MM:SS | — | Time to run one mile (MM:SS format) |
stairsClimbed |
number | flights | — | Number of floors/flights of stairs climbed |
workoutSession |
select | — | — | Type of workout or activity status for the day |
breakfast |
text | — | — | What was eaten for breakfast |
lunch |
text | — | — | What was eaten for lunch |
dinner |
text | — | — | What was eaten for dinner |
snacks |
text | — | — | Snacks eaten throughout the day |
healthyEating |
select | — | — | Self-assessment of overall eating quality for the day |
WHOOP
Pulled from WHOOP on a schedule. Present only when the integration is connected.
| id | Type | Unit | Analytical role | Description |
|---|---|---|---|---|
whoopRecovery |
number | % | outcome (whoop) | WHOOP Recovery score (0-100%). Green 67+, Yellow 34-66, Red <34. Indicates body readiness to perform. |
whoopHrv |
number | ms | outcome (whoop) | Heart rate variability in milliseconds (rmssd). Higher = better recovery and lower stress. |
whoopSleep |
number | % | outcome (whoop) | Sleep performance percentage. 100% = full sleep need met. |
whoopStrain |
number | — | both (whoop) | Daily strain score (0-21). Light 0-9, Moderate 10-13, Hard 14-17, All-out 18+. |
whoopRhr |
number | bpm | outcome (whoop) | Resting heart rate in bpm measured during sleep. Lower trending = improving cardiovascular fitness. |
whoopDeepSleep |
number | hours | — | Hours of slow-wave (deep) sleep. Critical for physical recovery and muscle repair. |
whoopCalories |
number | kcal | — | Total calories burned for the day including BMR and activity. |
whoopSleepEfficiency |
number | % | — | Sleep efficiency - percentage of time in bed actually spent sleeping. >85% is good. |
whoopDisturbances |
number | — | — | Number of sleep disturbances detected. Lower = better sleep quality. |
whoopSpo2 |
number | % | — | Blood oxygen saturation percentage. Normal is 95-100%. Drops can indicate illness. |
whoopRespRate |
number | breaths/min | — | Respiratory rate during sleep (breaths/min). Elevated can indicate illness or stress. |
whoopRemSleep |
number | hours | — | Hours of REM sleep. Critical for cognitive recovery, memory consolidation, and emotional processing. |
whoopLightSleep |
number | hours | — | Hours of light sleep (stages 1-2). Transition sleep important for overall rest architecture. |
whoopSleepCycles |
number | — | — | Number of complete sleep cycles (each ~90 min). 4-6 cycles is optimal for full restoration. |
whoopSkinTemp |
number | °C | outcome (whoop) | Skin temperature during sleep. Deviation above personal baseline often precedes illness by a day or two. |
whoopAvgHr |
number | bpm | — | Average heart rate across the whole day, workouts included. Rising at constant strain suggests overreaching or illness. |
whoopMaxHr |
number | bpm | — | Highest heart rate reached during the day, including efforts never logged as a workout. |
whoopTimeInBed |
number | hours | — | Total hours spent in bed, asleep or not. Compare against sleep hours to see time lost to restlessness. |
whoopAwakeTime |
number | min | — | Minutes spent awake between falling asleep and getting up. Under 20 is settled; over 40 suggests a disrupted night. |
whoopSleepConsistency |
number | % | behavior (whoop) | How closely bed and wake times matched the recent pattern. Circadian regularity predicts next-day recovery about as strongly as duration does. |
whoopSleepNeed |
number | hours | — | WHOOP's calculated sleep requirement for the night: personal baseline plus what recent debt, strain, and naps add to it. |
whoopSleepDebt |
number | min | both (whoop) | Accumulated sleep shortfall carried into the night, in minutes of extra sleep owed. |
whoopBedtime |
time | — | — | Local clock time the wearer fell asleep (HH:MM, 24-hour). |
whoopWakeTime |
time | — | — | Local clock time the wearer woke (HH:MM, 24-hour). |
whoopNapTime |
number | min | — | Total minutes napped during the day, excluded from night-sleep stage totals. |
whoopNapCount |
number | — | — | Number of naps recorded during the day. |
whoopWeight |
number | lbs | — | Body weight as recorded on the WHOOP profile, in pounds. Independent of the manually tracked weight column. |
whoopWorkouts |
list | — | — | Per-session workout detail: sport, start time, duration, strain, heart rate, calories, distance, and HR zone split. |
whoopWorkoutCount |
number | — | — | Number of workouts recorded by WHOOP during the day. |
whoopWorkoutTime |
number | min | behavior (fitness) | Total minutes of recorded workout time across all sessions. |
whoopWorkoutDistance |
number | mi | — | Total distance covered across recorded workouts, in miles. |
whoopCalibrating |
binary | — | — | Set while WHOOP is still establishing the wearer's baseline, which makes that day's recovery score provisional rather than measured. |
whoopSleepNoData |
number | min | — | Minutes of the night the strap recorded nothing (taken off, or a sensor dropout). Every sleep-stage total is understated by this much. |
whoopZone1 |
number | min | — | Minutes in HR Zone 1 (50-60% max HR). Recovery/warm-up zone. |
whoopZone2 |
number | min | — | Minutes in HR Zone 2 (60-70% max HR). Fat-burning/base aerobic zone. |
whoopZone3 |
number | min | — | Minutes in HR Zone 3 (70-80% max HR). Aerobic/tempo zone. |
whoopZone4 |
number | min | — | Minutes in HR Zone 4 (80-90% max HR). Threshold/anaerobic zone. |
whoopZone5 |
number | min | — | Minutes in HR Zone 5 (90-100% max HR). Max effort/VO2max zone. |
AI-enriched nutrition
Derived from your logged meals by the nightly enrichment pass.
| id | Type | Unit | Analytical role | Description |
|---|---|---|---|---|
mealQualityScore |
number | — | behavior (nutrition) | AI-estimated meal quality score for the day. |
mealProteinEst |
number | g | behavior (nutrition) | AI-estimated protein intake from logged meals. |
mealUltraProcessed |
binary | — | behavior (nutrition) | AI-detected ultra-processed eating day (yes/no). |
Derived
Computed from other fields. These have no column in the table, but they are first-class metrics for analysis.
| id | Type | Unit | Analytical role | Description |
|---|---|---|---|---|
_exercise |
binary | — | behavior (fitness) | Derived: any exercise happened (workout logged or reps done). |
_healthyEating |
number | — | behavior (nutrition) | Derived: manual eating-quality rating as ordinal 0/1/2. |
_sleepHours |
number | hours | behavior (whoop) | Derived: total sleep hours from WHOOP sleep stages. |
Correlation catalog
Of those metrics, 16 form the daily correlation catalog — the set the nightly engine tests against each other, and the set get_daily_features returns when you do not name specific metrics.
| id | Label | Domain | Role |
|---|---|---|---|
wakeAt7am |
7am wake | habits | behavior, binary |
reading30min |
Reading | habits | behavior, binary |
takeVitamins |
Vitamins | habits | behavior, binary |
_exercise |
Exercise | fitness | behavior, binary |
weight |
Weight | fitness | outcome |
pushUps |
Push-ups | fitness | outcome |
_healthyEating |
Eating quality (manual) | nutrition | behavior |
mealQualityScore |
Meal quality (AI) | nutrition | behavior |
mealProteinEst |
Protein intake | nutrition | behavior |
mealUltraProcessed |
Ultra-processed eating | nutrition | behavior, binary |
_sleepHours |
Sleep hours | whoop | behavior |
whoopStrain |
Strain | whoop | both |
whoopRecovery |
Recovery | whoop | outcome |
whoopHrv |
HRV | whoop | outcome |
whoopRhr |
Resting HR | whoop | outcome |
whoopSleep |
Sleep performance | whoop | outcome |
Aliases
Tools that take a metric name accept aliases as well as canonical ids, so hrv resolves to whoopHrv and push-ups to pushUps. Custom columns you create are matched fuzzily by label and description.
| Canonical id | Accepted aliases |
|---|---|
wakeAt7am |
7am, wake, wake7am, wakeat7am |
reading30min |
read, reading, reading30min |
takeVitamins |
takevitamins, vitamin, vitamins |
weight |
weight |
pushUps |
push ups, push-ups, pushups |
sitUps |
sit ups, sit-ups, situps |
oneMileRun |
mile, miletime, onemilerun |
stairsClimbed |
stairs, stairsclimbed |
workoutSession |
exercise, workout, workoutsession |
healthyEating |
eating, healthy eating, healthyeating |
whoopRecovery |
recovery |
whoopHrv |
hrv |
whoopSleep |
sleepperf, sleepperformance |
whoopStrain |
strain |
whoopRhr |
restingheartrate, rhr |
whoopDeepSleep |
deepsleep |
whoopCalories |
calories |
whoopSleepEfficiency |
sleepefficiency |
whoopDisturbances |
disturbances |
whoopSpo2 |
bloodoxygen, spo2 |
whoopRespRate |
respiratoryrate, resprate |
whoopRemSleep |
rem, remsleep |
whoopLightSleep |
lightsleep |
whoopSleepCycles |
sleepcycles |
whoopSkinTemp |
skintemp, skintemperature, temperature |
whoopAvgHr |
averageheartrate, avghr |
whoopMaxHr |
maxheartrate, maxhr, peakhr |
whoopTimeInBed |
inbed, timeinbed |
whoopAwakeTime |
awaketime, timeawake, wakeaftersleeponset |
whoopSleepConsistency |
consistency, sleepconsistency |
whoopSleepNeed |
neededsleep, sleepneed |
whoopSleepDebt |
debt, sleepdebt |
whoopBedtime |
bedtime, sleepstart, wenttobed |
whoopWakeTime |
sleepend, waketime, wokeup |
whoopNapTime |
napminutes, naptime |
whoopNapCount |
napcount, naps |
whoopWeight |
strapweight, whoopweight |
whoopWorkouts |
whoopworkouts, workouts |
whoopWorkoutCount |
sessions, workoutcount |
whoopWorkoutTime |
trainingtime, workouttime |
whoopWorkoutDistance |
distance, workoutdistance |
whoopCalibrating |
calibrating, usercalibrating |
whoopSleepNoData |
nodata, sleepgap, sleepnodata |
whoopZone1 |
zone1 |
whoopZone2 |
zone2 |
whoopZone3 |
zone3 |
whoopZone4 |
zone4 |
whoopZone5 |
zone5 |
mealQualityScore |
mealquality |
mealProteinEst |
protein, proteinintake |
mealUltraProcessed |
ultraprocessed |