Gear train mechanical advantage calculator
This gear train mechanical advantage calculator combines the tooth counts from every mesh in a compound train.
Run — free
Enter each driver gear and its corresponding driven gear in order, and the calculator returns the overall output-speed ratio, the ideal torque ratio, the direction of the final gear, and a transparent result for every stage. It is useful when a single gear pair is not enough to describe a reducer, an overdrive, a clockwork mechanism, or a multi-shaft transmission. Zero-tooth gears are rejected because they cannot define a physical or mathematical gear ratio.
Describe the train as a sequence of gear meshes
Represent the mechanism as ordered stages beginning at the input shaft and ending at the output shaft. For each stage, enter the tooth count of the gear that drives the mesh and the tooth count of the gear that is driven. A simple train may contain several visible gears, but an idler that merely passes motion onward does not change the magnitude of the final ratio: it still contributes one mesh and changes rotation direction. A compound train is different because two gears fixed to the same intermediate shaft allow one stage's driven gear to turn the next stage's driver at the same shaft speed. Enter each actual mesh once and preserve this physical order. Tooth counts must be positive whole numbers. The calculator accepts up to one hundred stages, which is ample for practical transmissions while keeping malformed or accidentally huge requests bounded. It does not ask for module, pitch diameter, pressure angle, or center distance because those properties affect compatibility and loading, not the ideal kinematic ratio derived from tooth counts.
Understand speed ratio and ideal torque ratio
For one external gear mesh, output speed divided by input speed equals driver teeth divided by driven teeth. The calculator multiplies that fraction across all stages to obtain the overall speed ratio. A result of 0.25:1 means the output completes one quarter of a revolution for each input revolution, so an input of 1,000 revolutions per minute would ideally produce 250 revolutions per minute. Under the ideal, lossless assumption, torque changes inversely: driven teeth divided by driver teeth for each stage, multiplied through the train. Therefore the same example has a 4:1 ideal torque ratio, meaning four units of output torque per unit of input torque before losses. The two reported ratios are reciprocal apart from floating-point rounding. This is a ratio calculator, so it does not require an actual speed or torque value. Multiply a known input speed by the overall speed ratio, or multiply known input torque by the overall torque ratio, to estimate the corresponding ideal output quantity.
Interpret direction and real-world limitations
Every external gear mesh reverses rotation. An odd number of entered stages therefore makes the final output rotate opposite to the input, while an even number makes it rotate in the same direction. The direction result assumes external spur-style meshes; internal ring gears, crossed arrangements, worm drives, belts, chains, and planetary sets require different direction rules and should not be represented as ordinary external pairs. The torque result is an ideal mechanical advantage, not a promise of delivered torque. Real teeth experience sliding friction, bearing drag, lubricant losses, elastic deflection, backlash, and sometimes windage. To estimate real output torque, apply measured or specified efficiency separately, typically once per stage or as an overall drivetrain efficiency. Also verify tooth strength, shaft loading, contact stress, lubrication, pitch compatibility, and operating speed before building hardware. This calculator checks that every tooth count is a bounded positive integer and explicitly errors on zero, but it cannot determine whether the selected gears physically mesh, fit within an enclosure, or survive the intended duty cycle.
What you can do with it
Size a compound speed reducer
Combine several modest reductions to check the final speed multiplier and ideal torque gain before choosing shafts and gears.
Audit a gear-train drawing
Enter each mesh from a mechanical drawing and compare the calculated overall ratio and final direction with the design requirement.
Compare transmission layouts
Evaluate alternative tooth-count combinations that reach a target overall ratio while keeping each individual stage practical.
FAQ
What does an overall speed ratio of 0.2 mean?
The output rotates 0.2 times for each input rotation. In ideal terms, output speed is one fifth of input speed and the torque ratio is 5:1.
Why is the torque ratio called ideal?
It assumes power is conserved and ignores friction, bearing drag, tooth deformation, and other losses. Apply drivetrain efficiency separately for a realistic torque estimate.
Do idler gears change mechanical advantage?
A simple idler does not change the magnitude of the overall ratio when the first driver and final driven gear remain the same, but each external mesh changes rotation direction.
Can I enter a gear with zero teeth?
No. A zero-tooth gear is not physically valid and would make one side of the ratio undefined, so the calculator returns an invalid-input error.
Does this calculator support planetary or internal gears?
No. It models ordered external gear meshes. Planetary sets and internal ring gears use different kinematic and direction relationships.
What does an API calculation cost?
Each API request costs $0.002. The browser calculator uses the same deterministic arithmetic.
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/mech/gear-train-advantage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stages":[{"driver_teeth":20,"driven_teeth":60},{"driver_teeth":15,"driven_teeth":45}]}'const res = await fetch("https://api.kit.forhosting.com/mech/gear-train-advantage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stages": [
{
"driver_teeth": 20,
"driven_teeth": 60
},
{
"driver_teeth": 15,
"driven_teeth": 45
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/gear-train-advantage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stages": [
{
"driver_teeth": 20,
"driven_teeth": 60
},
{
"driver_teeth": 15,
"driven_teeth": 45
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/gear-train-advantage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stages":[{"driver_teeth":20,"driven_teeth":60},{"driver_teeth":15,"driven_teeth":45}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stages":[{"driver_teeth":20,"driven_teeth":60},{"driver_teeth":15,"driven_teeth":45}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/gear-train-advantage", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"stages": [
{
"driver_teeth": 20,
"driven_teeth": 60
},
{
"driver_teeth": 15,
"driven_teeth": 45
}
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.gear_train_advantage",
"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. |