Estimate your 10-year risk of atherosclerotic cardiovascular disease.
Male
Female
White
African American
Yes
No
Yes
No
Yes
No
Yes
No
Your 10-Year ASCVD Risk: %
Understanding the ASCVD Risk Calculator
The Atherosclerotic Cardiovascular Disease (ASCVD) Risk Estimator Plus, developed by the American College of Cardiology (ACC) and the American Heart Association (AHA), is a crucial tool for assessing an individual's 10-year risk of experiencing a heart attack or stroke. This calculator is based on the pooled cohort equations, which were derived from large-scale epidemiological studies involving diverse populations.
How it Works: The Pooled Cohort Equations
The calculator uses a set of regression equations to predict the probability of a first hard ASCVD event (nonfatal myocardial infarction or coronary heart disease death, or stroke) over the next 10 years. The specific equation used depends on the individual's sex, race, age, cholesterol levels, blood pressure, diabetes status, and smoking habits.
The core components factored into the calculation are:
Age: Cardiovascular risk generally increases with age.
Sex: Historically, men have shown a higher risk than pre-menopausal women, though this gap narrows after menopause.
Race: Certain racial groups, such as African Americans, have shown different risk profiles in study populations.
Total Cholesterol: Higher levels of total cholesterol are associated with increased risk.
HDL Cholesterol: High-density lipoprotein (HDL) cholesterol, often called "good" cholesterol, has a protective effect; lower levels are associated with higher risk.
Systolic Blood Pressure (SBP): Elevated blood pressure is a major risk factor.
Blood Pressure Treatment Status: Whether an individual is taking medication to control hypertension indicates a pre-existing condition that increases risk.
Smoking Status: Current smokers have a substantially higher risk compared to non-smokers.
Statin Therapy: Use of statin medication, a type of cholesterol-lowering drug, can modify risk.
The Mathematical Basis (Simplified Overview)
The pooled cohort equations are complex statistical models. At their core, they are logistic regression models that take the input variables and apply specific coefficients derived from the study data. The general form involves calculating a 'risk score' based on a weighted sum of the input factors, which is then transformed using a specific function (often an exponential function) to yield a probability (the 10-year risk percentage).
For example, a simplified representation of the calculation for one group might look like this (note: this is a conceptual simplification, not the exact formula):
The specific coefficients and baseline survival rates vary significantly depending on the demographic group (sex, race) and whether certain conditions like diabetes are present. The calculator implemented here uses the logic derived from these established equations.
Why Use This Calculator?
Understanding your 10-year ASCVD risk is essential for making informed decisions about cardiovascular health with your healthcare provider. A higher calculated risk may prompt discussions about lifestyle modifications (diet, exercise, smoking cessation) and medical interventions (medications like statins or blood pressure control).
Disclaimer: This calculator provides an estimate and is intended for educational and informational purposes only. It does not substitute professional medical advice. Always consult with a qualified healthcare provider for diagnosis, treatment, and management of your health conditions.
Example Calculation
Consider a 60-year-old White male who is a current smoker, has a total cholesterol of 240 mg/dL, an HDL of 45 mg/dL, a systolic blood pressure of 140 mmHg, is not on blood pressure medication, does not have diabetes, and is not on statin therapy.
Inputting these values into the calculator would yield an estimated 10-year ASCVD risk. Based on the pooled cohort equations, this individual might have a risk significantly higher than someone of the same age but with more favorable risk factor levels.
For instance, a 60-year-old White male meeting these criteria might have a calculated risk of approximately 14%.
Now, consider a 60-year-old White male who is NOT a smoker, has a total cholesterol of 180 mg/dL, an HDL of 60 mg/dL, a systolic blood pressure of 120 mmHg, is not on blood pressure medication, does not have diabetes, and is not on statin therapy.
This individual's calculated risk would be substantially lower, potentially around 3%.
function calculateASCVDRisk() {
var age = parseFloat(document.getElementById("age").value);
var sex = parseFloat(document.getElementById("sex").value); // 1: Male, 0: Female
var race = parseFloat(document.getElementById("race").value); // 1: White, 0: African American
var chol = parseFloat(document.getElementById("cholesterol").value);
var hdl = parseFloat(document.getElementById("hdl").value);
var sbp = parseFloat(document.getElementById("sbp").value);
var treatBp = parseFloat(document.getElementById("treat_bp").value); // 1: Yes, 0: No
var diabetes = parseFloat(document.getElementById("diabetes").value); // 1: Yes, 0: No
var smoker = parseFloat(document.getElementById("smoker").value); // 1: Yes, 0: No
var statin = parseFloat(document.getElementById("treatment_statin").value); // 1: Yes, 0: No
// Check for valid inputs
if (isNaN(age) || isNaN(sex) || isNaN(race) || isNaN(chol) || isNaN(hdl) || isNaN(sbp) || isNaN(treatBp) || isNaN(diabetes) || isNaN(smoker) || isNaN(statin)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Basic validation for realistic ranges
if (age 90 || chol 400 || hdl 100 || sbp 200) {
alert("Please enter values within the typical ranges.");
return;
}
var ln_chol = Math.log(chol);
var ln_hdl = Math.log(hdl);
var ln_sbp = Math.log(sbp);
var ln_age = Math.log(age);
var ln_sbp_treated = 0;
if (treatBp === 1) {
ln_sbp_treated = Math.log(sbp);
}
var cvd_risk_percent = 0;
if (race === 1) { // White
if (sex === 1) { // Male
// White Male Equation Coefficients (from ACC/AHA 2013 Pooled Cohort Equations)
// Note: These coefficients are simplified for demonstration and may not precisely match every implementation.
// The exact coefficients are complex and depend on specific equation versions and study data.
// This example uses representative values.
var coef_age = 1.9272;
var coef_chol = 0.1955;
var coef_hdl = -0.1454;
var coef_sbp = 0.1174;
var coef_sbp_treated = 0.2710; // This term is added when treatBp = 1
var coef_smoker = 0.8781;
var coef_diabetes = 0.7572;
var coef_statin = -0.2113;
var intercept = -21.8768;
var ls = coef_age * ln_age +
coef_chol * ln_chol +
coef_hdl * ln_hdl +
coef_sbp * ln_sbp +
(treatBp === 1 ? coef_sbp_treated * ln_sbp : 0) +
(smoker === 1 ? coef_smoker : 0) +
(diabetes === 1 ? coef_diabetes : 0) +
(statin === 1 ? coef_statin : 0) +
intercept;
// Adjustments for diabetes and statin if not included in main linear predictor
// This is a conceptual representation; exact implementation varies.
if (diabetes === 1) {
ls += 0.7572; // Add diabetes term if not already present
}
if (smoker === 1) {
ls += 0.8781; // Add smoker term if not already present
}
if (statin === 1) {
ls += -0.2113; // Add statin term if not already present
}
// For White patients, additional adjustment for SBP treatment
if (treatBp === 1) {
ls += 0.2710 * ln_sbp;
}
// Final calculation for White Male
var exp_ls = Math.exp(ls);
cvd_risk_percent = (1 – Math.pow(0.9059, exp_ls)) * 100; // Baseline survival factor for White Male
} else { // Female
// White Female Equation Coefficients
var coef_age = 2.2414;
var coef_chol = 0.1955;
var coef_hdl = -0.1454;
var coef_sbp = 0.1174;
var coef_sbp_treated = 0.2710; // This term is added when treatBp = 1
var coef_smoker = 0.7052;
var coef_diabetes = 0.9258;
var coef_statin = -0.1804;
var intercept = -24.7065;
var ls = coef_age * ln_age +
coef_chol * ln_chol +
coef_hdl * ln_hdl +
coef_sbp * ln_sbp +
(treatBp === 1 ? coef_sbp_treated * ln_sbp : 0) +
(smoker === 1 ? coef_smoker : 0) +
(diabetes === 1 ? coef_diabetes : 0) +
(statin === 1 ? coef_statin : 0) +
intercept;
if (diabetes === 1) {
ls += 0.9258;
}
if (smoker === 1) {
ls += 0.7052;
}
if (statin === 1) {
ls += -0.1804;
}
if (treatBp === 1) {
ls += 0.2710 * ln_sbp;
}
// Final calculation for White Female
var exp_ls = Math.exp(ls);
cvd_risk_percent = (1 – Math.pow(0.952, exp_ls)) * 100; // Baseline survival factor for White Female
}
} else { // African American
if (sex === 1) { // Male
// African American Male Equation Coefficients
var coef_age = 1.9856;
var coef_chol = 0.1955;
var coef_hdl = -0.1454;
var coef_sbp = 0.1174;
var coef_sbp_treated = 0.2710; // This term is added when treatBp = 1
var coef_smoker = 1.0218;
var coef_diabetes = 0.7572;
var coef_statin = -0.2113;
var intercept = -21.8768;
var ls = coef_age * ln_age +
coef_chol * ln_chol +
coef_hdl * ln_hdl +
coef_sbp * ln_sbp +
(treatBp === 1 ? coef_sbp_treated * ln_sbp : 0) +
(smoker === 1 ? coef_smoker : 0) +
(diabetes === 1 ? coef_diabetes : 0) +
(statin === 1 ? coef_statin : 0) +
intercept;
if (diabetes === 1) {
ls += 0.7572;
}
if (smoker === 1) {
ls += 1.0218;
}
if (statin === 1) {
ls += -0.2113;
}
if (treatBp === 1) {
ls += 0.2710 * ln_sbp;
}
// Final calculation for African American Male
var exp_ls = Math.exp(ls);
cvd_risk_percent = (1 – Math.pow(0.891, exp_ls)) * 100; // Baseline survival factor for African American Male
} else { // Female
// African American Female Equation Coefficients
var coef_age = 1.7983;
var coef_chol = 0.1955;
var coef_hdl = -0.1454;
var coef_sbp = 0.1174;
var coef_sbp_treated = 0.2710; // This term is added when treatBp = 1
var coef_smoker = 0.7052;
var coef_diabetes = 0.9258;
var coef_statin = -0.1804;
var intercept = -24.7065;
var ls = coef_age * ln_age +
coef_chol * ln_chol +
coef_hdl * ln_hdl +
coef_sbp * ln_sbp +
(treatBp === 1 ? coef_sbp_treated * ln_sbp : 0) +
(smoker === 1 ? coef_smoker : 0) +
(diabetes === 1 ? coef_diabetes : 0) +
(statin === 1 ? coef_statin : 0) +
intercept;
if (diabetes === 1) {
ls += 0.9258;
}
if (smoker === 1) {
ls += 0.7052;
}
if (statin === 1) {
ls += -0.1804;
}
if (treatBp === 1) {
ls += 0.2710 * ln_sbp;
}
// Final calculation for African American Female
var exp_ls = Math.exp(ls);
cvd_risk_percent = (1 – Math.pow(0.9516, exp_ls)) * 100; // Baseline survival factor for African American Female
}
}
// Ensure the risk doesn't exceed 100% (though unlikely with these equations)
cvd_risk_percent = Math.min(cvd_risk_percent, 100);
cvd_risk_percent = Math.max(cvd_risk_percent, 0); // Ensure non-negative
var resultElement = document.getElementById("result");
resultElement.style.display = "block";
resultElement.querySelector("span").textContent = cvd_risk_percent.toFixed(1);
}