{
  "title": "Bicycle fit dimension worksheet",
  "human_url": "https://happytails.ai/en/calculators/bicycle-fit-dimension-worksheet/",
  "agent_url": "https://happytails.ai/agents/en/calculators/bicycle-fit-dimension-worksheet/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/bicycle-fit-dimension-worksheet.md",
  "content": "Bicycle fit dimension worksheet\nRecord your inseam and your bike’s saddle, crank, handlebar and frame measurements, and compare your saddle height with two published rules. It is a worksheet, not a bike fit, and makes no health claims.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Bicycle fit dimension worksheet\nChoose the measurement unit and enter your inseam.\nMeasure the saddle height from the bottom bracket centre to the saddle top, and enter the crank length.\nAdd any optional measurements: setback, saddle to handlebar reach, floor heights and frame stack and reach.\nReview the ratios and differences from the reference heights, then download the JSON report or CSV.\nUseful next steps\nBicycle gear calculator\nCycling cadence calculator\nCm to inches\nTwo published saddle height rules\nThe LeMond rule sets saddle height, from the bottom bracket centre to the saddle top, at 0.883 × inseam. The Hamley and Thomas rule puts the saddle top 109% of inseam from the pedal axle with the crank in line with the seat tube, so the matching saddle height is 1.09 × inseam minus crank length. Both are described in Bini, Hume and Croft (Sports Medicine, 2011) and the 109% rule in Peveler and others (Journal of Strength and Conditioning Research, 2007), both checked 16 October 2026.\nReading the comparison\nWith an 820 mm inseam, a 725 mm saddle height and 172.5 mm cranks, the saddle is 0.94 mm above the LeMond reference and 3.7 mm above the Hamley and Thomas reference. Studies find that these rules give different heights and often disagree with knee angle methods, so the worksheet only records the numbers. It does not recommend a position or say anything about comfort, health or injury; a qualified bike fitter can assess fit.\nOther measurements and limits\nDrop is the saddle top height minus the handlebar top height, both measured from level floor. Stack divided by reach comes from the frame geometry chart. Inseam 400 to 1,100 mm, saddle height 300 to 1,200 mm and cranks 100 to 220 mm, in mm, cm or inches. Unit conversions use NIST SP 811 factors.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Bicycle gear calculator",
      "url": "https://happytails.ai/en/calculators/bicycle-gear-calculator/"
    },
    {
      "name": "Cycling cadence calculator",
      "url": "https://happytails.ai/en/calculators/cycling-cadence-calculator/"
    },
    {
      "name": "Cm to inches",
      "url": "https://happytails.ai/en/unit-converters/cm-to-inches/"
    }
  ],
  "tool": {
    "id": "bicycle-fit-dimension-worksheet",
    "category": "calculators",
    "built": true,
    "requirements": "Inseam 400 to 1,100 mm, saddle height 300 to 1,200 mm, crank length 100 to 220 mm, rider height 1,000 to 2,500 mm, setback -200 to 400 mm, saddle to handlebar 200 to 1,200 mm, floor heights 300 to 1,600 mm, stack 300 to 900 mm and reach 250 to 600 mm, in mm, cm or inches. Calculated on your device; download a JSON report and a CSV of results.",
    "implementation": {
      "fields": [
        {
          "key": "unit",
          "label": "Measurement unit",
          "value": "mm",
          "type": "select",
          "values": [
            "mm",
            "cm",
            "in"
          ]
        },
        {
          "key": "inseam",
          "label": "Inseam",
          "value": 820,
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "Floor to crotch, standing in socks with a book pressed up firmly between the legs."
        },
        {
          "key": "riderHeight",
          "label": "Rider height (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "Recorded in the report only."
        },
        {
          "key": "saddleHeight",
          "label": "Saddle height",
          "value": 725,
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "Centre of the bottom bracket to the top of the saddle, along the seat tube."
        },
        {
          "key": "crankLength",
          "label": "Crank length",
          "value": 172.5,
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "Usually stamped on the inside of the crank arm, in mm."
        },
        {
          "key": "setback",
          "label": "Saddle setback (optional)",
          "value": "",
          "type": "number",
          "step": "any",
          "help": "Horizontal distance from the bottom bracket centre back to the saddle nose. Use a negative value when the nose is ahead of it."
        },
        {
          "key": "saddleToBar",
          "label": "Saddle nose to handlebar centre (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any"
        },
        {
          "key": "saddleFloor",
          "label": "Saddle top above the floor (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any"
        },
        {
          "key": "barFloor",
          "label": "Handlebar top above the floor (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "With the saddle height above the floor, this gives the saddle to handlebar drop."
        },
        {
          "key": "stack",
          "label": "Frame stack (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any",
          "help": "From the frame geometry chart."
        },
        {
          "key": "reach",
          "label": "Frame reach (optional)",
          "value": "",
          "type": "number",
          "min": 0,
          "step": "any"
        }
      ],
      "registrationFamily": "vehicle-and-cycling",
      "input": false,
      "live": true,
      "presentation": "metrics",
      "note": "Calculated on your device. It records your measurements and compares them with two published saddle height rules; it is not a bike fit and makes no health or injury claim.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Bicycle fit dimension worksheet\n\n- Human page: https://happytails.ai/en/calculators/bicycle-fit-dimension-worksheet/\n- Markdown: https://happytails.ai/en/calculators/bicycle-fit-dimension-worksheet.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/bicycle-fit-dimension-worksheet/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `bicycle-fit-dimension-worksheet` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCalculated on your device. It records your measurements and compares them with two published saddle height rules; it is not a bike fit and makes no health or injury claim.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `unit` | Measurement unit | select | \"mm\" | Allowed: mm, cm, in |\n| `inseam` | Inseam | number | 820 | min=0 step=any |\n| `riderHeight` | Rider height (optional) | number | \"\" | min=0 step=any |\n| `saddleHeight` | Saddle height | number | 725 | min=0 step=any |\n| `crankLength` | Crank length | number | 172.5 | min=0 step=any |\n| `setback` | Saddle setback (optional) | number | \"\" | step=any |\n| `saddleToBar` | Saddle nose to handlebar centre (optional) | number | \"\" | min=0 step=any |\n| `saddleFloor` | Saddle top above the floor (optional) | number | \"\" | min=0 step=any |\n| `barFloor` | Handlebar top above the floor (optional) | number | \"\" | min=0 step=any |\n| `stack` | Frame stack (optional) | number | \"\" | min=0 step=any |\n| `reach` | Frame reach (optional) | number | \"\" | min=0 step=any |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nInseam 400 to 1,100 mm, saddle height 300 to 1,200 mm, crank length 100 to 220 mm, rider height 1,000 to 2,500 mm, setback -200 to 400 mm, saddle to handlebar 200 to 1,200 mm, floor heights 300 to 1,600 mm, stack 300 to 900 mm and reach 250 to 600 mm, in mm, cm or inches. Calculated on your device; download a JSON report and a CSV of results.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"bicycle-fit-dimension-worksheet\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Inseam 400 to 1,100 mm, saddle height 300 to 1,200 mm, crank length 100 to 220 mm, rider height 1,000 to 2,500 mm, setback -200 to 400 mm, saddle to handlebar 200 to 1,200 mm, floor heights 300 to 1,600 mm, stack 300 to 900 mm and reach 250 to 600 mm, in mm, cm or inches. Calculated on your device; download a JSON report and a CSV of results.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"unit\",\n        \"label\": \"Measurement unit\",\n        \"value\": \"mm\",\n        \"type\": \"select\",\n        \"values\": [\n          \"mm\",\n          \"cm\",\n          \"in\"\n        ]\n      },\n      {\n        \"key\": \"inseam\",\n        \"label\": \"Inseam\",\n        \"value\": 820,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Floor to crotch, standing in socks with a book pressed up firmly between the legs.\"\n      },\n      {\n        \"key\": \"riderHeight\",\n        \"label\": \"Rider height (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Recorded in the report only.\"\n      },\n      {\n        \"key\": \"saddleHeight\",\n        \"label\": \"Saddle height\",\n        \"value\": 725,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Centre of the bottom bracket to the top of the saddle, along the seat tube.\"\n      },\n      {\n        \"key\": \"crankLength\",\n        \"label\": \"Crank length\",\n        \"value\": 172.5,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Usually stamped on the inside of the crank arm, in mm.\"\n      },\n      {\n        \"key\": \"setback\",\n        \"label\": \"Saddle setback (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"step\": \"any\",\n        \"help\": \"Horizontal distance from the bottom bracket centre back to the saddle nose. Use a negative value when the nose is ahead of it.\"\n      },\n      {\n        \"key\": \"saddleToBar\",\n        \"label\": \"Saddle nose to handlebar centre (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"saddleFloor\",\n        \"label\": \"Saddle top above the floor (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"barFloor\",\n        \"label\": \"Handlebar top above the floor (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"With the saddle height above the floor, this gives the saddle to handlebar drop.\"\n      },\n      {\n        \"key\": \"stack\",\n        \"label\": \"Frame stack (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"From the frame geometry chart.\"\n      },\n      {\n        \"key\": \"reach\",\n        \"label\": \"Frame reach (optional)\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      }\n    ],\n    \"registrationFamily\": \"vehicle-and-cycling\",\n    \"input\": false,\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Calculated on your device. It records your measurements and compares them with two published saddle height rules; it is not a bike fit and makes no health or injury claim.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nRecord your inseam and your bike’s saddle, crank, handlebar and frame measurements, and compare your saddle height with two published rules. It is a worksheet, not a bike fit, and makes no health claims.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Bicycle fit dimension worksheet\n\n1. Choose the measurement unit and enter your inseam.\n2. Measure the saddle height from the bottom bracket centre to the saddle top, and enter the crank length.\n3. Add any optional measurements: setback, saddle to handlebar reach, floor heights and frame stack and reach.\n4. Review the ratios and differences from the reference heights, then download the JSON report or CSV.\n\n## Useful next steps\n\n- [Bicycle gear calculator](https://happytails.ai/en/calculators/bicycle-gear-calculator/) ([Markdown](https://happytails.ai/en/calculators/bicycle-gear-calculator.md))\n\n- [Cycling cadence calculator](https://happytails.ai/en/calculators/cycling-cadence-calculator/) ([Markdown](https://happytails.ai/en/calculators/cycling-cadence-calculator.md))\n\n- [Cm to inches](https://happytails.ai/en/unit-converters/cm-to-inches/) ([Markdown](https://happytails.ai/en/unit-converters/cm-to-inches.md))\n\n## Two published saddle height rules\n\nThe LeMond rule sets saddle height, from the bottom bracket centre to the saddle top, at 0.883 × inseam. The Hamley and Thomas rule puts the saddle top 109% of inseam from the pedal axle with the crank in line with the seat tube, so the matching saddle height is 1.09 × inseam minus crank length. Both are described in Bini, Hume and Croft (Sports Medicine, 2011) and the 109% rule in Peveler and others (Journal of Strength and Conditioning Research, 2007), both checked 16 October 2026.\n\n### Reading the comparison\n\nWith an 820 mm inseam, a 725 mm saddle height and 172.5 mm cranks, the saddle is 0.94 mm above the LeMond reference and 3.7 mm above the Hamley and Thomas reference. Studies find that these rules give different heights and often disagree with knee angle methods, so the worksheet only records the numbers. It does not recommend a position or say anything about comfort, health or injury; a qualified bike fitter can assess fit.\n\n### Other measurements and limits\n\nDrop is the saddle top height minus the handlebar top height, both measured from level floor. Stack divided by reach comes from the frame geometry chart. Inseam 400 to 1,100 mm, saddle height 300 to 1,200 mm and cranks 100 to 220 mm, in mm, cm or inches. Unit conversions use NIST SP 811 factors.\n"
}