Waist-to-Hip Ratio Calculator
Calculate your WHR and assess health risk based on WHO guidelines.
WHO Risk Categories
Waist-to-Hip Ratio thresholds
| Sex | Low | Moderate | High | Very High |
|---|---|---|---|---|
| Male | <0.90 | 0.90–0.95 | 0.95–1.00 | ≥1.00 |
| Female | <0.80 | 0.80–0.85 | 0.85–0.90 | ≥0.90 |
About this tool
The Waist-to-Hip Ratio (WHR) is a simple yet powerful measurement that divides your waist circumference by your hip circumference to assess body shape and health risk. Unlike BMI, which only considers overall weight, WHR specifically measures central obesity—fat stored around the abdomen—which is strongly linked to cardiovascular disease, type 2 diabetes, and metabolic syndrome. Health organizations like the WHO use WHR thresholds to evaluate whether your weight distribution poses a health risk regardless of your overall body mass.
Using this calculator is straightforward: measure your natural waist at the narrowest point just above your hip bones, and measure your hips at the widest part of your buttocks. Enter both measurements in centimeters or inches, and the tool instantly calculates your ratio and categorizes your health status according to WHO guidelines. The color-coded results show whether your ratio is normal, overweight, or obese-class, helping you understand if your current body composition warrants lifestyle changes or medical consultation.
Keep in mind that WHR is most accurate when measurements are taken consistently and honestly—standing relaxed in front of a mirror often yields the best results. While WHR is a reliable health indicator, it should not replace professional medical advice; consult your doctor if you have concerns about your cardiovascular health or need personalized guidance on diet and exercise.
Frequently Asked Questions
Code Implementation
def waist_to_hip_ratio(waist_cm, hip_cm):
"""
Calculate Waist-to-Hip Ratio (WHR).
Parameters:
waist_cm - waist circumference in centimetres
hip_cm - hip circumference in centimetres
Returns WHR as a float.
"""
if hip_cm <= 0:
raise ValueError("Hip circumference must be greater than 0")
return waist_cm / hip_cm
def whr_risk(whr, gender):
"""
Classify WHR health risk using WHO thresholds.
gender: 'male' or 'female'
Returns: 'Low', 'Moderate', or 'High'
"""
if gender.lower() == 'male':
if whr < 0.90: return 'Low'
if whr < 1.00: return 'Moderate'
return 'High'
else: # female
if whr < 0.80: return 'Low'
if whr < 0.85: return 'Moderate'
return 'High'
def waist_height_ratio(waist_cm, height_cm):
"""
Waist-to-Height Ratio (WHtR) — supplementary metric.
Health threshold: < 0.5 for all adults.
"""
return waist_cm / height_cm
# Examples
whr = waist_to_hip_ratio(85, 98)
print(f"WHR: {whr:.2f}")
print(f"Risk (M): {whr_risk(whr, 'male')}")
print(f"Risk (F): {whr_risk(whr, 'female')}")
print(f"WHtR: {waist_height_ratio(85, 175):.2f}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.