Skip to content
🛠️ToolsShed

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.475.6 kg

Based on Hamwi formula ±10% for frame size.

Frame Size Criteria (r = height / wrist)

GenderSmallMediumLarge
Male> 10.49.6–10.4< 9.6
Female> 11.010.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.