BMI & Ideal
Your Health Baseline.
Calculate your Body Mass Index and discover your ideal healthy weight range based on scientific standards. While BMI isn’t perfect for heavy lifters, it serves as an excellent general health benchmark.
BMI & Ideal Bodyweight Calculator
Get your Body Mass Index plus an estimated healthy weight range.
Used only for the Ideal Bodyweight estimate — BMI itself is gender-neutral.
Disclaimer: This tool is for informational purposes only and is not a substitute for professional medical advice, diagnosis, or treatment.
Your Results
let currentUnit = 'imperial';
function setUnit(unit) { currentUnit = unit; const btns = document.querySelectorAll('.toggle-btn'); btns.forEach(btn => btn.classList.remove('active'));
if (unit === 'imperial') { btns[0].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight (lbs)'; document.getElementById('heightLabel').innerText = 'Height (inches)'; document.getElementById('weight').placeholder = 'e.g. 180'; document.getElementById('height').placeholder = 'e.g. 70'; } else { btns[1].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight (kg)'; document.getElementById('heightLabel').innerText = 'Height (cm)'; document.getElementById('weight').placeholder = 'e.g. 80'; document.getElementById('height').placeholder = 'e.g. 175'; } }
function calculateBMI() { const gender = document.getElementById('gender').value; let weight = parseFloat(document.getElementById('weight').value); let height = parseFloat(document.getElementById('height').value);
if (!weight || !height) { alert('Please fill in weight and height.'); return; }
let weightKg = currentUnit === 'imperial' ? weight * 0.453592 : weight; let heightCm = currentUnit === 'imperial' ? height * 2.54 : height; let heightM = heightCm / 100; let heightInches = heightCm / 2.54;
let bmi = weightKg / (heightM * heightM);
let category = ''; if (bmi < 18.5) category = 'Underweight'; else if (bmi < 25) category = 'Normal Weight'; else if (bmi < 30) category = 'Overweight'; else category = 'Obese'; // Devine formula for Ideal Bodyweight (assumes height > 5ft / 60in) let inchesOver5ft = Math.max(0, heightInches - 60); let ibwKg = gender === 'male' ? 50 + 2.3 * inchesOver5ft : 45.5 + 2.3 * inchesOver5ft;
let ibwDisplay = currentUnit === 'imperial' ? Math.round(ibwKg * 2.20462) + ' lbs' : Math.round(ibwKg) + ' kg';
document.getElementById('bmiResult').innerText = bmi.toFixed(1); document.getElementById('bmiCategory').innerText = category; document.getElementById('ibwResult').innerText = ibwDisplay;
document.getElementById('results').style.display = 'block'; }
let currentUnit = 'imperial';
function setUnit(unit) { currentUnit = unit; const btns = document.querySelectorAll('.toggle-btn'); btns.forEach(btn => btn.classList.remove('active'));
if (unit === 'imperial') { btns[0].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight (lbs)'; document.getElementById('heightLabel').innerText = 'Height (inches)'; document.getElementById('weight').placeholder = 'e.g. 180'; document.getElementById('height').placeholder = 'e.g. 70'; } else { btns[1].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight (kg)'; document.getElementById('heightLabel').innerText = 'Height (cm)'; document.getElementById('weight').placeholder = 'e.g. 80'; document.getElementById('height').placeholder = 'e.g. 175'; } }
function calculateBMI() { const gender = document.getElementById('gender').value; let weight = parseFloat(document.getElementById('weight').value); let height = parseFloat(document.getElementById('height').value);
if (!weight || !height) { alert('Please fill in weight and height.'); return; }
let weightKg = currentUnit === 'imperial' ? weight * 0.453592 : weight; let heightCm = currentUnit === 'imperial' ? height * 2.54 : height; let heightM = heightCm / 100; let heightInches = heightCm / 2.54;
let bmi = weightKg / (heightM * heightM);
let category = ''; if (bmi < 18.5) category = 'Underweight'; else if (bmi < 25) category = 'Normal Weight'; else if (bmi < 30) category = 'Overweight'; else category = 'Obese'; // Devine formula for Ideal Bodyweight (assumes height > 5ft / 60in) let inchesOver5ft = Math.max(0, heightInches - 60); let ibwKg = gender === 'male' ? 50 + 2.3 * inchesOver5ft : 45.5 + 2.3 * inchesOver5ft;
let ibwDisplay = currentUnit === 'imperial' ? Math.round(ibwKg * 2.20462) + ' lbs' : Math.round(ibwKg) + ' kg';
document.getElementById('bmiResult').innerText = bmi.toFixed(1); document.getElementById('bmiCategory').innerText = category; document.getElementById('ibwResult').innerText = ibwDisplay;
document.getElementById('results').style.display = 'block'; }