{
  "id": "heart-age",
  "version": "ef066ecf8439",
  "status": "published",
  "name": "Heart Age Calculator",
  "question": "What is my heart age?",
  "summary": "Estimates your heart age, the age of someone with an ideal risk profile and the same 10-year heart disease and stroke risk, from age, sex, blood pressure, BMI, smoking and diabetes (Framingham BMI model).",
  "category": "health",
  "subcategory": "body",
  "url": "https://www.acalculator.org/health/heart-age-calculator",
  "markdown": "https://www.acalculator.org/health/heart-age-calculator.md",
  "kind": "function",
  "method": "Heart age = age × exp((Σβx − Σβx_ideal) ÷ β_age), where Σβx = β_BMI ln(BMI) + β_SBP ln(SBP) + β_smoker + β_diabetes for you and for the ideal profile (SBP 120 untreated, BMI 22.5, no smoking, no diabetes); capped at 100.",
  "assumptions": [
    "Adults aged 30 to 74 without heart disease, as in the Framingham study.",
    "The ideal profile follows the CDC (not smoking, SBP 120 mmHg or less, BMI under 25, no diabetes); this page sets SBP at 120 untreated and BMI at 22.5, the middle of 20 to 25.",
    "An estimate of risk for education, not a diagnosis; it leaves out cholesterol and family history."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "sex": {
        "title": "Sex",
        "description": "Your sex, which picks the model.",
        "type": "string",
        "enum": [
          "male",
          "female"
        ]
      },
      "age": {
        "title": "Age",
        "description": "Your age in years; the model covers 30 to 74.",
        "type": "integer",
        "minimum": 30,
        "maximum": 74
      },
      "sbp": {
        "title": "Systolic blood pressure (mmHg)",
        "description": "The top number of your blood pressure reading.",
        "type": "number",
        "minimum": 90,
        "maximum": 220
      },
      "bpmed": {
        "title": "Blood pressure medicine",
        "description": "Whether you take medicine for high blood pressure.",
        "type": "string",
        "enum": [
          "no",
          "yes"
        ]
      },
      "smoker": {
        "title": "Smoker",
        "description": "Whether you smoke now.",
        "type": "string",
        "enum": [
          "no",
          "yes"
        ]
      },
      "diabetes": {
        "title": "Diabetes",
        "description": "Whether you have diabetes.",
        "type": "string",
        "enum": [
          "no",
          "yes"
        ]
      },
      "height": {
        "title": "Height",
        "description": "Your height without shoes.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 1.2,
        "maximum": 2.3
      },
      "weight": {
        "title": "Weight",
        "description": "Your body weight.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "mass",
        "minimum": 30,
        "maximum": 300
      }
    }
  },
  "outputs": {
    "heartAge": {
      "label": "Heart age",
      "description": "The age of a person with the ideal profile and your predicted risk, capped at 100.",
      "format": "number"
    },
    "gap": {
      "label": "Years above your age",
      "description": "Heart age − age: negative means younger than your age.",
      "format": "number"
    },
    "bmi": {
      "label": "BMI",
      "description": "Weight (kg) ÷ height (m)².",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "sex": "male",
      "age": 50,
      "sbp": 130,
      "bpmed": "no",
      "smoker": "no",
      "diabetes": "no",
      "weight": 86.1825503,
      "height": 1.7526
    },
    "outputs": {
      "heartAge": 55.47544340811261,
      "gap": 5.475443408112611,
      "bmi": 28.05780721097254
    },
    "text": "Your heart age is 55 years."
  },
  "examples": [
    {
      "given": {
        "sex": "male",
        "age": 50,
        "sbp": 130,
        "bpmed": "no",
        "smoker": "no",
        "diabetes": "no",
        "height": 1.75,
        "weight": 80
      },
      "expect": {
        "heartAge": 54.47483730571281,
        "gap": 4.47483730571281
      },
      "source": "Framingham Heart Study, Cardiovascular Disease (10-year risk), BMI-based model coefficients (D’Agostino and others, Circulation 2008;117:743), https://www.framinghamheartstudy.org/fhs-risk-functions/cardiovascular-disease-10-year-risk/ (retrieved 2026-10-05); CDC, Vital Signs: Predicted Heart Age and Racial Disparities in Heart Age Among U.S. Adults at the State Level, MMWR 2015;64(34) (non-laboratory Framingham model; ideal profile not smoking, SBP ≤ 120 mmHg, BMI < 25, no diabetes; heart age capped at 100), https://www.cdc.gov/mmwr/preview/mmwrhtml/mm6434a6.htm (retrieved 2026-10-05); hand calculation in content.mdx: 50 × exp((0.79277 ln 26.122 + 1.85508 ln 130 − 0.79277 ln 22.5 − 1.85508 ln 120) ÷ 3.11296) = 54.5",
      "tolerance": 1e-9
    },
    {
      "given": {
        "sex": "female",
        "age": 55,
        "sbp": 140,
        "bpmed": "no",
        "smoker": "no",
        "diabetes": "no",
        "height": 1.6,
        "weight": 71.68
      },
      "expect": {
        "heartAge": 67.20685376985517,
        "bmi": 28
      },
      "source": "Framingham Heart Study, Cardiovascular Disease (10-year risk), BMI-based model coefficients (D’Agostino and others, Circulation 2008;117:743), https://www.framinghamheartstudy.org/fhs-risk-functions/cardiovascular-disease-10-year-risk/ (retrieved 2026-10-05); CDC, Vital Signs: Predicted Heart Age and Racial Disparities in Heart Age Among U.S. Adults at the State Level, MMWR 2015;64(34) (non-laboratory Framingham model; ideal profile not smoking, SBP ≤ 120 mmHg, BMI < 25, no diabetes; heart age capped at 100), https://www.cdc.gov/mmwr/preview/mmwrhtml/mm6434a6.htm (retrieved 2026-10-05); hand calculation in content.mdx: 55 × exp((0.51125 ln(28 ÷ 22.5) + 2.81291 ln(140 ÷ 120)) ÷ 2.72107) = 67.2",
      "tolerance": 1e-9
    },
    {
      "given": {
        "sex": "male",
        "age": 70,
        "sbp": 180,
        "bpmed": "yes",
        "smoker": "yes",
        "diabetes": "yes",
        "height": 1.75,
        "weight": 107.1875
      },
      "expect": {
        "heartAge": 100,
        "gap": 30,
        "bmi": 35
      },
      "source": "Framingham Heart Study, Cardiovascular Disease (10-year risk), BMI-based model coefficients (D’Agostino and others, Circulation 2008;117:743), https://www.framinghamheartstudy.org/fhs-risk-functions/cardiovascular-disease-10-year-risk/ (retrieved 2026-10-05); CDC, Vital Signs: Predicted Heart Age and Racial Disparities in Heart Age Among U.S. Adults at the State Level, MMWR 2015;64(34) (non-laboratory Framingham model; ideal profile not smoking, SBP ≤ 120 mmHg, BMI < 25, no diabetes; heart age capped at 100), https://www.cdc.gov/mmwr/preview/mmwrhtml/mm6434a6.htm (retrieved 2026-10-05) (cap at 100); hand calculation in content.mdx: the uncapped value is over 100"
    }
  ],
  "sources": [
    "Framingham Heart Study. Cardiovascular Disease (10-year risk): BMI-based model coefficients, from D’Agostino RB Sr and others, General cardiovascular risk profile for use in primary care, Circulation 2008;117:743-753, retrieved 2026-10-05. https://www.framinghamheartstudy.org/fhs-risk-functions/cardiovascular-disease-10-year-risk/",
    "Centers for Disease Control and Prevention. Vital Signs: Predicted Heart Age and Racial Disparities in Heart Age Among U.S. Adults at the State Level. MMWR 2015;64(34), retrieved 2026-10-05. https://www.cdc.gov/mmwr/preview/mmwrhtml/mm6434a6.htm"
  ],
  "related": [
    "ascvd-risk",
    "blood-pressure",
    "biological-age"
  ],
  "changelog": []
}
