{
  "spec": "Open Physiological Age (OPA)",
  "version": "0.1.0-draft",
  "status": "draft — for community review, not for clinical use",
  "license": "CC-BY-4.0",
  "unit": {
    "description": "Each signal is scored as L = ln(hazard ratio) relative to the average person of the same age and sex, so an average person scores 0. Years = L / ln(base).",
    "gompertz_base": 1.09,
    "offset_clip_years": 15
  },
  "clusters": {
    "A": { "name": "cardiorespiratory and activity", "discount": 0.5 },
    "B": { "name": "sleep", "discount": 0.75 },
    "C": { "name": "cardiometabolic labs and anthropometry", "discount": 0.7 },
    "D": { "name": "muscular strength", "discount": 0.7 },
    "E": { "name": "exposures", "discount": 1.0 }
  },
  "overlap_rule": "Within a cluster, signals are sorted by |L| descending; the first counts 100%, each further signal counts at the cluster discount. Clusters add.",
  "range": {
    "level": 0.8,
    "z": 1.2816,
    "base_sd_years": 2.5,
    "missing_key_sd_years": 0.6,
    "evidence_q": { "strong": 0.25, "moderate": 0.4, "limited": 0.6 },
    "wearable_vo2max_extra_q": 0.15,
    "key_signals": ["vo2max", "resting_hr", "sleep_duration", "sleep_regularity", "glycemia", "waist_to_height", "systolic_bp", "egfr", "grip", "steps", "smoking", "alcohol"]
  },
  "norms": {
    "age_knots": [24.5, 34.5, 44.5, 54.5, 64.5, 74.5, 84.5],
    "vo2max_p50": { "female": [35.2, 32.3, 29.5, 27.0, 23.5, 20.0, 16.5], "male": [42.5, 40.0, 37.0, 35.2, 31.0, 26.5, 22.0], "source": "ACSM GETP 11th ed., cardiorespiratory fitness percentiles (FRIEND registry)" },
    "vo2max_p95": { "female": [49.6, 46.5, 43.5, 41.0, 36.8, 32.0, 27.5], "male": [57.0, 54.3, 51.5, 49.7, 45.0, 40.2, 35.0], "source": "ACSM GETP 11th ed. (FRIEND registry)" },
    "ln_rmssd_mean": { "any": [4.03, 3.87, 3.69, 3.52, 3.35, 3.18, 3.02], "source": "population norms for nocturnal rMSSD; placeholder pending a pooled open reference" },
    "ln_rmssd_sd": { "any": [0.45, 0.44, 0.42, 0.40, 0.38, 0.36, 0.34] },
    "grip_p50": { "age_knots": [25, 35, 45, 55, 65, 75], "female": [30.0, 29.5, 28.5, 27.0, 24.0, 21.0], "male": [50.0, 50.0, 48.0, 45.0, 41.0, 36.0], "source": "approximate, UK Biobank scale (Dodds et al. 2014 centiles); to be replaced by an open pooled table" },
    "steps_plateau": { "age_step": 60, "below": 10000, "at_or_above": 8000, "source": "Paluch et al., Lancet Public Health 2022" },
    "steps_average": { "age_step": 60, "below": 6500, "at_or_above": 5500, "source": "population average, placeholder" }
  },
  "signals": [
    { "id": "vo2max", "domain": "fitness", "cluster": "A", "evidence": "strong", "input": "vo2max_ml_kg_min", "unit": "ml/kg/min",
      "rule": { "type": "linear", "hr": 0.87, "per": 3.5, "ref": { "norm": "vo2max_p50" }, "clamp": { "hi": { "norm": "vo2max_p95" } } },
      "text": "0.87x risk per MET (3.5 ml/kg/min) above the age-and-sex median, capped at the 95th percentile.",
      "refs": ["kodama2009", "mandsager2018"] },
    { "id": "hr_recovery", "domain": "fitness", "cluster": "A", "evidence": "moderate", "input": "hrr_1min_bpm", "unit": "bpm",
      "rule": { "type": "sum", "terms": [ { "type": "linear", "hr": 1.09, "per": -10, "ref": 25 }, { "type": "threshold", "op": "lt", "value": 12, "hr": 1.55 } ] },
      "text": "1.09x per 10 bpm slower than 25 bpm in the first minute after effort; an extra 1.55x below 12 bpm.",
      "refs": ["cole1999"] },
    { "id": "resting_hr", "domain": "heart", "cluster": "A", "evidence": "strong", "input": "resting_hr_bpm", "unit": "bpm",
      "rule": { "type": "linear", "hr": 1.09, "per": 10, "ref": 70, "clamp": { "lo": 45, "hi": 100 } },
      "text": "1.09x per 10 bpm above or below 70, counted between 45 and 100.",
      "refs": ["zhang2016"] },
    { "id": "hrv_low", "domain": "heart", "cluster": "A", "evidence": "limited", "input": "rmssd_ms", "unit": "ms",
      "rule": { "type": "z_threshold", "transform": "ln", "mean": { "norm": "ln_rmssd_mean" }, "sd": { "norm": "ln_rmssd_sd" }, "op": "lt", "z": -0.84, "hr": 1.16 },
      "text": "Only the lowest fifth for age counts (1.16x).",
      "refs": ["ukb_hrv2023"] },
    { "id": "resp_rate", "domain": "heart", "cluster": "A", "evidence": "limited", "input": "night_resp_rate_per_min", "unit": "/min",
      "rule": { "type": "threshold", "op": "ge", "value": 16, "hr": 1.18 },
      "text": "1.18x at 16 breaths per minute or more during sleep.",
      "refs": ["mros_sof"] },
    { "id": "sleep_duration", "domain": "sleep", "cluster": "B", "evidence": "strong", "input": "sleep_hours", "unit": "h",
      "rule": { "type": "bands", "bands": [ { "lt": 6, "hr": 1.12 }, { "lt": 7, "hr": 1.04 }, { "le": 9, "hr": 1.0 }, { "hr": 1.30 } ] },
      "text": "Below 6 h 1.12x, 6-7 h 1.04x, 7-9 h neutral, above 9 h 1.30x.",
      "refs": ["cappuccio2010"] },
    { "id": "sleep_regularity", "domain": "sleep", "cluster": "B", "evidence": "moderate", "input": "sri_0_100", "unit": "SRI",
      "rule": { "type": "piecewise_hr", "points": [ [60, 1.43], [72, 1.43], [75.5, 1.14], [81, 1.0], [87, 0.85], [100, 0.85] ] },
      "text": "Sleep Regularity Index 0-100, interpolated on the log scale through the quintile hazard ratios.",
      "refs": ["windred2024"] },
    { "id": "glycemia", "domain": "metabolic", "cluster": "C", "evidence": "strong",
      "rule": { "type": "max_of", "terms": [
        { "input": "hba1c_pct", "type": "bands", "bands": [ { "lt": 5.7, "hr": 1.0 }, { "lt": 6.5, "hr": 1.10 }, { "hr": 1.80 } ] },
        { "input": "fasting_glucose_mg_dl", "type": "bands", "bands": [ { "lt": 100, "hr": 1.0 }, { "lt": 126, "hr": 1.10 }, { "hr": 1.80 } ] } ] },
      "text": "Prediabetes range 1.10x, diabetes range 1.80x; the worse of HbA1c and fasting glucose counts once.",
      "refs": ["erfc2011", "selvin2010"] },
    { "id": "waist_to_height", "domain": "metabolic", "cluster": "C", "evidence": "strong", "input": "waist_to_height", "unit": "ratio",
      "rule": { "type": "linear", "hr": 1.24, "per": 0.1, "ref": 0.5, "clamp": { "lo": 0.5 } },
      "text": "1.24x per 0.1 above 0.50.",
      "refs": ["jayedi2020"] },
    { "id": "crp", "domain": "metabolic", "cluster": "C", "evidence": "moderate", "input": "hs_crp_mg_l", "unit": "mg/L",
      "rule": { "type": "threshold", "op": "gt", "value": 3, "hr": 1.44 },
      "text": "1.44x above 3 mg/L.",
      "refs": ["erfc2010"] },
    { "id": "systolic_bp", "domain": "metabolic", "cluster": "C", "evidence": "strong", "provisional": true, "input": "systolic_bp_mmhg", "unit": "mmHg",
      "rule": { "type": "linear", "hr": 1.30, "per": 20, "ref": 120, "clamp": { "lo": 120 } },
      "text": "Provisional: 1.30x per 20 mmHg systolic above 120 (7-day home mean). All-cause value to be verified.",
      "refs": ["lewington2002"] },
    { "id": "egfr", "domain": "metabolic", "cluster": "C", "evidence": "strong", "input": "egfr_ml_min", "unit": "mL/min/1.73m2",
      "rule": { "type": "piecewise_hr", "points": [ [15, 3.14], [45, 1.57], [60, 1.18], [95, 1.0], [200, 1.0] ] },
      "text": "1.18x at 60, 1.57x at 45, 3.14x at 15, versus 95.",
      "refs": ["ckdpc2010"] },
    { "id": "grip", "domain": "strength", "cluster": "D", "evidence": "strong", "input": "grip_kg", "unit": "kg",
      "rule": { "type": "linear", "hr": 1.16, "per": -5, "ref": { "norm": "grip_p50" }, "units_clamp": [-2, 4] },
      "text": "1.16x per 5 kg below the age-and-sex median; benefit capped at 10 kg above.",
      "refs": ["leong2015", "celismorales2018"] },
    { "id": "strength_training", "domain": "strength", "cluster": "D", "evidence": "moderate", "input": "strength_min_per_week", "unit": "min/week",
      "rule": { "type": "bands", "bands": [ { "lt": 10, "hr": 1.0 }, { "lt": 30, "hr": 0.88 }, { "le": 60, "hr": 0.85 }, { "le": 150, "hr": 0.88 }, { "hr": 0.95 } ] },
      "text": "None 1.0x; 10-29 min 0.88x; 30-60 min 0.85x; 61-150 min 0.88x; above 150 min 0.95x.",
      "refs": ["momma2022"] },
    { "id": "steps", "domain": "habits", "cluster": "A", "evidence": "strong", "input": "steps_per_day", "unit": "steps/day",
      "rule": { "type": "saturating_relative", "floor": 2500, "plateau": { "norm": "steps_plateau" }, "ref": { "norm": "steps_average" }, "hr_at_plateau": 0.5 },
      "text": "Risk falls from 2,500 steps to 0.50x at the plateau (10,000; 8,000 from age 60), scored against the average for age.",
      "refs": ["paluch2022"] },
    { "id": "sedentary", "domain": "habits", "cluster": "A", "evidence": "strong", "input": "sedentary_hours", "unit": "h/day", "device_measured_only": true,
      "rule": { "type": "sedentary_offset", "ln_per_hour": 0.43, "threshold_h": 9.5, "offset_input": "mvpa_min_per_day", "offset_full_min": 60 },
      "text": "Risk rises above 9.5 h of device-measured sitting a day and is cancelled by 60 min of moderate-to-vigorous activity.",
      "refs": ["ekelund2016", "ekelund2019"] },
    { "id": "smoking", "domain": "habits", "cluster": "E", "evidence": "strong", "input": "smoking_status",
      "rule": { "type": "smoking", "current_hr": { "female": 3.0, "male": 2.8 }, "former_fraction_by_quit_age": [ { "lt": 35, "f": 0.05 }, { "lt": 45, "f": 0.10 }, { "lt": 55, "f": 0.40 }, { "f": 0.60 } ], "former_unknown_quit_fraction": 0.40 },
      "text": "Current smoking 3.0x (women) or 2.8x (men); former smokers by age at quitting.",
      "refs": ["jha2013"] },
    { "id": "alcohol", "domain": "habits", "cluster": "E", "evidence": "strong", "input": "drinks_per_week", "unit": "US standard drinks (14 g)/week",
      "rule": { "type": "bands_years", "bands": [ { "le": 7, "years": 0 }, { "le": 14, "years": 0.5 }, { "le": 25, "years": 1.5 }, { "years": 4.5 } ] },
      "text": "Lowest risk up to about 7 drinks a week; above that 0.5, 1.5 and 4.5 years.",
      "refs": ["wood2018"] }
  ],
  "references": {
    "kodama2009": "Kodama S et al. Cardiorespiratory fitness as a quantitative predictor of all-cause mortality. JAMA 2009;301:2024-35.",
    "mandsager2018": "Mandsager K et al. Association of cardiorespiratory fitness with long-term mortality. JAMA Netw Open 2018;1:e183605.",
    "cole1999": "Cole CR et al. Heart-rate recovery immediately after exercise as a predictor of mortality. NEJM 1999;341:1351-7.",
    "zhang2016": "Zhang D et al. Resting heart rate and all-cause and cardiovascular mortality. CMAJ 2016;188:E53-63.",
    "ukb_hrv2023": "UK Biobank HRV and mortality analyses (placeholder; citation to be confirmed by the evidence working group).",
    "mros_sof": "MrOS and SOF sleep cohorts, nocturnal respiratory rate (placeholder; citation to be confirmed).",
    "cappuccio2010": "Cappuccio FP et al. Sleep duration and all-cause mortality. Sleep 2010;33:585-92.",
    "windred2024": "Windred DP et al. Sleep regularity is a stronger predictor of mortality risk than sleep duration. Sleep 2024;47:zsad253.",
    "erfc2011": "Emerging Risk Factors Collaboration. Diabetes mellitus, fasting glucose, and risk of cause-specific death. NEJM 2011;364:829-41.",
    "selvin2010": "Selvin E et al. Glycated hemoglobin, diabetes, and cardiovascular risk in nondiabetic adults. NEJM 2010;362:800-11.",
    "jayedi2020": "Jayedi A et al. Central fatness and risk of all cause mortality. BMJ 2020;370:m3324.",
    "erfc2010": "Emerging Risk Factors Collaboration. C-reactive protein concentration and risk of coronary heart disease, stroke, and mortality. Lancet 2010;375:132-40.",
    "lewington2002": "Lewington S et al. Age-specific relevance of usual blood pressure to vascular mortality. Lancet 2002;360:1903-13.",
    "ckdpc2010": "Chronic Kidney Disease Prognosis Consortium. Association of eGFR and albuminuria with all-cause and cardiovascular mortality. Lancet 2010;375:2073-81.",
    "leong2015": "Leong DP et al. Prognostic value of grip strength (PURE). Lancet 2015;386:266-73.",
    "celismorales2018": "Celis-Morales CA et al. Associations of grip strength with cardiovascular, respiratory, and cancer outcomes and all cause mortality. BMJ 2018;361:k1651.",
    "momma2022": "Momma H et al. Muscle-strengthening activities are associated with lower risk and mortality. Br J Sports Med 2022;56:755-63.",
    "paluch2022": "Paluch AE et al. Daily steps and all-cause mortality: a meta-analysis of 15 international cohorts. Lancet Public Health 2022;7:e219-28.",
    "ekelund2016": "Ekelund U et al. Does physical activity attenuate the detrimental association of sitting time with mortality? Lancet 2016;388:1302-10.",
    "ekelund2019": "Ekelund U et al. Dose-response associations between accelerometry measured physical activity and sedentary time and all cause mortality. BMJ 2019;366:l4570.",
    "jha2013": "Jha P et al. 21st-century hazards of smoking and benefits of cessation in the United States. NEJM 2013;368:341-50.",
    "wood2018": "Wood AM et al. Risk thresholds for alcohol consumption. Lancet 2018;391:1513-23."
  }
}
