How to Calculate Height and Weight from BMI | Reverse BMI Calculator
:root {
–primary: #004a99;
–primary-dark: #003366;
–success: #28a745;
–bg-light: #f8f9fa;
–text-dark: #333333;
–border-color: #dee2e6;
–white: #ffffff;
–shadow: 0 4px 6px rgba(0,0,0,0.1);
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background-color: var(–bg-light);
color: var(–text-dark);
line-height: 1.6;
}
.container {
max-width: 960px;
margin: 0 auto;
padding: 20px;
}
/* Header */
header {
text-align: center;
margin-bottom: 40px;
padding: 20px 0;
border-bottom: 2px solid var(–primary);
}
h1 {
color: var(–primary);
font-size: 2.2rem;
margin-bottom: 10px;
}
.subtitle {
font-size: 1.1rem;
color: #666;
}
/* Calculator Styles */
.calculator-wrapper {
background: var(–white);
border-radius: 8px;
box-shadow: var(–shadow);
padding: 30px;
margin-bottom: 50px;
border-top: 5px solid var(–primary);
}
.calc-header {
margin-bottom: 25px;
padding-bottom: 15px;
border-bottom: 1px solid var(–border-color);
}
.calc-header h2 {
font-size: 1.5rem;
color: var(–primary-dark);
}
.input-section {
margin-bottom: 30px;
}
.input-group {
margin-bottom: 20px;
}
.input-group label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: var(–text-dark);
}
.input-group input,
.input-group select {
width: 100%;
padding: 12px;
border: 1px solid var(–border-color);
border-radius: 4px;
font-size: 1rem;
transition: border-color 0.3s;
}
.input-group input:focus,
.input-group select:focus {
outline: none;
border-color: var(–primary);
box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.1);
}
.helper-text {
font-size: 0.85rem;
color: #666;
margin-top: 5px;
}
.error-msg {
color: #dc3545;
font-size: 0.85rem;
margin-top: 5px;
display: none;
}
.btn-group {
display: flex;
gap: 15px;
margin-top: 25px;
}
.btn {
padding: 12px 24px;
border: none;
border-radius: 4px;
font-size: 1rem;
cursor: pointer;
font-weight: 600;
transition: background 0.3s;
}
.btn-reset {
background-color: #6c757d;
color: white;
}
.btn-reset:hover {
background-color: #5a6268;
}
.btn-copy {
background-color: var(–primary);
color: white;
}
.btn-copy:hover {
background-color: var(–primary-dark);
}
/* Results Area */
.results-container {
background-color: #f1f8ff;
border: 1px solid #cce5ff;
border-radius: 6px;
padding: 25px;
margin-top: 30px;
}
.main-result {
text-align: center;
margin-bottom: 25px;
}
.main-result h3 {
font-size: 1.1rem;
color: var(–primary);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 10px;
}
.result-value {
font-size: 2.5rem;
font-weight: 700;
color: var(–primary-dark);
}
.result-unit {
font-size: 1.2rem;
color: #555;
}
.metrics-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 20px;
}
.metric-card {
background: white;
padding: 15px;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
text-align: center;
}
.metric-label {
font-size: 0.9rem;
color: #666;
margin-bottom: 5px;
}
.metric-val {
font-size: 1.2rem;
font-weight: 600;
color: var(–text-dark);
}
.formula-box {
background: white;
padding: 15px;
border-left: 4px solid var(–success);
margin-top: 20px;
font-size: 0.95rem;
}
/* Charts & Tables */
.visual-section {
margin-top: 40px;
}
.chart-container {
position: relative;
height: 300px;
width: 100%;
margin-bottom: 30px;
background: white;
border: 1px solid var(–border-color);
border-radius: 4px;
padding: 15px;
}
.data-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
background: white;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.data-table th, .data-table td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #dee2e6;
}
.data-table th {
background-color: var(–primary);
color: white;
font-weight: 600;
}
.data-table caption {
margin-bottom: 10px;
font-weight: 600;
color: #555;
text-align: left;
}
/* Content Styles */
.content-article {
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: var(–shadow);
}
.content-article h2 {
color: var(–primary-dark);
margin-top: 40px;
margin-bottom: 20px;
font-size: 1.8rem;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
.content-article h3 {
color: var(–text-dark);
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.4rem;
}
.content-article p {
margin-bottom: 20px;
font-size: 1.05rem;
}
.content-article ul, .content-article ol {
margin-bottom: 20px;
padding-left: 25px;
}
.content-article li {
margin-bottom: 10px;
}
.info-table {
width: 100%;
border-collapse: collapse;
margin: 25px 0;
}
.info-table th, .info-table td {
border: 1px solid #dee2e6;
padding: 12px;
text-align: left;
}
.info-table th {
background-color: #f1f8ff;
color: var(–primary-dark);
}
.faq-item {
margin-bottom: 25px;
}
.faq-question {
font-weight: 700;
color: var(–primary);
margin-bottom: 8px;
display: block;
}
.related-links {
background-color: #f8f9fa;
padding: 25px;
border-radius: 6px;
margin-top: 40px;
}
.related-links a {
color: var(–primary);
text-decoration: none;
font-weight: 600;
}
.related-links a:hover {
text-decoration: underline;
}
.related-list {
list-style: none;
padding: 0;
}
.related-list li {
margin-bottom: 15px;
border-bottom: 1px solid #e9ecef;
padding-bottom: 10px;
}
footer {
text-align: center;
padding: 40px 0;
color: #666;
margin-top: 40px;
border-top: 1px solid #dee2e6;
}
/* Responsive */
@media (max-width: 768px) {
.content-article {
padding: 20px;
}
.btn-group {
flex-direction: column;
}
.btn {
width: 100%;
}
}
Copy Results
Reset Defaults
Calculated Target Weight
67.4
kg
Calculation: Weight = 22.0 × (1.75)² = 67.4 kg
BMI Range Visualization
Weight Ranges for Your Height
Category
BMI Range
What is how to calculate height and weight from bmi?
Understanding how to calculate height and weight from bmi is a crucial skill for health planning, fitness goal setting, and medical analysis. While Body Mass Index (BMI) is typically calculated by inputting a known height and weight, the formula can be rearranged algebraically to solve for either variable if the target BMI is known.
This process is often called "reverse BMI calculation." It is widely used by nutritionists, personal trainers, and individuals who have a specific BMI goal recommended by a doctor and need to know exactly what weight they must achieve to reach that metric. It removes the guesswork from weight management by providing precise mathematical targets based on the established BMI scale.
How to Calculate Height and Weight from BMI: The Formulas
The core BMI formula is simple physics. Depending on the measurement system you use (Metric or Imperial), the constants change, but the relationship remains the same. Here is the mathematical breakdown of how to calculate height and weight from bmi .
1. Solving for Weight (Target Weight)
If you know your height and have a target BMI, you can calculate the required weight.
Metric System:
Weight (kg) = BMI × (Height in meters)²
Imperial System:
Weight (lbs) = (BMI × (Height in inches)²) / 703
2. Solving for Height
Although less common for adults (since height is fixed), this is useful for theoretical modeling or determining growth targets for children.
Metric System:
Height (m) = √(Weight in kg / BMI)
Imperial System:
Height (in) = √((Weight in lbs × 703) / BMI)
Variable Definitions
Variable
Meaning
Unit (Metric)
Unit (Imperial)
BMI
Body Mass Index
kg/m²
lbs/in² × 703
Weight
Body Mass
Kilograms (kg)
Pounds (lbs)
Height
Vertical Stature
Meters (m) or cm
Inches (in)
Practical Examples of How to Calculate Height and Weight from BMI
Example 1: Finding Ideal Weight (Metric)
Scenario: John is 180 cm (1.80 m) tall. His doctor recommends a BMI of 23 for optimal heart health. He wants to know his target weight.
Identify Variables: Height = 1.80 m, Target BMI = 23.
Apply Formula: Weight = 23 × (1.80)².
Calculate Square: 1.80 × 1.80 = 3.24.
Final Calculation: 23 × 3.24 = 74.52 kg.
Result: John should aim for approximately 74.5 kg to achieve a BMI of 23.
Example 2: Reverse Engineering Height (Imperial)
Scenario: A health study requires a subject weighing 150 lbs to have a BMI of exactly 20. What height must this subject be?
Identify Variables: Weight = 150 lbs, BMI = 20.
Apply Formula: Height (in) = √((150 × 703) / 20).
Inner Math: 150 × 703 = 105,450.
Divide by BMI: 105,450 / 20 = 5,272.5.
Square Root: √5,272.5 ≈ 72.6 inches.
Result: The subject must be approximately 6 feet tall (72.6 inches).
How to Use This Reverse BMI Calculator
Our tool simplifies the math involved in how to calculate height and weight from bmi . Follow these steps:
Select Mode: Choose whether you want to calculate "Target Weight" or "Required Height".
Choose System: Toggle between Metric (kg/cm) and Imperial (lbs/ft).
Enter Target BMI: Input your desired BMI. Standard healthy range is 18.5 to 24.9.
Input Known Value: Enter your current height (if solving for weight) or weight (if solving for height).
Analyze Results: The calculator instantly displays the result. Use the chart to see where this falls compared to other BMI categories.
Key Factors That Affect BMI Results
When learning how to calculate height and weight from bmi , consider these financial and biological factors that influence the utility of the result:
Muscle Mass vs. Fat: BMI does not distinguish between muscle and fat. A high weight calculated from a high BMI might be healthy for an athlete but unhealthy for a sedentary person.
Age and Gender: Older adults often lose muscle mass. A "normal" BMI might mask metabolic obesity. Women generally carry more body fat than men at the same BMI.
Bone Density: Individuals with dense bone structures may weigh more than the formula suggests for a given visual size.
Fluid Retention: Daily weight fluctuations due to hydration or salt intake can skew your tracking against the calculated target.
Health Insurance Premiums: Some life insurance policies use BMI bands to determine premiums. Knowing your specific weight cutoff can have direct financial implications on insurance costs.
Clothing Costs: Significant weight changes to meet a BMI target often require a new wardrobe, a hidden financial cost of health transformation.
Frequently Asked Questions (FAQ)
Can I calculate my exact weight from BMI?
Yes, if you have an accurate height measurement and a specific BMI number, you can calculate the exact weight required to meet that BMI using the reverse formula provided above.
What is the healthiest BMI to aim for?
Generally, a BMI between 18.5 and 24.9 is considered normal weight. However, 22 is often cited as a median "ideal" target for calculation purposes.
Why is my calculated weight different from my actual weight?
If you input your current BMI and height, the result should match your weight. If you input a *target* BMI, the result represents a goal, not your current state.
Does this formula work for children?
The math is the same, but the interpretation of BMI for children (ages 2-19) differs significantly and is based on percentiles, not fixed numbers.
Is BMI accurate for bodybuilders?
No. Muscle is denser than fat. A bodybuilder may calculate a "Normal" weight using this formula that is far too low for their muscle mass.
How does knowing this help financially?
Maintaining a healthy BMI can lower life insurance premiums, reduce long-term healthcare costs, and improve productivity, directly impacting your personal finances.
Do I need to convert inches to meters?
Our calculator handles all conversions. If calculating manually, you must convert units to match the formula specific to the system (Metric uses meters, Imperial uses inches).
What is the "New BMI" formula?
Some researchers propose a new formula (1.3 x weight / height^2.5) to better account for taller individuals. However, the standard formula used here is the global medical standard.
// Global Variables
var currentMode = 'weight'; // 'weight' or 'height'
var currentSystem = 'metric'; // 'metric' or 'imperial'
var chartInstance = null;
// Initialization
window.onload = function() {
calculateResults();
};
function toggleInputs() {
var mode = document.getElementById('calcMode').value;
currentMode = mode;
var heightGroup = document.getElementById('heightInputGroup');
var weightGroup = document.getElementById('weightInputGroup');
if (mode === 'weight') {
// Solving for Weight, need Height input
heightGroup.style.display = 'block';
weightGroup.style.display = 'none';
document.getElementById('resultTitle').innerText = "Calculated Target Weight";
document.getElementById('tableResultHeader').innerText = "Target Weight Range";
} else {
// Solving for Height, need Weight input
heightGroup.style.display = 'none';
weightGroup.style.display = 'block';
document.getElementById('resultTitle').innerText = "Calculated Required Height";
document.getElementById('tableResultHeader').innerText = "Height Range";
}
calculateResults();
}
function toggleUnits() {
var system = document.getElementById('unitSystem').value;
currentSystem = system;
var metricHeight = document.getElementById('metricHeightInput');
var imperialHeight = document.getElementById('imperialHeightInput');
var weightLabel = document.getElementById('weightLabel');
var heightLabel = document.getElementById('heightLabel');
var weightHelper = document.getElementById('weightHelper');
if (system === 'metric') {
metricHeight.style.display = 'block';
imperialHeight.style.display = 'none';
weightLabel.innerText = "Weight (kg):";
heightLabel.innerText = "Height (cm):";
weightHelper.innerText = "Enter your weight in kilograms.";
// Convert existing values for UX smoothness
var lbs = parseFloat(document.getElementById('weightVal').value);
if (!isNaN(lbs)) document.getElementById('weightVal').value = (lbs / 2.20462).toFixed(1);
} else {
metricHeight.style.display = 'none';
imperialHeight.style.display = 'block';
weightLabel.innerText = "Weight (lbs):";
heightLabel.innerText = "Height (ft/in):";
weightHelper.innerText = "Enter your weight in pounds.";
// Convert existing values
var kg = parseFloat(document.getElementById('weightVal').value);
if (!isNaN(kg)) document.getElementById('weightVal').value = (kg * 2.20462).toFixed(1);
}
calculateResults();
}
function updateTotalInches() {
var ft = parseFloat(document.getElementById('heightFt').value) || 0;
var inch = parseFloat(document.getElementById('heightIn').value) || 0;
document.getElementById('heightTotalInches').value = (ft * 12) + inch;
calculateResults();
}
function calculateResults() {
var bmiTarget = parseFloat(document.getElementById('bmiTarget').value);
// Validation
if (isNaN(bmiTarget) || bmiTarget <= 0) {
document.getElementById('bmiError').style.display = 'block';
return;
} else {
document.getElementById('bmiError').style.display = 'none';
}
var result = 0;
var heightMetric = 0; // in meters
var weightMetric = 0; // in kg
var displayUnit = '';
var explanation = '';
var usedVal = '';
if (currentMode === 'weight') {
// SOLVING FOR WEIGHT
// Need Height
if (currentSystem === 'metric') {
var cm = parseFloat(document.getElementById('heightVal').value);
if (isNaN(cm) || cm <= 0) return;
heightMetric = cm / 100;
// Formula: weight = bmi * height^2
weightMetric = bmiTarget * (heightMetric * heightMetric);
result = weightMetric;
displayUnit = 'kg';
explanation = "Weight = " + bmiTarget + " × (" + heightMetric.toFixed(2) + ")² = " + result.toFixed(1) + " kg";
document.getElementById('usedHeight').innerText = cm + " cm";
} else {
var inches = parseFloat(document.getElementById('heightTotalInches').value);
if (isNaN(inches) || inches <= 0) return;
// Formula: weight_lbs = (bmi * inches^2) / 703
var lbs = (bmiTarget * (inches * inches)) / 703;
result = lbs;
weightMetric = lbs / 2.20462; // for internal chart use
heightMetric = (inches * 0.0254); // for display consistency
displayUnit = 'lbs';
explanation = "Weight = (" + bmiTarget + " × " + inches + "²) / 703 = " + result.toFixed(1) + " lbs";
document.getElementById('usedHeight').innerText = inches + " inches";
}
document.getElementById('mainResultValue').innerText = result.toFixed(1);
document.getElementById('mainResultUnit').innerText = displayUnit;
document.getElementById('usedBMI').innerText = bmiTarget.toFixed(1);
document.getElementById('formulaExplanation').innerText = "Calculation: " + explanation;
} else {
// SOLVING FOR HEIGHT
// Need Weight
var inputWeight = parseFloat(document.getElementById('weightVal').value);
if (isNaN(inputWeight) || inputWeight <= 0) return;
if (currentSystem === 'metric') {
weightMetric = inputWeight;
// Formula: height = sqrt(weight / bmi)
heightMetric = Math.sqrt(weightMetric / bmiTarget);
result = heightMetric * 100; // cm
displayUnit = 'cm';
explanation = "Height = √(" + weightMetric + " / " + bmiTarget + ") = " + heightMetric.toFixed(2) + " m";
document.getElementById('usedHeight').innerText = inputWeight + " kg (Weight)";
} else {
var weightLbs = inputWeight;
weightMetric = weightLbs / 2.20462;
// Formula: height_in = sqrt((weight_lbs * 703) / bmi)
var heightIn = Math.sqrt((weightLbs * 703) / bmiTarget);
result = heightIn;
heightMetric = heightIn * 0.0254;
displayUnit = 'inches';
explanation = "Height = √((" + weightLbs + " × 703) / " + bmiTarget + ") = " + heightIn.toFixed(1) + " in";
document.getElementById('usedHeight').innerText = weightLbs + " lbs (Weight)";
}
document.getElementById('mainResultValue').innerText = result.toFixed(1);
document.getElementById('mainResultUnit').innerText = displayUnit;
document.getElementById('usedBMI').innerText = bmiTarget.toFixed(1);
document.getElementById('formulaExplanation').innerText = "Calculation: " + explanation;
}
// Determine BMI Category of the TARGET
var category = getBMICategory(bmiTarget);
document.getElementById('bmiCategory').innerText = category;
document.getElementById('bmiCategory').style.color = getCategoryColor(category);
updateTable(heightMetric);
drawChart(heightMetric, weightMetric, bmiTarget);
}
function getBMICategory(bmi) {
if (bmi < 18.5) return "Underweight";
if (bmi < 25) return "Normal";
if (bmi < 30) return "Overweight";
return "Obese";
}
function getCategoryColor(cat) {
if (cat === "Normal") return "#28a745";
if (cat === "Overweight") return "#ffc107";
if (cat === "Obese") return "#dc3545";
return "#17a2b8";
}
function updateTable(heightM) {
var tbody = document.getElementById('rangeTableBody');
tbody.innerHTML = '';
var ranges = [
{ label: "Underweight", min: 10, max: 18.5 },
{ label: "Normal", min: 18.5, max: 25 },
{ label: "Overweight", min: 25, max: 30 },
{ label: "Obese", min: 30, max: 45 }
];
for (var i = 0; i < ranges.length; i++) {
var r = ranges[i];
var minW, maxW, rangeStr;
if (currentMode === 'weight') {
// Showing Weight Ranges for fixed Height
if (currentSystem === 'metric') {
minW = (r.min * heightM * heightM).toFixed(1);
maxW = (r.max * heightM * heightM).toFixed(1);
rangeStr = minW + " – " + maxW + " kg";
} else {
// Imperial: lbs = (bmi * in^2) / 703
var inches = heightM / 0.0254;
minW = ((r.min * inches * inches) / 703).toFixed(1);
maxW = ((r.max * inches * inches) / 703).toFixed(1);
rangeStr = minW + " – " + maxW + " lbs";
}
} else {
// Showing Height Ranges for fixed Weight (Inverse)
// If weight is fixed, higher BMI means shorter height.
// Height = sqrt(weight / BMI)
// This is confusing for a table, usually people want Weight ranges.
// Even in 'Solve Height' mode, the table should probably show Weight ranges for the Calculated Height to give context.
if (currentSystem === 'metric') {
minW = (r.min * heightM * heightM).toFixed(1);
maxW = (r.max * heightM * heightM).toFixed(1);
rangeStr = minW + " – " + maxW + " kg";
} else {
var inches = heightM / 0.0254;
minW = ((r.min * inches * inches) / 703).toFixed(1);
maxW = ((r.max * inches * inches) / 703).toFixed(1);
rangeStr = minW + " – " + maxW + " lbs";
}
document.getElementById('tableCaption').innerText = "Weight Categories for Calculated Height (" + (currentSystem==='metric'? (heightM*100).toFixed(0)+'cm' : (heightM/0.0254).toFixed(0)+'in') + ")";
}
var row = "
" +
"" + r.label + " " +
"" + r.min + " – " + r.max + " " +
"" + rangeStr + " " +
" ";
tbody.innerHTML += row;
}
}
function drawChart(heightM, weightKg, targetBMI) {
var canvas = document.getElementById('bmiChart');
var ctx = canvas.getContext('2d');
var w = canvas.width = canvas.offsetWidth;
var h = canvas.height = canvas.offsetHeight;
// Clear
ctx.clearRect(0, 0, w, h);
// Defined BMI boundaries
var bmis = [0, 18.5, 25, 30, 40]; // simplified max
var colors = ['#17a2b8', '#28a745', '#ffc107', '#dc3545'];
var labels = ['Underweight', 'Normal', 'Overweight', 'Obese'];
// If heightM is 0 (invalid), stop
if(heightM <= 0) return;
// Calculate weight for BMI 40 to set scale
var maxScaleWeight = 40 * heightM * heightM;
// Margins
var padding = 40;
var chartH = h – padding * 2;
var chartW = w – padding * 2;
// Draw Bars
// We will stack rects from 0 up to max
var currentY = h – padding;
// Background Grid
ctx.beginPath();
ctx.strokeStyle = '#eee';
ctx.moveTo(padding, padding);
ctx.lineTo(padding, h – padding);
ctx.lineTo(w – padding, h – padding);
ctx.stroke();
// Calculate widths for categories
// We map BMI 0-40 to width
// But the relationship is linear to weight, not BMI?
// Weight = BMI * H^2. Since H is constant, Weight is linear to BMI.
// So we can map BMI 0-40 directly to X axis.
var scaleX = chartW / 45; // Max BMI 45 for visualization
// Draw Zones
var prevX = padding;
for(var i=0; i<4; i++) {
var startBMI = bmis[i];
var endBMI = (i===3) ? 45 : bmis[i+1];
var zoneW = (endBMI – startBMI) * scaleX;
ctx.fillStyle = colors[i];
ctx.globalAlpha = 0.6;
ctx.fillRect(prevX, padding, zoneW, chartH);
// Label
ctx.globalAlpha = 1.0;
ctx.fillStyle = '#333';
ctx.font = '12px Arial';
if(i w – padding) targetX = w – padding;
ctx.beginPath();
ctx.strokeStyle = '#004a99';
ctx.lineWidth = 4;
ctx.moveTo(targetX, padding – 10);
ctx.lineTo(targetX, h – padding + 10);
ctx.stroke();
// Target Label
ctx.fillStyle = '#004a99';
ctx.font = 'bold 14px Arial';
ctx.textAlign = 'center';
ctx.fillText("Target: " + targetBMI, targetX, padding – 15);
ctx.textAlign = 'left';
}
function resetCalculator() {
document.getElementById('bmiTarget').value = 22;
document.getElementById('heightVal').value = 175;
document.getElementById('heightFt').value = 5;
document.getElementById('heightIn').value = 9;
document.getElementById('weightVal').value = 70;
updateTotalInches();
calculateResults();
}
function copyResults() {
var res = document.getElementById('mainResultValue').innerText;
var unit = document.getElementById('mainResultUnit').innerText;
var bmi = document.getElementById('usedBMI').innerText;
var txt = "Result: " + res + " " + unit + "\nBased on Target BMI: " + bmi + "\nCalculated via Reverse BMI Calculator.";
var ta = document.createElement('textarea');
ta.value = txt;
document.body.appendChild(ta);
ta.select();
document.execCommand('copy');
document.body.removeChild(ta);
var btn = document.querySelector('.btn-copy');
var oldText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function() { btn.innerText = oldText; }, 2000);
}