# Cadence to Speed Calculator

> Converts pedalling cadence into road speed from the gear ratio (or chainring and cog teeth) and the wheel circumference, giving km/h, mph, m/s, metres per pedal revolution and wheel rpm.

- Calculator id: `cadence-to-speed` · Category: Sports & Fitness (`fitness`) · Tool name: `convert_cadence_to_speed`
- Canonical page: https://tttkmbb.com/fitness/cadence-to-speed · This document: https://tttkmbb.com/fitness/cadence-to-speed.md · JSON definition: https://tttkmbb.com/fitness/cadence-to-speed.json

## Purpose

Converts pedalling cadence into road speed from the gear ratio (or chainring and cog teeth) and the wheel circumference, giving km/h, mph, m/s, metres per pedal revolution and wheel rpm.

**Use when:** You want the speed a given cadence produces in a known gear, e.g. to plan cadence targets on a trainer or check a bike computer's wheel-size setting.

**Do not use when:** You need to derive the gear ratio and wheel size from teeth counts and tyre dimensions first (use bike-gear-ratio), or you want running pace conversions (use pace-converter).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `cadence_rpm` | number | rpm | required | Pedal revolutions per minute. (min 1, max 250) |
| `gear_ratio` | number |  | optional | Chainring teeth divided by cog teeth (wheel turns per crank turn). Give this or chainring_teeth and cog_teeth. (> 0, max 15) |
| `chainring_teeth` | integer | teeth | optional | Front chainring teeth, used with cog_teeth when gear_ratio is not given. (min 10, max 90) |
| `cog_teeth` | integer | teeth | optional | Rear sprocket teeth, used with chainring_teeth when gear_ratio is not given. (min 6, max 60) |
| `wheel_circumference_mm` | number | mm | optional, default 2111 | Rolling circumference of the wheel with tyre: about 2111 mm for 700×25C, 2096 for 700×23C, 2288 for 29×2.1", 2055 for 26×2.0". (min 500, max 3000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `speed_kmh` | number | km/h | cadence × gear ratio × circumference. |
| `speed_mph` | number | mph | Same speed in miles per hour. |
| `speed_m_per_s` | number | m/s | Same speed in metres per second. |
| `development_m` | number | m | gear_ratio × wheel_circumference_mm / 1000. |
| `wheel_rpm` | number | rpm | cadence_rpm × gear_ratio. |
| `gear_ratio_used` | number |  | Ratio applied (given directly or chainring_teeth / cog_teeth). |

## Formula

`gear_ratio = chainring_teeth / cog_teeth (if not given); development_m = gear_ratio × wheel_circumference_mm / 1000; speed_kmh = cadence_rpm × development_m × 60 / 1000; speed_mph = speed_kmh / 1.609344`

Assumes no wheel slip and a fixed ratio; for internally geared hubs multiply gear_ratio by the hub's stage ratio. Measured roll-out circumference (mark the tyre, roll one revolution under rider weight) is more accurate than tabulated values by 1–2 %.

## Data Sources

- Sheldon Brown – Bicycle Gear Calculator (gear inches, metres of development, gain ratio) — https://www.sheldonbrown.com/gear-calc.html (reference, retrieved 2026-09-24)
- NIST Special Publication 811 – Guide for the Use of the SI (Appendix B: 1 mile = 1609.344 m, 1 yard = 0.9144 m) — https://www.nist.gov/pml/special-publication-811 (standard, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/cadence-to-speed?cadence_rpm=…`
- `POST https://tttkmbb.com/api/v1/calculate/cadence-to-speed` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/cadence-to-speed · OpenAPI operationId `convert_cadence_to_speed` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "cadence-to-speed", "inputs": {…}}`

## Example

- 90 rpm in a 2.0 ratio (50 × 25), 700×25C: inputs `{"cadence_rpm":90,"gear_ratio":2}` → `{"speed_kmh":22.8,"speed_mph":14.17,"speed_m_per_s":6.333,"development_m":4.222,"wheel_rpm":180,"gear_ratio_used":2}`
- 100 rpm in 53 × 11, 700×23C: inputs `{"cadence_rpm":100,"chainring_teeth":53,"cog_teeth":11,"wheel_circumference_mm":2096}` → `{"gear_ratio_used":4.818,"development_m":10.099,"speed_kmh":60.59,"speed_mph":37.65}`

```
GET https://tttkmbb.com/api/v1/calculate/cadence-to-speed?cadence_rpm=90&gear_ratio=2
```

## Limitations

You need to derive the gear ratio and wheel size from teeth counts and tyre dimensions first (use bike-gear-ratio), or you want running pace conversions (use pace-converter). Assumes no wheel slip and a fixed ratio; for internally geared hubs multiply gear_ratio by the hub's stage ratio. Measured roll-out circumference (mark the tyre, roll one revolution under rider weight) is more accurate than tabulated values by 1–2 %. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Which input wins if I give both gear_ratio and teeth counts?**

gear_ratio is used and the teeth counts are ignored.

**What cadence is normal?**

Most trained road cyclists ride at 80–100 rpm; climbing is often 60–80 rpm. Speed scales linearly with cadence in a fixed gear.

## Related

- [Bike Gear Ratio Calculator](https://tttkmbb.com/fitness/bike-gear-ratio.md) — Derive the ratio and circumference from teeth counts, rim and tyre size.
- [Pace Converter](https://tttkmbb.com/fitness/pace-converter.md) — Convert speed to pace units.
- [Speed Converter](https://tttkmbb.com/conversion/speed.md) — General speed unit conversion.
