Gear ratio speed spread calculator
At 3000 rpm, a six-speed box with a 3.5 first gear, a 0.7 top gear, a 3.73 final drive and a 650 mm tire shows its speed in every gear and an overall spread of 5. Compare gear sets or check a tire change. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Rpm
- 3,000
- Gear ratios
- 3.5, 2.1, 1.4, 1, 0.85, 0.7
- Final drive
- 3.73
- Tire diameter
- 650
- Tire diameter unit
- Mm
- Tire diameter m
- 0.65
- Circumference m
- 2.042035225
- Gear count
- 6
- First gear ratio
- 3.5
Close-ratio and wide-ratio gearboxes feel completely different at the same cruise RPM, and a single-gear speed check cannot show why. A gear ratio speed spread calculator answers the workshop question tuners actually ask: at this tachometer mark, how fast is the car in every gear, how large is the hole between those speeds, and how far does engine speed fall on each upshift. Supply an ordered list of transmission ratios, the final drive, overall tire diameter, and one working RPM. The engine returns a per-gear speed table in kilometres per hour, miles per hour, and metres per second, plus step percentages, RPM drop after each upshift, and the overall first-to-top spread. Use it when comparing candidate gear sets, after a tire-size change, or when documenting a close-ratio box for the track.
How road speed and inter-gear spread are derived
At a fixed engine RPM the crankshaft turns the transmission input at one constant speed. Each gear multiplies torque and divides shaft speed by its ratio: a first gear of 3.5 means the gearbox output turns once for every 3.5 engine revolutions. The differential multiplies that reduction again by the final drive, so the overall ratio from crankshaft to wheels is gear ratio times final drive.
Wheel revolutions per minute are therefore engine RPM divided by that overall ratio. Each wheel revolution advances the vehicle by one tire circumference, which is π times overall tire diameter once diameter is converted to metres. Linear road speed in metres per second is wheel revolutions per second times circumference; multiplying by 3.6 yields km/h and converting with the international mile factor yields mph.
That is the speed in that gear at the chosen RPM. The spread analysis sits on top of the table. Overall spread is the first listed ratio divided by the last listed ratio, the classic first-to-top span of the box.
Between consecutive gears the speed ratio at the same RPM equals the inverse of the ratio step, and the engine speed after an upshift that holds road speed constant is the original RPM times the next ratio over the current ratio. The percentage RPM drop is one minus that quotient. Comparing those step percentages shows whether the box is close-ratio (small, even drops) or wide-ratio (large holes, especially between first and second).
The model is kinematic: it ignores tire slip, load growth, aerodynamic drag, and power limits, so the numbers compare gear sets and cruise maps, they do not promise that the car will hold that RPM against the wind.
Where comparing gear speeds pays off
Performance shops compare a close-ratio rally set against a wide-ratio highway set at the same cruise RPM and tire size before ordering parts, using this calculator as a deterministic oracle instead of a fragile spreadsheet. Track-day instructors and data tools fill theoretical speed-at-RPM columns and RPM-drop columns so drivers can see whether a shift will land back in the power band or fall into a hole. Fleet and OEM documentation generators emit per-gear speed tables and spread statistics for every powertrain SKU without embedding unit-conversion bugs.
Keep gear lists short, pin the rounded speeds and step percentages in tests, and you get reproducible multi-gear spread checks for builders, educators, and edge workers without standing up a full vehicle-dynamics simulator of your own. Pair this capability with a single-RPM road-speed check when you need one point reading, and with a redline-per-gear table when you need theoretical top speed rather than the working-RPM spread that this landing is built to answer.
What you can do with it
Close-ratio versus wide-ratio comparison
Compare candidate gear sets at the same cruise RPM and tire diameter to see step percentages, RPM drop, and first-to-top overall spread before ordering a box.
Tire-size change and cruise map
Rebuild the full speed-per-gear table and the holes between gears after upsizing or downsizing wheels, using the new overall rolling diameter.
Shift-point and power-band notes
Document where engine speed lands after each upshift at a chosen RPM so a track briefing or OEM data pack can show the spread of the box.
FAQ
What is overall spread in a gear-ratio speed spread calculator?
Overall spread is the first listed gear ratio divided by the last listed gear ratio — the classic first-to-top span of the transmission. Speed spread ratio at a fixed RPM equals that same number because speed is inversely proportional to gear ratio.
Does this include drag, slip, or power limits?
No. Results are kinematic speeds at the stated RPM for the stated ratios and diameter. Real speed may differ if slip, load growth, drag, or traction change the effective rolling diameter or prevent the engine from holding that RPM.
How far does engine speed drop on each upshift?
At the same road speed, the new rpm is the old rpm times the next ratio divided by the current one. From 3000 rpm with ratios of 3.5 and 2.1, the shift to second lands at 1800 rpm, a 40 % drop.
How do I tell a close-ratio gearbox from a wide-ratio one?
Look at the step percentages between gears. Small, even rpm drops mean a close-ratio box; large holes, especially between first and second, mean a wide-ratio one.
What tire diameter should I enter?
The overall rolling diameter of the tire, in millimetres, centimetres, metres or inches. Re-run the table after a tire-size change to see how every gear's speed shifts at the same rpm.
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/travel/gear-speed-spread \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rpm":3000,"gear_ratios":[3.5,2.1,1.4,1,0.85,0.7],"final_drive":3.73,"tire_diameter":650}'const res = await fetch("https://api.kit.forhosting.com/travel/gear-speed-spread", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rpm": 3000,
"gear_ratios": [
3.5,
2.1,
1.4,
1,
0.85,
0.7
],
"final_drive": 3.73,
"tire_diameter": 650
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/gear-speed-spread",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rpm": 3000,
"gear_ratios": [
3.5,
2.1,
1.4,
1,
0.85,
0.7
],
"final_drive": 3.73,
"tire_diameter": 650
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/gear-speed-spread", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rpm":3000,"gear_ratios":[3.5,2.1,1.4,1,0.85,0.7],"final_drive":3.73,"tire_diameter":650}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rpm":3000,"gear_ratios":[3.5,2.1,1.4,1,0.85,0.7],"final_drive":3.73,"tire_diameter":650}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/gear-speed-spread", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"rpm": 3000,
"gear_ratios": [
3.5,
2.1,
1.4,
1,
0.85,
0.7
],
"final_drive": 3.73,
"tire_diameter": 650
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.gear_speed_spread",
"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
How road speed and inter-gear spread are derived
Positive gear ratios, a positive final drive, a non-negative RPM, and a positive tire diameter are required; empty ratio lists and non-finite values are rejected with invalid_input.
Input fields, units, and the response contract
Optional precision (integer zero through twelve, default six) controls decimal places on rounded fields for stable goldens and UI display. Example: 3000 rpm, ratios [3.5, 2.1, 1.4, 1.0, 0.85, 0.7], final drive 3.73, and a 650 mm tire diameter produces a full six-gear cruise-speed table plus the holes between those gears. Send a JSON body with four required pieces: rpm (the working engine speed in revolutions per minute, zero or greater), gear_ratios (a non-empty ordered array of strictly positive transmission ratios from first gear upward, at most twenty-four gears), final_drive (differential or axle ratio, strictly positive), and tire_diameter (overall rolling diameter, strictly positive). Optional tire_diameter_unit accepts mm (default), cm, m, or in so you can paste a measured diameter without unit mistakes. On success the response echoes rpm and final drive, converts diameter to metres, gives circumference_m, and returns gear_count plus a gears array where each row has gear number, gear_ratio, overall_ratio, wheel_rpm, speed_kmh, speed_mph, and speed_ms. It also returns a steps array for each upshift with speed_delta, speed_ratio, step_pct, rpm_after_shift, rpm_drop, and rpm_drop_pct. Headline statistics include first_gear_ratio, last_gear_ratio, overall_spread, ratio_span, speed_spread in km/h, mph and m/s, and speed_spread_ratio. When two or more gears are present the payload also includes mean, minimum and maximum step percentages, the geometric-mean step, and which gears start the widest and closest steps. Missing fields, empty or non-array gear lists, zero or negative ratios, unknown diameter units, and non-finite values fail with invalid_input and are not billed. Aliases such as engine_rpm, ratios, fd, and diameter help when integrating forms that use different labels.
Technical questions
How do I calculate road speed in every gear at one RPM?
Provide rpm, gear_ratios (ordered positive ratios), final_drive, and tire_diameter (with optional unit mm/cm/m/in). For each gear, road speed is (rpm / (gear_ratio × final_drive) / 60) × π × diameter_in_metres, returned as km/h, mph, and m/s together with the spread between those speeds.
How is RPM drop after an upshift computed?
Holding road speed constant, engine speed after shifting from gear i to gear i+1 is rpm × (ratio_next / ratio_current). RPM drop is the difference, and rpm_drop_pct is (1 − ratio_next / ratio_current) × 100.
What does the gear ratio speed spread calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.