Ideal weight range calculator
This ideal weight range calculator compares two established height-based reference formulas: Devine and Robinson.
Run — free
Enter a positive height in centimeters or inches and select the biological sex used by the formulas. The result shows each estimate in kilograms and uses their lower and higher values as a practical comparison range. It is a quick reference for education, planning, and consistent automated calculations, not a diagnosis or an individualized medical target. Body composition, age, health, pregnancy, athletic training, and personal history can all make a healthy weight different from a formula-based estimate.
What the estimated range means
An ideal body weight formula is a reference calculation, not a direct measurement of health. This calculator evaluates the same height and biological sex with the Devine and Robinson equations, then reports the smaller result as the lower end and the larger result as the upper end of the comparison range. Using two formulas makes their modest disagreement visible instead of presenting one number with false precision. Both equations were developed as simple clinical references and depend mainly on height; they do not know your bone structure, muscle mass, body-fat distribution, age, fitness, medical conditions, medications, or goals. Treat the output as a neutral benchmark that can help frame a conversation or make repeated calculations consistent. It should not override advice from a qualified clinician or dietitian. A person may be healthy outside the displayed interval, and a number inside it does not by itself establish good health. If weight change could affect a medical condition, eating disorder recovery, pregnancy, or medication plan, use professional guidance rather than a generic target.
How Devine and Robinson are calculated
The calculation first converts the submitted height to inches. Each formula starts with a sex-specific reference weight at five feet and applies a fixed kilogram adjustment for every inch above or below that point. For males, Devine starts at 50 kilograms and changes by 2.3 kilograms per inch, while Robinson starts at 52 kilograms and changes by 1.9 kilograms per inch. For females, Devine starts at 45.5 kilograms and changes by 2.3 kilograms per inch, while Robinson starts at 49 kilograms and changes by 1.7 kilograms per inch. The calculator rounds each formula result to two decimal places and constructs the range from those rounded results. This transparent method is deterministic: identical inputs always produce identical outputs, whether submitted in centimeters or inches. Because the classic equations use a binary biological-sex parameter and contain no separate coefficients for intersex or nonbinary identities, the available choices describe the formula inputs rather than anyone’s gender identity. The labels are retained so the calculation remains reproducible and accurately represents the published reference equations.
Entering and using the result responsibly
Provide height as a positive number and choose either centimeters or inches. A height of 175 with the centimeter unit and 68.9 with the inch unit describe nearly the same measurement, although normal rounding can create a small difference. Select the biological-sex coefficient required for the reference comparison. The response includes normalized height in centimeters, both formula estimates, and the combined minimum and maximum in kilograms. This structure is useful in a user interface, spreadsheet import, intake workflow, or API because downstream code can display the range while retaining the component calculations for auditability. Reject missing, zero, negative, infinite, or nonnumeric heights before relying on a result; this capability returns an invalid-input error for them. Also remember that formulas become less informative when individual body composition differs substantially from the populations and assumptions behind a simple height equation. Use trends, clinical measurements, functional health, and professional assessment when making consequential decisions. The API price is $0.002 per request, while the browser calculation can use the same deterministic logic without sending the calculation to a model.
What you can do with it
Compare reference formulas
See Devine and Robinson estimates together instead of relying on a single apparently exact target.
Standardize an intake workflow
Generate a reproducible height-based reference range for records that use the same defined method.
Build an educational calculator
Expose the component values and combined range in a wellness or teaching interface with appropriate context.
FAQ
Is this a medical diagnosis?
No. It is a formula-based reference and cannot assess body composition, disease risk, nutrition, or overall health.
Why does the calculator return a range?
It compares Devine and Robinson and uses the lower and higher estimates as the endpoints, showing how standard formulas differ.
Which height units are accepted?
Use centimeters with cm or inches with in. The response also includes the normalized height in centimeters.
What happens if height is zero or negative?
The request fails with an invalid-input error because height must be a finite positive number.
How much does an API calculation cost?
Each API request costs $0.002. The calculation is also available through the browser experience.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/calc2/ideal-weight-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height":175,"sex":"male"}'const res = await fetch("https://api.kit.forhosting.com/calc2/ideal-weight-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height": 175,
"sex": "male"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/ideal-weight-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height": 175,
"sex": "male"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/ideal-weight-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height":175,"sex":"male"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height":175,"sex":"male"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/ideal-weight-range", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"height": 175,
"sex": "male"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.ideal_weight_range",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |