Bike gear calculator
A 50-tooth chainring, a 12-tooth cog and a 0.68 m wheel give a ratio of 4.167 and about 8.9 metres per crank turn, so you can compare gears by distance rather than tooth counts. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Chainring teeth
- 50
- Cog teeth
- 12
- Wheel diameter m
- 0.68
- Circumference m
- 2.1362830044
- Ratio
- 4.1666666667
- Development m
- 8.9011791852
Cyclists compare gears by how far the bicycle rolls for one full turn of the cranks, not by tooth counts alone. That distance is metres of development: the product of the drivetrain gear ratio and the outer circumference of the wheel and tyre. This bike gear calculator takes front chainring teeth, rear cog teeth, and wheel diameter in metres, divides chainring by cog to obtain the ratio, multiplies by pi times diameter, and returns both the unitless ratio and the development in metres per crank revolution.
What gear ratio and metres of development actually measure
A bicycle drivetrain is a two-sprocket reduction: the front chainring drives the chain, and the rear cog on the cassette or freewheel turns the hub. The gear ratio is simply chainring teeth divided by cog teeth. A fifty-tooth ring with an eleven-tooth cog is about four point five five, meaning the rear wheel turns a little more than four and a half times for each crank revolution.
Ratio alone does not tell you how far you travel, because a twenty-nine-inch mountain wheel covers more ground per revolution than a small folding-bike wheel at the same ratio. Metres of development close that gap. Development is the distance the bicycle advances for one complete turn of the cranks, equal to the gear ratio times the outer circumference of the tyre.
Circumference is pi times the outer wheel diameter you supply, so development equals chainring over cog times pi times diameter in metres. That is the quantity European coaches and many cassette charts list beside each sprocket, and it is the quantity this landing returns. Gear inches are a related imperial shortcut—ratio times diameter in inches—but they omit pi and are not metres on the road.
This calculator reports SI development, not gear inches and not road speed. Road speed additionally needs cadence; that is a different search and a different tool. Here the question is only: given this ring, this cog, and this wheel, how many metres does one crank turn cover?
What you can do with it
Cassette cards and shop floor comparisons
Mechanics enter chainring, cog, and outer wheel diameter to print metres of development beside each sprocket so customers compare gears without a spreadsheet.
Coaching logs and climb-gear planning
Coaches rank compact versus standard chainsets by metres per crank revolution on a known wheel so steep-climb gears are chosen by distance, not tooth count.
FAQ
What happens if cog teeth is zero or negative?
A sprocket cannot have zero or negative teeth, and dividing by that count would not be a valid gear. Those failures are not billed.
Is wheel diameter the same as ISO bead-seat diameter?
No. Send the outer diameter in metres including the tyre. A 700c rim is 622 mm at the bead; a 25 mm tyre raises the outer diameter to about 0.67–0.68 m.
Does this calculator return road speed?
No. It returns ratio and metres of development for one crank turn. Road speed also needs cadence; that is a different calculator.
What does the bike gear calculator cost?
The browser tool runs free on your device.
How is metres of development calculated?
Divide the chainring teeth by the cog teeth to get the ratio, then multiply by pi and the outer wheel diameter in metres. The result is the distance the bike rolls for one full turn of the cranks.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/sports/bike-gear-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"chainring_teeth":50,"cog_teeth":12,"wheel_diameter_m":0.68}'const res = await fetch("https://api.kit.forhosting.com/sports/bike-gear-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"chainring_teeth": 50,
"cog_teeth": 12,
"wheel_diameter_m": 0.68
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sports/bike-gear-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"chainring_teeth": 50,
"cog_teeth": 12,
"wheel_diameter_m": 0.68
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sports/bike-gear-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"chainring_teeth":50,"cog_teeth":12,"wheel_diameter_m":0.68}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"chainring_teeth":50,"cog_teeth":12,"wheel_diameter_m":0.68}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sports/bike-gear-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"chainring_teeth": 50,
"cog_teeth": 12,
"wheel_diameter_m": 0.68
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.bike_gear_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
A cog with zero or negative teeth is not a valid sprocket, so those requests fail with invalid_input and are not billed.
What gear ratio and metres of development actually measure
The arithmetic is deterministic, uses the same module in the browser and on the API, and never consults a network, a clock, or a random generator.
Input contract, formula, and when the calculator rejects a request
Chainring teeth must be greater than zero and at most eighty, covering compact, standard, and most chain-guide rings. Wheel diameter is the outer diameter in metres including the tyre, not the ISO bead-seat diameter printed as six hundred twenty-two millimetres on a seven-hundred-c rim. Typical road values sit near zero point six seven to zero point six eight metres once the tyre is mounted; twenty-nine-inch mountain tyres are larger, folding and kids wheels are smaller. Diameter must fall between zero point two and one point five metres inclusive. Example: fifty chainring teeth, twelve cog teeth, and a wheel diameter of zero point six eight metres yields ratio four point one six seven and a little over eight point nine metres of development per crank revolution. POST a JSON body with three required finite numbers: chainring_teeth, cog_teeth, and wheel_diameter_m. Chainring teeth may also arrive as chainring, front_teeth, ring_teeth, or front_chainring; cog teeth accept cog, rear_teeth, sprocket, and cassette_teeth; diameter accepts wheel_diameter, diameter_m, diameter, and wheel_d. Cog teeth must be a positive number in the same band: zero or negative cog teeth is not a valid sprocket and fails with invalid_input naming cog_teeth, and those failures are not billed. Missing fields, empty strings, non-finite values, and out-of-range numbers fail with invalid_input naming the field. On success the body echoes the three inputs, then circumference_m equal to pi times diameter, ratio equal to chainring over cog, development_m equal to ratio times circumference, and a formula string restating the identity. Prefer development_m on cassette cards and shop pages; keep ratio when you want the unitless tooth ratio beside the distance.
Where a bike gear calculator earns its keep, and what it is not
Call the free in-browser bike gear calculator for workshop demos, bike-shop cassette comparisons, and club nights where riders want metres of development without opening a spreadsheet. Riders choosing gears for a steep climb or a fast descent can rank sprockets by metres per crank revolution instead of by tooth count alone. Use the prepaid API when a retailer configurator, coaching log, or fleet tool needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair a measured outer diameter—or a tabulated diameter for the tyre you actually run—with each chainring and cog you are considering, store development_m beside the sprocket, and remember that sidewall markings such as seven hundred by twenty-five do not equal outer diameter until you add twice the tyre height to the bead-seat diameter. This landing does not convert cadence into kilometres per hour, does not compute industrial pinion-and-gear mesh ratios for shafts, and does not emit gear inches or gain ratios; those are different search intents with their own tools. Authors shipping SDKs can map ratio and development_m into comparison tables for compact versus standard chainsets, eleven-speed versus twelve-speed cassettes, and twenty-six-inch versus twenty-nine-inch wheels—the same numbers a mechanic computes by dividing teeth and multiplying by pi times diameter.
Integration use cases
Retail configurators and fleet tools
Product pages and team inventories call a prepaid endpoint for ratio and development_m instead of duplicating pi times diameter times chainring over cog in every language.
Technical questions
How does the bike gear calculator compute metres of development?
Divide chainring_teeth by cog_teeth to get the unitless ratio, then multiply by π times wheel_diameter_m. The result development_m is metres travelled per one crank revolution.