Health Metrics

24 standardized health metrics across 8 categories.

Metric Categories

Cardiac

MetricUnitLOINCNormal Range
heart_ratebpm8867-460–100 bpm
resting_heart_ratebpm40443-460–100 (athlete: 40–60)
heart_rate_variabilityms80404-7Varies by age/fitness
blood_pressuremmHg<120/80
blood_oxygen%2708-695–100%
ecgDevice-specific
vo2_maxmL/kg/min60842-2Varies by age/sex

Activity

MetricUnitLOINCDaily Target
stepssteps55423-87,000–10,000+
distancemeters
calories_burnedkcal41981-2Varies
active_minutesminutes30+ min
floors_climbedfloors

Sleep

MetricUnitLOINCRecommendation
sleep_durationminutes93832-47–9 hours (adults)
sleep_stagesDeep 13–23%, REM 20–25%
sleep_score0–10080+

Body Composition

MetricUnitLOINC
body_weightkg29463-7
body_fat%41982-0
bmikg/m²39156-5
body_temperature°C8310-5

Other Categories

CategoryMetricUnit
Respiratoryrespiratory_ratebreaths/min
Stressstress_level0–100
Metabolicblood_glucosemg/dL
MetabolichydrationmL
Reproductivemenstrual_cycle

VitalDataPoint Schema

interface VitalDataPoint {
  id: string;          // unique identifier
  userId: string;      // user this belongs to
  metric: MetricType;  // one of 24 metric types
  value: number;       // numeric value
  unit: string;        // measurement unit
  timestamp: string;   // ISO 8601
  source: ProviderType; // origin device/provider
  metadata?: Record<string, unknown>; // extra data
}

Specialized Types

Some metrics have extended interfaces with richer metadata:

// Blood pressure includes systolic/diastolic
interface BloodPressureReading extends VitalDataPoint {
  metadata: {
    systolic: number;
    diastolic: number;
    position?: "sitting" | "standing" | "lying";
  };
}

// Sleep includes stage breakdown
interface SleepReading extends VitalDataPoint {
  metadata?: {
    stages?: { deep: number; light: number; rem: number; awake: number; };
    efficiency?: number;
    latency?: number;
  };
}

// Blood glucose includes meal context
interface BloodGlucoseReading extends VitalDataPoint {
  metadata?: {
    mealContext?: "fasting" | "before_meal" | "after_meal" | "bedtime";
  };
}