Body Frame Size Calculator
Determine small, medium, or large frame size from height and wrist circumference.
Frame Size
Medium
Ratio (r): 10.29
Ideal Weight Range (Hamwi)
68.4 – 75.6 kg
Based on Hamwi formula ±10% for frame size.
Frame Size Criteria (r = height / wrist)
| Gender | Small | Medium | Large |
|---|---|---|---|
| Male | > 10.4 | 9.6–10.4 | < 9.6 |
| Female | > 11.0 | 10.1–11.0 | < 10.1 |
r = height (cm) ÷ wrist circumference (cm)
About this tool
Your body frame size reflects the fundamental size of your skeletal structure—a characteristic that, unlike muscle mass or body fat, remains constant throughout your adult life. The calculation uses a simple but effective ratio of your height to wrist circumference to classify whether you have a small, medium, or large frame. This measurement matters because it provides essential context for evaluating healthy weight; two people of identical height may have significantly different healthy weight ranges depending on their frame size.
To use this calculator, simply enter your gender, height, and wrist circumference in either metric (centimeters) or imperial (inches) units. The tool instantly determines your frame classification and provides an estimated ideal weight range using the Hamwi formula, adjusted by frame size. Many fitness professionals and health practitioners recommend considering frame size alongside BMI, especially when someone feels their weight doesn't align with standard BMI categories, or when establishing personalized fitness and nutrition goals.
Frequently Asked Questions
Code Implementation
def body_frame_size(height_cm, wrist_cm, gender):
"""
Determine body frame size from height and wrist circumference.
Returns: 'small', 'medium', or 'large'
"""
r = height_cm / wrist_cm
if gender == "male":
if r > 10.4:
return "small"
elif r < 9.6:
return "large"
else:
return "medium"
else: # female
if r > 11.0:
return "small"
elif r < 10.1:
return "large"
else:
return "medium"
def ideal_weight_hamwi(height_cm, gender, frame):
"""Hamwi formula for ideal body weight in kg"""
height_in = height_cm / 2.54
if gender == "male":
ibw = 48 + max(0, height_in - 60) * 2.7
else:
ibw = 45.5 + max(0, height_in - 60) * 2.2
adj = {"small": -0.10, "medium": 0, "large": 0.10}[frame]
return ibw * (1 + adj)
# Example
height, wrist = 175, 17
gender = "male"
frame = body_frame_size(height, wrist, gender)
ibw = ideal_weight_hamwi(height, gender, frame)
print(f"Frame: {frame}, Ideal weight: {ibw:.1f}kg")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.