{
  "slug": "cycling-power-speed",
  "title": "Cycling Power to Speed Calculator",
  "heading": "Cycling Power & Speed Calculator",
  "category": "fitness-health",
  "url": "https://www.revenuelab.fyi/toolbox/cycling-power-speed",
  "summary": "Estimate speed from watts, or watts needed to hold a speed.",
  "description": "Cycling speed is dominated by aerodynamic drag and, on climbs, gravity. Enter your power, weight, and gradient to see the speed that physics allows.",
  "formula": "P = (½·ρ·CdA·v³) + (Crr·m·g·v) + (m·g·grade·v), solved for v.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=cycling-power-speed",
  "inputs": [
    {
      "id": "watts",
      "label": "Sustained power",
      "kind": "number",
      "hint": null,
      "default": 220,
      "unit": "W",
      "min": 50,
      "max": null
    },
    {
      "id": "riderKg",
      "label": "Rider weight",
      "kind": "number",
      "hint": null,
      "default": 75,
      "unit": "kg",
      "min": 30,
      "max": null
    },
    {
      "id": "bikeKg",
      "label": "Bike + kit weight",
      "kind": "number",
      "hint": null,
      "default": 9,
      "unit": "kg",
      "min": 3,
      "max": null
    },
    {
      "id": "grade",
      "label": "Gradient",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "%",
      "min": -15,
      "max": 20
    },
    {
      "id": "cda",
      "label": "Aero drag area (CdA)",
      "kind": "number",
      "hint": null,
      "default": 0.32,
      "unit": null,
      "min": 0.15,
      "max": 0.6
    },
    {
      "id": "crr",
      "label": "Rolling resistance (Crr)",
      "kind": "number",
      "hint": null,
      "default": 0.005,
      "unit": null,
      "min": 0.002,
      "max": 0.015
    }
  ],
  "outputs": [
    {
      "id": "mph",
      "label": "Estimated speed (mph)",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "kph",
      "label": "Speed (km/h)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "wkg",
      "label": "Power to weight (W/kg)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "perMile",
      "label": "Minutes per mile",
      "format": "decimal",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Sustained power: 220 W",
      "Rider weight: 75 kg",
      "Bike + kit weight: 9 kg",
      "Gradient: 0 %",
      "Aero drag area (CdA): 0.32",
      "Rolling resistance (Crr): 0.005"
    ],
    "outputs": [
      "Estimated speed (mph): 21.5",
      "Speed (km/h): 34.6",
      "Power to weight (W/kg): 2.93",
      "Minutes per mile: 2.79"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter sustained power (W).",
      "Enter rider weight (kg).",
      "Enter bike + kit weight (kg).",
      "Enter gradient (%).",
      "Enter aero drag area (cda).",
      "Enter rolling resistance (crr).",
      "Read your estimated speed (mph) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "watts": 130,
        "riderKg": 45,
        "bikeKg": 5.3999999999999995,
        "grade": 0,
        "cda": 0.192,
        "crr": 0.003
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "watts": 220,
        "riderKg": 75,
        "bikeKg": 9,
        "grade": 0,
        "cda": 0.32,
        "crr": 0.005
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "watts": 350,
        "riderKg": 120,
        "bikeKg": 14.4,
        "grade": 0,
        "cda": 0.512,
        "crr": 0.008
      }
    }
  ],
  "limitations": [
    "Population formulas describe averages; individual bodies vary, especially at the extremes of height, age, or muscle mass.",
    "Results do not account for medical conditions, medication, or pregnancy.",
    "Use this as a directional reference, not a diagnosis — talk to a clinician before acting on it."
  ],
  "faq": [
    {
      "q": "What CdA should I use?",
      "a": "0.40 upright on hoods, 0.32 in the drops, 0.25 or lower in an aero tuck on a TT bike."
    },
    {
      "q": "Why does W/kg matter on climbs?",
      "a": "Above roughly 5% gradient, gravity dwarfs aero drag, so speed tracks almost linearly with watts per kilogram."
    }
  ],
  "related": [],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Cycling Power to Speed Calculator (https://www.revenuelab.fyi/toolbox/cycling-power-speed)"
}