Estimate body frame size from height and wrist measurement
Find your frame size from two tape measurements: 175 cm tall with a 17.5 cm wrist gives a ratio of 10, a medium frame. A ratio above 10.4 means small and below 9.6 means large. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Height
- 175
- Wrist
- 17.5
- Height (cm)
- 175
- Wrist cm
- 17.5
- Height to wrist ratio
- 10
- Frame size
- medium
This body frame size estimator uses two simple measurements—standing height and wrist circumference—to place a result in a small, medium, or large reference category. It divides height in centimetres by wrist circumference in centimetres and compares that ratio with a fixed table. The calculation is deterministic, transparent, and easy to reproduce. It is intended as a general sizing reference, not as a diagnosis or a measurement of body fat, muscle mass, health, or ideal weight.
Measure height and wrist circumference consistently
Start with standing height and wrist circumference measured in centimetres. For height, stand upright without shoes on a level surface, keep the head in a neutral position, and record the measurement without rounding it more than necessary. For the wrist, use a flexible tape around the narrowest part of the wrist, close to the wrist bones.
The tape should touch the skin without squeezing it or hanging loose. A small measuring difference can move a ratio near a boundary, so repeat the wrist measurement if the tape position was uncertain. Use the same unit system for both numbers.
This capability labels its inputs as centimetres, which prevents an inches-and-centimetres mix that would produce a meaningless ratio. Both measurements must be finite and greater than zero. A missing value, zero, a negative number, Infinity, or text that cannot represent a number produces an invalid-input error rather than a misleading category.
The returned height and wrist fields let automated callers confirm exactly which numeric values were used. This preparation matters more than extra decimal places: a careful tape measurement is more useful than a highly precise number taken at the wrong point on the wrist.
Understand the ratio and reference bands
The algorithm computes the height-to-wrist ratio by dividing height by wrist circumference. A relatively tall person with a relatively narrow wrist has a higher ratio and therefore falls toward the small-frame end of this reference. A relatively broad wrist produces a lower ratio and falls toward the large-frame end.
The fixed table classifies a ratio above 10.4 as small, a ratio from 9.6 through 10.4 inclusive as medium, and a ratio below 9.6 as large. Inclusivity at the boundaries is deliberate: exactly 9.6 and exactly 10.4 are medium, so every valid result belongs to one and only one category. The response includes the ratio rounded to four decimal places for readable output, but classification uses the unrounded division result.
That prevents display rounding from changing the category near a threshold. It also returns the three reference rules alongside the category, allowing a person or application to explain the result without relying on hidden logic. There are no network calls, random values, current dates, user profiles, or learned predictions in the calculation.
Interpret the category as an estimate, not a health verdict
Small, medium, and large are broad descriptive categories from a ratio-based reference table. They do not measure body fat, muscularity, bone density, fitness, nutritional status, or disease risk. Two people in the same category can have very different builds, and a person close to a cutoff may receive a neighboring label after a minor measurement change.
Treat the result as a convenient frame-size estimate for general education, sizing notes, or consistent record keeping. Do not use it to prescribe a target weight, change medication, choose clinical treatment, or replace assessment by a qualified professional. If a decision depends on exact skeletal dimensions, use an appropriate measurement protocol and professional interpretation.
For software use, store the original measurements and returned ratio with the category so future readers can audit how the label was obtained. Validation errors are useful signals: correct the missing or non-positive measurement instead of substituting an arbitrary minimum. This narrow contract keeps the output understandable and avoids implying more precision or medical authority than two tape measurements can support.
What you can do with it
Personal measurement log
Add a reproducible frame-size reference to a record that already contains height and wrist circumference.
Educational demonstrations
Show how changing wrist circumference changes a height-to-wrist ratio and its category.
Form and spreadsheet automation
Convert two validated measurement fields into a stable small, medium, or large label.
FAQ
How is body frame size estimated?
Height is divided by wrist circumference, then the resulting ratio is compared with the small, medium, and large reference bands.
What are the category boundaries?
A ratio above 10.4 is small, 9.6 through 10.4 inclusive is medium, and below 9.6 is large.
Which units should I enter?
Enter both height and wrist circumference in centimetres. Mixing unit systems makes the ratio invalid for this table.
Is this a medical assessment?
No. It is a general ratio-based frame estimate and does not measure body composition, bone density, or health.
How do I measure my wrist for frame size?
Wrap a flexible tape around the narrowest part of the wrist, close to the wrist bones, so it touches the skin without squeezing or hanging loose. If your ratio lands near 9.6 or 10.4, measure again before trusting the category.
Related tools
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/calc3/body-frame-size-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height":175,"wrist":17.5}'const res = await fetch("https://api.kit.forhosting.com/calc3/body-frame-size-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height": 175,
"wrist": 17.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc3/body-frame-size-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height": 175,
"wrist": 17.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc3/body-frame-size-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height":175,"wrist":17.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height":175,"wrist":17.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc3/body-frame-size-estimate", 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,
"wrist": 17.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc3.body_frame_size_estimate",
"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. |
Technical notes
Enter both values as positive numbers in the same unit scale; the form and API describe centimetres so results remain consistent.
Interpret the category as an estimate, not a health verdict
Through the API, a successful calculation costs $0.002; interactive use can apply the same deterministic logic without inventing a separate formula.
Technical questions
What happens if a measurement is zero or negative?
The request fails with invalid_input because both height and wrist circumference must be positive finite numbers.