Sports & Outdoor

Sport Equipment & Outdoor Gear Rental

Automated pre-sizing — predict foot length, head circumference, and inseam from booking data before the customer arrives.

Business Context

The Problem: The rental counter is where your revenue bottlenecks during peak hours. In practice, your staff isn’t measuring every customer with a tape — they’re pulling boots, helmets, and harnesses off the rack and watching the customer try them on until something fits. That trial-and-error loop burns 7–9 minutes per customer. The ceiling on your Saturday revenue is set not by demand but by how many fitting loops your counter can run in parallel.

The Solution: You already collect height and weight at online booking (or you can — it’s one extra field). DimensionsPot takes those two numbers and returns a complete, 130-point anthropometric profile in under 10ms. Before the customer walks through the door, your system already knows their foot length, head circumference, chest, and inseam. Check-in becomes a two-minute handover, not a ten-minute trial session.

The Procurement Edge: Aggregate the same API calls across a season of bookings and you have a real size distribution for your actual customer base — not a catalog standard. Your procurement team orders 47 Medium boots and 23 Large helmets, not “a mixed pallet, roughly half-and-half.”


ParameterValueReason
anchorsbody_height + body_massPRIMARY_BOTH tier — available at booking; BONE ~85, FLESH ~78 confidence
calculation_modelADULTRental customers are typically adults
body_build_typeATHLETICRemoves NHANES civilian fat-distribution shift; better fit for sports-active population
bundleFULL_BODYPPE and rental equipment sizing draws from multiple body regions
confidence_score_threshold70Retains all equipment-relevant FLESH dims (PRIMARY_BOTH FLESH ~78)
target_regionResort / rental location regionCalibrates to local population norms

Equipment mapping:

EquipmentKey DimensionsBundle
Ski bootsfoot_length, ankle_circumference, calf_circumferenceLEGS_FEET
Ski / cycling helmethead_circumference, head_breadth, head_lengthHEAD_FACE
Bicycle frameinseam_length, sitting_height, arm_length_totalLEGS_FEET + TORSO + HAND_ARM
Wetsuitchest_circumference, waist_circumference_natural, hip_circumference, inseam_lengthTORSO + LEGS_FEET
Climbing harnesswaist_circumference_natural, hip_circumference, thigh_circumferenceTORSO + LEGS_FEET
Paddling / kayak PFDchest_circumference, shoulder_breadthTORSO

Sample Request

curl -X POST "https://dimensionspot-bodysize-engine.p.rapidapi.com/v1/predict" \
  -H "Content-Type: application/json" \
  -H "X-RapidAPI-Key: YOUR_KEY" \
  -H "X-RapidAPI-Host: dimensionspot-bodysize-engine.p.rapidapi.com" \
  -d '{
    "input_data": {
      "input_unit_system": "metric",
      "subject": {
        "gender": "male",
        "exact_age": 32.0,
        "age_category": "ADULT",
        "input_origin_region": "EUROPE"
      },
      "anchors": {
        "body_height": 1820.0,
        "body_mass": 88.0
      }
    },
    "output_settings": {
      "calculation": {
        "calculation_model": "ADULT",
        "target_region": "EUROPE",
        "body_build_type": "ATHLETIC"
      },
      "requested_dimensions": {
        "bundle": "FULL_BODY",
        "specific_dimensions": null
      },
      "output_format": {
        "unit_system": "metric",
        "confidence_score_threshold": 70,
        "include_range_95": true,
        "include_iso_codes": false
      }
    }
  }'

Size Lookup Table Pattern

Pre-compute equipment size thresholds offline; the API call at booking time becomes a pure table lookup:

SKI_BOOT_SIZES = [
    (0,    235, "35"), (235,  245, "36"), (245,  255, "37"),
    (255,  265, "38"), (265,  275, "39"), (275,  285, "40"),
    (285,  295, "41"), (295,  305, "42"), (305,  315, "43"),
    (315,  325, "44"), (325,  335, "45"), (335, 9999, "46+"),
]

HELMET_SIZES = [
    (0, 520, "XS"), (520, 540, "S"), (540, 560, "M"),
    (560, 580, "L"), (580, 9999, "XL"),
]

def lookup_size(value_mm, table):
    for low, high, label in table:
        if low <= value_mm < high:
            return label
    return "Unknown"

def pre_size_rental(api_response):
    dims = api_response["body_dimensions"]

    foot_lower = dims["foot_length"]["range_95"][0]      # snug fit: use lower bound
    head_upper = dims["head_circumference"]["range_95"][1]  # safety: size up

    return {
        "ski_boot":  lookup_size(foot_lower, SKI_BOOT_SIZES),
        "helmet":    lookup_size(head_upper, HELMET_SIZES),
    }

Bicycle Frame Pre-Sizing

BIKE_FRAME_SIZES = [
    (0,    710, 44, "XS"), (710,  740, 47, "S"),  (740,  775, 50, "M"),
    (775,  810, 53, "M/L"), (810,  845, 56, "L"), (845,  880, 58, "L/XL"),
    (880, 9999, 61, "XL"),
]

def recommend_bike_frame(api_response):
    inseam = api_response["body_dimensions"]["inseam_length"]["value"]
    for lo, hi, frame_cm, label in BIKE_FRAME_SIZES:
        if lo <= inseam < hi:
            return {"size_label": label, "frame_cm": frame_cm, "inseam_mm": inseam}
    return {"size_label": "Custom fit required", "inseam_mm": inseam}

Response Handling Tips

  • For ski boots and cycling shoes, a snug fit is preferable — use the point estimate (or lower range_95 bound) for size assignment.
  • For helmets, hard hats, and harnesses, use the upper range_95 bound — safety equipment should err on the side of one size larger when in doubt.
  • Store the full API response in your booking record. If a customer reports poor fit on arrival, the stored body profile enables post-hoc analysis of systematic sizing errors.
  • Flag any dimension with biological_limit_status: "OUT_OF_BOUNDS" — these should be handled manually at check-in.
  • P99 latency is 6–8 ms per call. Pre-sizing an entire day’s bookings overnight in a nightly batch job is trivially fast even for a large resort.
  • For children’s rental, switch age_category to the appropriate pediatric value and omit anchors — the pediatric engine requires no measurements.
  • For international resorts, always set input_origin_region per customer — body proportion norms differ significantly across regions, particularly for foot dimensions and head circumference.