Health Metrics
24 standardized health metrics across 8 categories.
Metric Categories
Cardiac
| Metric | Unit | LOINC | Normal Range |
heart_rate | bpm | 8867-4 | 60–100 bpm |
resting_heart_rate | bpm | 40443-4 | 60–100 (athlete: 40–60) |
heart_rate_variability | ms | 80404-7 | Varies by age/fitness |
blood_pressure | mmHg | — | <120/80 |
blood_oxygen | % | 2708-6 | 95–100% |
ecg | — | — | Device-specific |
vo2_max | mL/kg/min | 60842-2 | Varies by age/sex |
Activity
| Metric | Unit | LOINC | Daily Target |
steps | steps | 55423-8 | 7,000–10,000+ |
distance | meters | — | — |
calories_burned | kcal | 41981-2 | Varies |
active_minutes | minutes | — | 30+ min |
floors_climbed | floors | — | — |
Sleep
| Metric | Unit | LOINC | Recommendation |
sleep_duration | minutes | 93832-4 | 7–9 hours (adults) |
sleep_stages | — | — | Deep 13–23%, REM 20–25% |
sleep_score | 0–100 | — | 80+ |
Body Composition
| Metric | Unit | LOINC |
body_weight | kg | 29463-7 |
body_fat | % | 41982-0 |
bmi | kg/m² | 39156-5 |
body_temperature | °C | 8310-5 |
Other Categories
| Category | Metric | Unit |
| Respiratory | respiratory_rate | breaths/min |
| Stress | stress_level | 0–100 |
| Metabolic | blood_glucose | mg/dL |
| Metabolic | hydration | mL |
| Reproductive | menstrual_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";
};
}