Enter your body measurements below to determine your general body shape type. This calculator uses common ratios of bust, waist, and hip measurements to classify shapes like Hourglass, Rectangle, Pear, Apple, and Inverted Triangle.
Understanding Your Body Shape
Knowing your body shape can be a helpful tool for various aspects of your life, from choosing flattering clothing styles to understanding how your body tends to store fat or build muscle. While body shapes are a generalization and every individual is unique, these classifications provide a basic framework.
How to Take Accurate Measurements:
Bust: Measure around the fullest part of your bust, keeping the tape measure parallel to the floor.
Waist: Measure around the narrowest part of your torso, usually just above your belly button. This is your natural waistline.
Hips: Measure around the fullest part of your hips and buttocks, keeping the tape measure parallel to the floor.
Shoulders: Measure around the widest part of your shoulders, often best done with assistance.
Ensure the tape measure is snug but not tight, and parallel to the floor for all horizontal measurements.
Common Body Shape Types:
Hourglass: Characterized by a well-defined waist, with bust and hip measurements that are roughly equal. This shape is often considered balanced and curvy.
Rectangle (Ruler): In this shape, the bust, waist, and hip measurements are fairly similar, creating a straighter silhouette with less waist definition.
Pear (Triangle): Individuals with a pear shape typically have hips that are wider than their bust and shoulders, with a smaller upper body.
Inverted Triangle: This shape features shoulders or bust that are wider than the hips, creating a broader upper body tapering down to narrower hips.
Apple: An apple body shape is generally characterized by a wider waist circumference compared to the hips and often the bust, with weight tending to accumulate around the midsection.
Remember, these classifications are guides. Your body is unique and beautiful regardless of its shape. This calculator provides a general idea based on common measurement ratios.
.calculator-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 700px;
margin: 20px auto;
padding: 25px;
border: 1px solid #e0e0e0;
border-radius: 10px;
background-color: #ffffff;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.calculator-container h2 {
color: #333;
text-align: center;
margin-bottom: 20px;
font-size: 28px;
}
.calculator-container h3 {
color: #555;
margin-top: 30px;
margin-bottom: 15px;
font-size: 22px;
}
.calculator-container h4 {
color: #666;
margin-top: 25px;
margin-bottom: 10px;
font-size: 18px;
}
.calculator-container p, .calculator-container ul {
color: #444;
line-height: 1.6;
margin-bottom: 15px;
}
.calculator-inputs label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: #555;
}
.calculator-inputs input[type="number"] {
width: calc(100% – 22px);
padding: 12px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 16px;
}
.calculator-inputs input[type="number"]:focus {
border-color: #007bff;
outline: none;
box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}
.calculator-inputs button {
display: block;
width: 100%;
padding: 14px 20px;
background-color: #28a745;
color: white;
border: none;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
transition: background-color 0.3s ease;
margin-top: 20px;
}
.calculator-inputs button:hover {
background-color: #218838;
}
.calculator-result {
margin-top: 25px;
padding: 15px;
border: 1px solid #d4edda;
background-color: #e9f7ef;
border-radius: 5px;
font-size: 1.1em;
font-weight: bold;
color: #155724;
text-align: center;
}
.calculator-result strong {
color: #0f5132;
}
.calculator-article ul {
list-style-type: disc;
margin-left: 20px;
}
.calculator-article li {
margin-bottom: 8px;
}
function calculateBodyShape() {
var bust = parseFloat(document.getElementById("bustCircumference").value);
var waist = parseFloat(document.getElementById("waistCircumference").value);
var hip = parseFloat(document.getElementById("hipCircumference").value);
var shoulder = parseFloat(document.getElementById("shoulderCircumference").value);
var resultDiv = document.getElementById("bodyShapeResult");
resultDiv.innerHTML = ""; // Clear previous results
// Input validation
if (isNaN(bust) || bust <= 0 || isNaN(waist) || waist <= 0 || isNaN(hip) || hip <= 0) {
resultDiv.innerHTML = "Please enter valid positive numbers for Bust, Waist, and Hip measurements.";
return;
}
// Handle optional shoulder measurement: if not provided or invalid, default to bust for upper body comparison
if (isNaN(shoulder) || shoulder <= 0) {
shoulder = bust;
}
var shape = "Undetermined";
// Ratios for classification
var bust_hip_ratio = bust / hip;
var waist_hip_ratio = waist / hip;
var waist_bust_ratio = waist / bust;
// Thresholds (common industry standards, can vary slightly)
var THRESHOLD_SIMILAR_BODY_PART = 0.05; // e.g., within 5% difference
var THRESHOLD_WAIST_CINCHED = 0.75; // waist is 25% smaller than bust/hip
var THRESHOLD_DOMINANT_BODY_PART = 1.05; // one part is 5% larger than another
// 1. Hourglass Check: Bust and hips are similar, waist is significantly smaller
var isHourglass = (Math.abs(bust – hip) / ((bust + hip) / 2) < THRESHOLD_SIMILAR_BODY_PART) &&
(waist_bust_ratio < THRESHOLD_WAIST_CINCHED) &&
(waist_hip_ratio bust * THRESHOLD_DOMINANT_BODY_PART) &&
(waist > hip * THRESHOLD_DOMINANT_BODY_PART);
if (shape === "Undetermined" && isApple) {
shape = "Apple";
}
// 3. Inverted Triangle Check: Shoulders/Bust wider than Hips
// Use the larger of bust or shoulder for upper body comparison
var upperBodyMeasurement = Math.max(bust, shoulder);
var isInvertedTriangle = (upperBodyMeasurement / hip > THRESHOLD_DOMINANT_BODY_PART);
if (shape === "Undetermined" && isInvertedTriangle) {
shape = "Inverted Triangle";
}
// 4. Pear Check: Hips wider than Bust/Shoulders
var isPear = (hip / bust > THRESHOLD_DOMINANT_BODY_PART); // Hips significantly wider than bust
if (shape === "Undetermined" && isPear) {
shape = "Pear";
}
// 5. Rectangle Check: Default if none of the above strong classifications apply
// This implies measurements are relatively similar without strong dominance in any area
if (shape === "Undetermined") {
shape = "Rectangle";
}
resultDiv.innerHTML = "Based on your measurements, your body shape is likely: " + shape + ".";
}