Vehicle speed from RPM calculator
At 6,000 rpm in a 1.0 top gear with a 3.73 final drive and 650 mm tires, the car does 197.08651 km/h in theory. Enter engine speed, gear ratio, final drive and tire diameter to get km/h, mph and m/s for any gear. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Rpm
- 6,000
- Gear ratio
- 1
- Final drive
- 3.73
- Tire diameter
- 650
- Tire diameter unit
- mm
- Overall ratio
- 3.73
- Tire diameter m
- 0.65
- Circumference m
- 2.042035225
- Wheel rpm
- 1,608.579088
Drivers, tuners, and fleet planners often need to know how fast a car is traveling at a given engine RPM in a specific gear—before a track day, after a gear-ratio swap, or when reading a dyno chart. This vehicle speed from RPM calculator converts engine revolutions per minute into road speed using the transmission gear ratio, final drive ratio, and overall tire diameter. It returns wheel RPM, overall ratio, tire circumference, and speed in kilometres per hour, miles per hour, and metres per second so you can check theoretical top speed in each gear without a spreadsheet.
How road speed follows from engine RPM and the drivetrain
An engine spins the transmission input shaft at a measured RPM. The selected gear multiplies torque and divides speed by the gear ratio: a first gear of 3.5 means the gearbox output shaft turns once for every 3.5 engine revolutions. The differential multiplies that reduction again by the final drive (axle) ratio, 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 the overall tire diameter when 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.
This kinematic model ignores tire slip, load growth, and aerodynamic drag, so the result is the theoretical road speed at that RPM—the number you use to compare gear sets, redline limits, and speedometer calibration, not a substitute for GPS at the limit. Positive gear and final drive ratios and a positive tire diameter are required; negative engine RPM is rejected because engine speed is reported as a non-negative tachometer reading.
Where knowing road speed per gear helps
Performance shops compare candidate gear ratios and final drives against a redline RPM and a tire size before ordering parts, using this calculator as a deterministic oracle instead of a fragile notebook formula. Track-day instructors and data-acquisition tools map tachometer traces to road speed when GPS dropouts occur, or cross-check speedometer error after a tire size change. Fleet and OEM documentation generators fill tables of theoretical top speed per gear for every powertrain SKU without embedding unit-conversion bugs.
Keep requests small, pin the rounded speeds in tests, and you get reproducible road-speed checks for builders, educators, and edge workers without standing up a vehicle-dynamics simulator of your own.
What you can do with it
Gear and final-drive selection
Compare theoretical top speed in each gear at redline after a gear-set or differential swap, using tire diameter from the fitted rubber.
Speedometer and tire-size checks
Estimate indicated versus true road speed when overall tire diameter changes after upsizing or downsizing wheels and tires.
Dyno and data logs
Convert engine RPM channels from dyno or track logs into road speed for overlays when GPS is missing or unreliable.
FAQ
What is overall ratio and wheel RPM?
Wheel RPM is engine RPM divided by overall ratio—the rotational speed of the drive wheels before tire slip.
Which tire diameter should I use?
Use the overall rolling diameter of the fitted tire (not just rim diameter).
Does this include drag, slip, or power limits?
No. The result is kinematic speed at the given RPM for the stated ratios and diameter. Real top speed may be lower if power, drag, or traction limit the car before redline.
Why is the car slower in first gear at the same RPM?
Because the overall ratio is the gear ratio times the final drive, and first gear's ratio is larger. A first gear of 3.5 turns the gearbox output once for every 3.5 engine revolutions, so the wheels spin more slowly.
Can I check my speedometer after changing tire size?
Yes. Enter the new overall tire diameter and compare the theoretical speed with what the speedometer shows at the same RPM and gear. A bigger tire covers more road per wheel turn, so the car goes faster.
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/vehicle-speed-from-rpm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rpm":6000,"gear_ratio":1,"final_drive":3.73,"tire_diameter":650}'const res = await fetch("https://api.kit.forhosting.com/travel/vehicle-speed-from-rpm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rpm": 6000,
"gear_ratio": 1,
"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/vehicle-speed-from-rpm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rpm": 6000,
"gear_ratio": 1,
"final_drive": 3.73,
"tire_diameter": 650
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/vehicle-speed-from-rpm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rpm":6000,"gear_ratio":1,"final_drive":3.73,"tire_diameter":650}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rpm":6000,"gear_ratio":1,"final_drive":3.73,"tire_diameter":650}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/vehicle-speed-from-rpm", 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": 6000,
"gear_ratio": 1,
"final_drive": 3.73,
"tire_diameter": 650
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.vehicle_speed_from_rpm",
"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
The same pure logic powers the free browser tool and the API path, so workshop notes and automation scripts always agree.
Input fields, units, and the response contract
Optional precision (integer 0–12, default 6) controls decimal places on rounded fields for stable goldens and UI display. Send a JSON body with four required finite numbers: rpm (engine speed in revolutions per minute, zero or greater), gear_ratio (transmission ratio for the gear of interest, strictly positive), 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 sidewall height or a converted tire-size diameter without unit mistakes. On success the response echoes the inputs, reports overall_ratio and wheel_rpm, converts diameter to metres, gives circumference_m, and returns speed_kmh, speed_mph, and speed_ms together with a short formula string. Missing fields, non-finite values, zero or negative ratios, and unknown diameter units fail with invalid_input and are not billed. Example: 6000 rpm, gear ratio 1.0, final drive 3.73, and a 650 mm tire diameter is a typical top-gear redline check; lower gears produce proportionally lower road speeds at the same RPM because overall_ratio is larger. Use aliases such as engine_rpm, gr, fd, and diameter when integrating with existing forms that use different labels.
Technical questions
How do I calculate vehicle speed from engine RPM?
Provide engine rpm, gear_ratio, final_drive, and tire_diameter (with optional unit mm/cm/m/in). Road speed is (rpm / (gear_ratio × final_drive) / 60) × π × diameter_in_metres, returned as km/h, mph, and m/s.
What does the vehicle speed from RPM calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.