The 10-year Atherosclerotic Cardiovascular Disease (ASCVD) risk calculator estimates an individual's probability of experiencing a first hard ASCVD event within the next 10 years. Hard ASCVD events include non-fatal myocardial infarction (heart attack), coronary heart disease death, and fatal or non-fatal stroke. This calculator is based on the Pooled Cohort Equations developed by the ACC/AHA (American College of Cardiology/American Heart Association) guidelines.
How it Works: The Pooled Cohort Equations
The calculator uses a set of regression equations derived from large population studies. These equations take into account several key risk factors that are well-established predictors of ASCVD:
Age: Risk generally increases with age.
Sex: Historically, men have had a higher risk than premenopausal women, though risk equalizes after menopause.
Race: Differences in risk exist between racial groups, notably between Black and White individuals, reflecting variations in underlying risk factor prevalence and response to treatment.
Total Cholesterol: Higher levels are associated with increased risk.
HDL Cholesterol: "Good" cholesterol; higher levels are protective and associated with lower risk.
Systolic Blood Pressure (SBP): Higher SBP is a significant risk factor.
Treatment for Hypertension: Individuals on blood pressure medication have a higher underlying risk, even if their current blood pressure is controlled.
Diabetes Status: Diabetes significantly increases ASCVD risk due to its impact on blood vessels.
Smoking Status: Current smoking is a major modifiable risk factor for ASCVD.
Interpreting the Results
The output is a percentage representing your estimated risk of having a hard ASCVD event in the next 10 years.
Low Risk (< 7.5%): Generally indicates a favorable prognosis. Lifestyle modifications are recommended.
Borderline Risk (7.5% – 19.9%): May benefit from more intensive risk factor management, including lifestyle changes and potentially pharmacologic therapy (e.g., statins), based on a clinician's judgment and patient factors.
Intermediate to High Risk (≥ 20%): Indicates a substantial risk. Intensive risk factor management, including lifestyle changes and likely pharmacologic therapy (e.g., statins), is strongly recommended.
Disclaimer: This calculator provides an estimate based on population data. It is intended for informational purposes and should not replace professional medical advice. Always consult with a qualified healthcare provider for diagnosis, treatment, and personalized risk assessment. They can consider your unique medical history and other factors not included in this simplified model.
Mathematical Basis (Simplified Overview)
The core of the calculator uses logistic regression models. For example, a simplified representation for the 10-year risk calculation might involve terms like:
The specific coefficients (β values) differ for men and women, and for different racial groups (e.g., White vs. Black). After calculating the "log odds," a transformation is applied to convert this into a probability:
Probability = 1 / (1 + exp(-Log odds))
The provided JavaScript implements these complex formulas based on the actual ACC/AHA Pooled Cohort Equations.
function calculateASCVD() {
// Get input values
var age = parseFloat(document.getElementById("age").value);
var sex = document.getElementById("sex").value;
var race = document.getElementById("race").value;
var cholesterol = parseFloat(document.getElementById("cholesterol").value);
var hdl = parseFloat(document.getElementById("hdl").value);
var sbp = parseFloat(document.getElementById("sbp").value);
var treated = document.getElementById("treated").value;
var diabetes = document.getElementById("diabetes").value;
var smoking = document.getElementById("smoking").value;
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = "; // Clear previous result
// Input validation
if (isNaN(age) || isNaN(cholesterol) || isNaN(hdl) || isNaN(sbp) ||
age 90 || cholesterol 400 ||
hdl 100 || sbp 200) {
resultDiv.innerHTML = "Please enter valid numbers within the specified ranges.";
resultDiv.style.backgroundColor = '#dc3545'; // Error color
return;
}
var result;
// Coefficients based on ACC/AHA Pooled Cohort Equations (example values, actual equations are complex)
// These are simplified representations; the actual calculation involves multiple terms and interactions.
// For accuracy, refer to the official ACC/AHA guidelines or validated implementations.
var term1, term2, term3, term4, term5, term6, term7, term8, term9, term10, term11, term12;
var log_chol_ratio = Math.log(cholesterol);
var log_age = Math.log(age);
var sbp_effective = sbp;
if (treated === "yes") {
sbp_effective = sbp – 20; // Adjust SBP if on medication
}
var log_sbp_effective = Math.log(sbp_effective);
if (race === "white") {
if (sex === "male") {
term1 = -6.2497;
term2 = 1.1521 * log_age;
term3 = 0.7724 * log_chol_ratio;
term4 = -0.4235 * Math.log(hdl);
term5 = 0.2040 * log_sbp_effective;
term6 = 0.3180 * (smoking === "yes" ? 1 : 0); // Smoking term
term7 = 0.1498; // Diabetes term
if (diabetes === "yes") term7 = 0.1498 + 0.8774; // Add diabetes coefficient if diabetic
term8 = 0; // Interaction terms (simplified)
term9 = 0;
term10 = 0;
term11 = 0;
term12 = 0;
} else { // Female, White
term1 = -5.6793;
term2 = 1.3248 * log_age;
term3 = 0.5924 * log_chol_ratio;
term4 = -0.7177 * Math.log(hdl);
term5 = 0.2347 * log_sbp_effective;
term6 = 0.2757 * (smoking === "yes" ? 1 : 0);
term7 = 0.1360;
if (diabetes === "yes") term7 = 0.1360 + 0.7718;
term8 = 0;
term9 = 0;
term10 = 0;
term11 = 0;
term12 = 0;
}
} else { // Black race
if (sex === "male") {
term1 = -6.1115;
term2 = 1.1728 * log_age;
term3 = 0.4863 * log_chol_ratio;
term4 = -0.5039 * Math.log(hdl);
term5 = 0.1797 * log_sbp_effective;
term6 = 0.3245 * (smoking === "yes" ? 1 : 0);
term7 = 0.1783;
if (diabetes === "yes") term7 = 0.1783 + 0.6734;
term8 = 0;
term9 = 0;
term10 = 0;
term11 = 0;
term12 = 0;
} else { // Female, Black
term1 = -6.5341;
term2 = 1.2457 * log_age;
term3 = 0.5791 * log_chol_ratio;
term4 = -0.7431 * Math.log(hdl);
term5 = 0.2414 * log_sbp_effective;
term6 = 0.1975 * (smoking === "yes" ? 1 : 0);
term7 = 0.1253;
if (diabetes === "yes") term7 = 0.1253 + 0.6562;
term8 = 0;
term9 = 0;
term10 = 0;
term11 = 0;
term12 = 0;
}
}
// Sum of the terms to get the linear predictor (log odds)
var linear_predictor = term1 + term2 + term3 + term4 + term5 + term6 + term7 + term8 + term9 + term10 + term11 + term12;
// Convert log odds to probability
var risk_percentage = (1 – Math.exp(linear_predictor)) * 100;
// Ensure risk is not negative or excessively high due to edge cases in input or formula
if (risk_percentage 100) risk_percentage = 100;
// Display result
resultDiv.innerHTML = risk_percentage.toFixed(1) + "%";
resultDiv.style.backgroundColor = '#28a745'; // Success green
// Add interpretation
var interpretation = "";
if (risk_percentage = 7.5 && risk_percentage < 20) {
interpretation = " (Borderline Risk)";
} else {
interpretation = " (Intermediate to High Risk)";
}
resultDiv.innerHTML += interpretation;
}