Calculate Weight by Height

Calculate Weight by Height: Ideal Body Weight & Healthy Range Calculator /* GLOBAL RESET & TYPOGRAPHY */ * { box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background-color: #f8f9fa; color: #333; line-height: 1.6; margin: 0; padding: 0; } /* LAYOUT CONTAINER – SINGLE COLUMN */ .container { max-width: 900px; margin: 0 auto; padding: 20px; background: #fff; } header, main, footer { width: 100%; } /* HEADER STYLES */ header { border-bottom: 2px solid #004a99; margin-bottom: 30px; padding-bottom: 20px; text-align: center; } h1 { color: #004a99; font-size: 2.5rem; margin-bottom: 10px; } .subtitle { color: #666; font-size: 1.1rem; } /* CALCULATOR CONTAINER */ .calc-wrapper { background: #ffffff; border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); padding: 30px; margin-bottom: 50px; } /* INPUT GROUPS */ .input-group { margin-bottom: 20px; width: 100%; } label { display: block; font-weight: 600; margin-bottom: 8px; color: #2c3e50; } .helper-text { font-size: 0.85rem; color: #7f8c8d; margin-top: 4px; } select, input[type="number"] { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; transition: border-color 0.3s; } select:focus, input[type="number"]:focus { border-color: #004a99; outline: none; box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.1); } .error-msg { color: #dc3545; font-size: 0.85rem; margin-top: 5px; display: none; } /* HIDDEN/VISIBLE TOGGLES */ .hidden { display: none; } /* BUTTONS */ .btn-group { margin-top: 25px; display: flex; gap: 10px; flex-wrap: wrap; } button { padding: 12px 24px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; font-weight: 600; transition: background 0.2s; } .btn-reset { background-color: #6c757d; color: white; } .btn-copy { background-color: #004a99; color: white; } .btn-copy:hover { background-color: #003366; } .btn-reset:hover { background-color: #5a6268; } /* RESULTS SECTION */ .results-section { margin-top: 40px; border-top: 1px solid #eee; padding-top: 30px; } .primary-result-box { background-color: #e8f4fd; border-left: 5px solid #004a99; padding: 20px; margin-bottom: 20px; } .primary-label { font-size: 1.1rem; color: #004a99; margin-bottom: 5px; font-weight: bold; } .primary-value { font-size: 2.5rem; font-weight: 700; color: #2c3e50; } .secondary-results { display: block; /* Enforce single column flow */ margin-bottom: 30px; } .sec-item { background: #f8f9fa; padding: 15px; border-radius: 4px; margin-bottom: 10px; border: 1px solid #eee; } .sec-label { font-size: 0.9rem; color: #666; } .sec-val { font-size: 1.2rem; font-weight: 600; color: #333; } /* TABLE */ table { width: 100%; border-collapse: collapse; margin: 25px 0; font-size: 0.95rem; } th, td { border: 1px solid #ddd; padding: 12px; text-align: left; } th { background-color: #004a99; color: white; } tr:nth-child(even) { background-color: #f2f2f2; } caption { caption-side: bottom; font-size: 0.85rem; color: #666; margin-top: 8px; text-align: left; } /* CHART */ .chart-container { width: 100%; height: 300px; background: #fff; border: 1px solid #eee; border-radius: 4px; margin: 30px 0; position: relative; } canvas { display: block; width: 100%; height: 100%; } /* ARTICLE STYLES */ article { margin-top: 60px; border-top: 1px solid #eee; padding-top: 40px; } article h2 { color: #004a99; margin-top: 40px; border-bottom: 1px solid #eee; padding-bottom: 10px; } article h3 { color: #333; margin-top: 30px; } article p { margin-bottom: 1.5em; color: #444; } article ul, article ol { margin-bottom: 1.5em; padding-left: 25px; } article li { margin-bottom: 0.5em; } .internal-links { background: #f1f3f5; padding: 20px; border-radius: 8px; margin-top: 40px; } .internal-links h3 { margin-top: 0; } .internal-links ul { list-style: none; padding: 0; } .internal-links li { margin-bottom: 10px; } .internal-links a { color: #004a99; text-decoration: none; font-weight: 600; } .internal-links a:hover { text-decoration: underline; } /* RESPONSIVE */ @media (max-width: 600px) { h1 { font-size: 2rem; } .primary-value { font-size: 2rem; } }

Calculate Weight by Height

Determine your Ideal Body Weight (IBW) and Healthy Range
Imperial (Feet/Inches) Metric (Centimeters)
Choose your preferred unit of measurement.
Male Female
Biological sex affects bone mass and formula constants.
Feet
Inches
Please enter a valid height.
Ideal Body Weight (Devine Formula)
166 lbs
Based on Dr. B.J. Devine's 1974 formula.
Healthy BMI Weight Range
129 – 174 lbs
Corresponds to BMI 18.5 – 24.9
Robinson Formula (1983)
163 lbs
Miller Formula (1983)
160 lbs

Weight Range Visualization

Visual comparison of Min/Max Healthy BMI weight vs. Ideal Body Weight (Devine).

Detailed Formula Breakdown

Formula Method Calculated Weight Calculation Basis
Comparisons of different medical standards to calculate weight by height.

What Does it Mean to Calculate Weight by Height?

To calculate weight by height is to determine a theoretical "ideal" body weight based on how tall a person is. While no single number represents perfect health for everyone, medical professionals and insurers have long used specific mathematical formulas to estimate a healthy weight baseline. This process helps establish reference points for nutritional assessment and drug dosing.

When you calculate weight by height, you are typically using one of two methods: the Body Mass Index (BMI) range, or specific Ideal Body Weight (IBW) equations like the Devine or Robinson formulas. This calculator provides both to give a comprehensive overview of where your weight might optimally sit relative to your stature.

It is important to note that these calculations apply primarily to average adults. Athletes with high muscle mass, pregnant women, and the elderly may find that standard methods to calculate weight by height do not fully reflect their specific health needs.

Calculate Weight by Height: Formulas and Logic

The primary formula used in this tool to calculate weight by height is the Devine Formula (1974), which is widely considered the standard for medical IBW calculations. We also calculate the healthy weight range derived from standard BMI guidelines.

1. The Devine Formula

The Devine formula assumes a baseline weight for a height of 5 feet, adding a specific amount of weight for every inch over that height.

Variable Male Value Female Value
Base Weight (at 5ft) 50.0 kg (~110 lbs) 45.5 kg (~100 lbs)
Added Weight per Inch +2.3 kg (~5.0 lbs) +2.3 kg (~5.0 lbs)
Constants used in the Devine Formula.

Mathematically:
Men: 50kg + 2.3kg × (Height in inches – 60)
Women: 45.5kg + 2.3kg × (Height in inches – 60)

2. BMI-Based Weight Range

To find the healthy range, we reverse the BMI formula. Since a healthy BMI is defined as 18.5 to 24.9, we calculate weight by height using the square of the height in meters.

Minimum Weight: 18.5 × (Height in meters)²
Maximum Weight: 24.9 × (Height in meters)²

Practical Examples

Example 1: The Average Male

Consider a male who is 5 feet 10 inches tall (178 cm). He wants to calculate weight by height to set a fitness goal.

  • Height: 70 inches (10 inches over 5ft).
  • Calculation (Devine): 50kg + (2.3kg × 10) = 73kg (approx 161 lbs).
  • BMI Range: For 1.78m, the healthy range is approximately 129 lbs to 174 lbs.
  • Result: His "ideal" calculated weight is 161 lbs, which sits comfortably within the upper end of the healthy BMI range.

Example 2: The Petite Female

A female is 5 feet 2 inches tall (157 cm).

  • Height: 62 inches (2 inches over 5ft).
  • Calculation (Devine): 45.5kg + (2.3kg × 2) = 50.1kg (approx 110 lbs).
  • BMI Range: For 1.57m, the healthy range is approximately 101 lbs to 136 lbs.
  • Result: The formula suggests 110 lbs, which is on the lower end of the healthy spectrum, reflecting the different base constants for women.

How to Use This Calculator

  1. Select Your Units: Choose between Imperial (Feet/Inches) or Metric (Centimeters).
  2. Select Gender: Choose Male or Female. This adjusts the base weight in the IBW formulas.
  3. Enter Height: Input your accurate height. For imperial, use both feet and inches fields.
  4. Review Results: The tool will instantly calculate weight by height. The large blue box shows the Devine result, while the list below shows the BMI range and alternative formulas (Robinson, Miller).
  5. Analyze the Chart: Use the chart to visualize where the "Ideal" number falls relative to the minimum and maximum healthy weights.

Key Factors That Affect Results

When you calculate weight by height, the output is a statistical estimate. Several real-world factors influence what your actual healthy weight should be:

  1. Muscle Mass: Muscle tissue is denser than fat. An athlete may calculate weight by height and find they are "overweight" by formula standards, despite having low body fat.
  2. Bone Structure (Frame Size): People with large body frames (measured by wrist circumference) should generally weigh more than the calculated IBW, while small-framed individuals should weigh less.
  3. Age: Metabolic rate and body composition change with age. Older adults often carry slightly more weight, which some studies suggest can be protective.
  4. Body Fat Distribution: Visceral fat (around organs) is a higher health risk than subcutaneous fat. Two people may have the same height and weight but very different health profiles.
  5. Hydration Levels: Weight fluctuates daily based on water retention, salt intake, and hydration, which formulas cannot account for.
  6. Genetic Factors: Genetic predisposition plays a significant role in natural body composition that simple linear equations cannot capture.

Frequently Asked Questions (FAQ)

1. Is the result from the "calculate weight by height" tool a strict medical rule?
No. It is an estimation tool. Always consult a healthcare provider before starting a weight loss or weight gain program.

2. Why do different formulas give different results?
Formulas like Devine, Robinson, and Miller were developed in different decades using different population data. Devine (1974) is most common for drug dosing, while Robinson (1983) refined it based on newer data.

3. Can I use this for children?
No. Children require specific growth charts (CDC or WHO percentiles) to calculate weight by height effectively. This tool is for adults 18+.

4. What if I am very tall or very short?
These formulas are most accurate for people close to average height (5ft to 6ft). At extreme heights, the linear nature of the IBW formulas may become less accurate compared to BMI.

5. How does gender affect the calculation?
Biologically, men generally have greater bone density and muscle mass than women. The formulas account for this by starting men at a higher baseline weight (50kg vs 45.5kg).

6. Should I aim for the exact number shown?
Not necessarily. Aiming for the "Healthy BMI Range" is generally more realistic and flexible than targeting a single specific "Ideal" number.

7. Does this calculator measure body fat?
No. To measure body fat percentage, you need calipers, bioimpedance scales, or DEXA scans. This tool only uses height and gender.

8. Why is the "Healthy Range" so wide?
Human bodies vary incredibly. A 40-pound range allows for differences in frame size, muscle mass, and natural body variations while still remaining metabolically healthy.

© 2023 Financial & Health Tools Inc. All rights reserved.
Disclaimer: This tool is for informational purposes only and does not constitute medical advice.

// GLOBAL VARIABLES var ctx = null; // Canvas context var chartInstance = null; // We are building a custom chart, so we just manage the redraw // INITIALIZATION window.onload = function() { calculateWeight(); }; // VISIBILITY TOGGLE function toggleUnits() { var unit = document.getElementById('unitSystem').value; var impInputs = document.getElementById('imperialInputs'); var metInputs = document.getElementById('metricInputs'); if (unit === 'imperial') { impInputs.classList.remove('hidden'); metInputs.classList.add('hidden'); } else { impInputs.classList.add('hidden'); metInputs.classList.remove('hidden'); } } // MAIN CALCULATION LOGIC function calculateWeight() { // 1. Get Inputs var unit = document.getElementById('unitSystem').value; var gender = document.getElementById('gender').value; var heightCm = 0; var heightInTotal = 0; // Reset Errors document.getElementById('imperialError').style.display = 'none'; document.getElementById('metricError').style.display = 'none'; // 2. Parse Height & Validation if (unit === 'imperial') { var ft = parseFloat(document.getElementById('heightFt').value); var inc = parseFloat(document.getElementById('heightIn').value); if (isNaN(ft) || isNaN(inc) || ft < 0 || inc < 0) { document.getElementById('imperialError').style.display = 'block'; return; } heightInTotal = (ft * 12) + inc; heightCm = heightInTotal * 2.54; } else { heightCm = parseFloat(document.getElementById('heightCm').value); if (isNaN(heightCm) || heightCm <= 0) { document.getElementById('metricError').style.display = 'block'; return; } heightInTotal = heightCm / 2.54; } if (heightCm < 50) return; // Unrealistic lower bound filter // 3. Constants for Formulas var baseWeight = (gender === 'male') ? 50 : 45.5; // kg var perInch = 2.3; // kg var heightOver60 = heightInTotal – 60; if (heightOver60 60) var ibwDevineKg = baseWeight + (perInch * heightOver60); // Robinson (1983) // Men: 52kg + 1.9kg per inch > 60 // Women: 49kg + 1.7kg per inch > 60 var ibwRobinsonKg = 0; if (gender === 'male') { ibwRobinsonKg = 52 + (1.9 * heightOver60); } else { ibwRobinsonKg = 49 + (1.7 * heightOver60); } // Miller (1983) // Men: 56.2kg + 1.41kg per inch > 60 // Women: 53.1kg + 1.36kg per inch > 60 var ibwMillerKg = 0; if (gender === 'male') { ibwMillerKg = 56.2 + (1.41 * heightOver60); } else { ibwMillerKg = 53.1 + (1.36 * heightOver60); } // 5. Calculate BMI Range (18.5 – 24.9) // Weight = BMI * (Height_m)^2 var heightM = heightCm / 100; var weightMinKg = 18.5 * (heightM * heightM); var weightMaxKg = 24.9 * (heightM * heightM); // 6. Convert to Unit Preference for Display (Using Lbs for Imperial, Kg for Metric) // Note: Even if input is imperial, we calculated in KG internally. // We will display based on the Unit System selected. var dDevine, dRobinson, dMiller, dMin, dMax, unitLabel; if (unit === 'imperial') { unitLabel = 'lbs'; dDevine = Math.round(ibwDevineKg * 2.20462); dRobinson = Math.round(ibwRobinsonKg * 2.20462); dMiller = Math.round(ibwMillerKg * 2.20462); dMin = Math.round(weightMinKg * 2.20462); dMax = Math.round(weightMaxKg * 2.20462); } else { unitLabel = 'kg'; dDevine = ibwDevineKg.toFixed(1); dRobinson = ibwRobinsonKg.toFixed(1); dMiller = ibwMillerKg.toFixed(1); dMin = weightMinKg.toFixed(1); dMax = weightMaxKg.toFixed(1); } // 7. Update DOM Elements document.getElementById('primaryResult').innerText = dDevine + ' ' + unitLabel; document.getElementById('bmiRangeResult').innerText = dMin + ' – ' + dMax + ' ' + unitLabel; document.getElementById('robinsonResult').innerText = dRobinson + ' ' + unitLabel; document.getElementById('millerResult').innerText = dMiller + ' ' + unitLabel; // Update Table var tableBody = document.getElementById('resultTableBody'); tableBody.innerHTML = "; var rows = [ { name: 'Devine Formula (Primary)', val: dDevine, desc: 'Medical Standard (1974)' }, { name: 'BMI Healthy Range', val: dMin + ' – ' + dMax, desc: 'World Health Organization' }, { name: 'Robinson Formula', val: dRobinson, desc: 'Revised Standard (1983)' }, { name: 'Miller Formula', val: dMiller, desc: 'Optimized for modern demographics' } ]; for (var i = 0; i < rows.length; i++) { var tr = document.createElement('tr'); var td1 = document.createElement('td'); var td2 = document.createElement('td'); var td3 = document.createElement('td'); td1.innerText = rows[i].name; td2.innerHTML = '' + rows[i].val + ' ' + unitLabel + ''; td3.innerText = rows[i].desc; tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tableBody.appendChild(tr); } // 8. Draw Chart drawChart(parseFloat(dMin), parseFloat(dMax), parseFloat(dDevine), unitLabel); } // DRAW CHART (NATIVE CANVAS) function drawChart(min, max, ideal, unit) { var canvas = document.getElementById('weightChart'); if (!canvas.getContext) return; var ctx = canvas.getContext('2d'); // Handle high pixel density var dpr = window.devicePixelRatio || 1; var rect = canvas.getBoundingClientRect(); canvas.width = rect.width * dpr; canvas.height = rect.height * dpr; ctx.scale(dpr, dpr); var width = rect.width; var height = rect.height; // Clear ctx.clearRect(0, 0, width, height); // Margins var marginLeft = 60; var marginBottom = 40; var marginTop = 40; var marginRight = 40; var chartW = width – marginLeft – marginRight; var chartH = height – marginBottom – marginTop; // Scale Logic // We want the chart to show 0 to Max + padding var chartMax = max * 1.2; // Helper to map Value to Y position // Y goes from bottom (height-marginBottom) to top (marginTop) function getY(val) { return (height – marginBottom) – ((val / chartMax) * chartH); } // Draw Axes ctx.beginPath(); ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1; ctx.moveTo(marginLeft, marginTop); ctx.lineTo(marginLeft, height – marginBottom); ctx.lineTo(width – marginRight, height – marginBottom); ctx.stroke(); // Draw Bars // Bar 1: Min Healthy (Green) // Bar 2: Ideal (Blue) // Bar 3: Max Healthy (Red/Orange) var barWidth = chartW / 5; var spacer = barWidth / 2; var x1 = marginLeft + spacer; var x2 = x1 + barWidth + spacer; var x3 = x2 + barWidth + spacer; // Bar 1: Min Weight ctx.fillStyle = '#28a745'; // Green var h1 = (height – marginBottom) – getY(min); ctx.fillRect(x1, getY(min), barWidth, h1); // Bar 2: Ideal ctx.fillStyle = '#004a99'; // Blue var h2 = (height – marginBottom) – getY(ideal); ctx.fillRect(x2, getY(ideal), barWidth, h2); // Bar 3: Max Weight ctx.fillStyle = '#ffc107'; // Yellow/Orange var h3 = (height – marginBottom) – getY(max); ctx.fillRect(x3, getY(max), barWidth, h3); // Labels ctx.fillStyle = '#333′; ctx.font = '12px sans-serif'; ctx.textAlign = 'center'; // X Axis Labels ctx.fillText('Min Healthy', x1 + barWidth/2, height – marginBottom + 15); ctx.fillText('Ideal (Devine)', x2 + barWidth/2, height – marginBottom + 15); ctx.fillText('Max Healthy', x3 + barWidth/2, height – marginBottom + 15); // Value Labels on top of bars ctx.font = 'bold 12px sans-serif'; ctx.fillText(min, x1 + barWidth/2, getY(min) – 5); ctx.fillText(ideal, x2 + barWidth/2, getY(ideal) – 5); ctx.fillText(max, x3 + barWidth/2, getY(max) – 5); // Y Axis Ticks ctx.textAlign = 'right'; ctx.font = '10px sans-serif'; ctx.fillStyle = '#666'; var steps = 5; for (var i = 0; i <= steps; i++) { var val = Math.round((chartMax / steps) * i); var yPos = getY(val); ctx.fillText(val + ' ' + unit, marginLeft – 5, yPos + 3); // Grid line ctx.strokeStyle = '#eee'; ctx.beginPath(); ctx.moveTo(marginLeft, yPos); ctx.lineTo(width – marginRight, yPos); ctx.stroke(); } } // RESET FUNCTION function resetCalculator() { document.getElementById('unitSystem').value = 'imperial'; toggleUnits(); document.getElementById('gender').value = 'male'; document.getElementById('heightFt').value = 5; document.getElementById('heightIn').value = 10; document.getElementById('heightCm').value = 178; calculateWeight(); } // COPY RESULTS FUNCTION function copyResults() { var ideal = document.getElementById('primaryResult').innerText; var range = document.getElementById('bmiRangeResult').innerText; var gender = document.getElementById('gender').value; var unit = document.getElementById('unitSystem').value; var heightText = ''; if (unit === 'imperial') { heightText = document.getElementById('heightFt').value + "ft " + document.getElementById('heightIn').value + "in"; } else { heightText = document.getElementById('heightCm').value + "cm"; } var text = "Weight by Height Calculator Results:\n"; text += "——————————–\n"; text += "Gender: " + gender + "\n"; text += "Height: " + heightText + "\n"; text += "——————————–\n"; text += "Ideal Body Weight (Devine): " + ideal + "\n"; text += "Healthy BMI Range: " + range + "\n"; text += "——————————–\n"; text += "Calculated via Professional Financial & Health Tools."; // Fallback copy method var textarea = document.createElement("textarea"); textarea.value = text; document.body.appendChild(textarea); textarea.select(); try { document.execCommand('copy'); var btn = document.querySelector('.btn-copy'); var originalText = btn.innerText; btn.innerText = 'Copied!'; setTimeout(function() { btn.innerText = originalText; }, 2000); } catch (err) { alert('Failed to copy results.'); } document.body.removeChild(textarea); }

Leave a Comment