{
  "schemaVersion": 1,
  "slug": "gear-ratio-calculator",
  "category": "automotive",
  "kind": "implementation",
  "independentValidation": false,
  "implementationHash": "d252d2e477ce4be72e9de2808b744e81cf889587338ab068ab9feb1c0b37be81",
  "provenance": "Generated from the calculation contract used by the published page. Publication is not external validation.",
  "sourceFiles": [
    "data/calculators/gear-ratio-calculator.json",
    "src/engine.js"
  ],
  "runtimeSource": "/sources/engine.txt",
  "runtimeHash": "5c888d8898afbdee36267bb9977829e1e2ac568f6677c8ee87469c139864645c",
  "scope": "The compute function records implemented equations, constants, lookup tables and custom rules. Inputs record defaults and allowed values; outputs record precision and units. Defaults are examples, not recommendations. General background references are not evidence for this specific algorithm.",
  "publishedFormula": {
    "formula": "R = G x F; wheelRpm = rpm/R; mph = wheelRpm x π x D/12 x 60/5280; kph = mph x 1.609344",
    "vars": [
      [
        "G",
        "transmission gear ratio"
      ],
      [
        "F",
        "final-drive ratio"
      ],
      [
        "R",
        "overall ratio"
      ],
      [
        "rpm",
        "engine speed (rpm)"
      ],
      [
        "D",
        "tire diameter (in)"
      ],
      [
        "mph",
        "vehicle speed (mph)"
      ]
    ],
    "note": "Tire circumference is pi x D/12 feet; mph = wheel rpm x circumference x 60/5280; mph per 1000 rpm = mph / (rpm/1000)."
  },
  "externalEvidence": {
    "reviewedAt": "2026-10-12",
    "sources": [
      {
        "name": "OpenStax — Rotational power and angular velocity",
        "url": "https://openstax.org/books/university-physics-volume-1/pages/10-8-work-and-power-for-rotational-motion"
      }
    ],
    "referenceRole": "definition",
    "implementationHash": "d252d2e477ce4be72e9de2808b744e81cf889587338ab068ab9feb1c0b37be81",
    "basis": "R = G x F; wheelRpm = rpm/R; mph = wheelRpm x π x D/12 x 60/5280; kph = mph x 1.609344",
    "limitations": "The references explain definitions and methods; any extra preset must be checked against the assumptions on this page."
  },
  "contract": {
    "compute": "const overall = gearRatio*finalDrive;\nconst wheel = overall>0 ? engineRpm/overall : 0;\nconst circFt = Math.PI*tireDiameter/12;\nconst ftPerMin = wheel*circFt;\nconst mph = ftPerMin*60/5280;\nreturn {\n  overallRatio: overall,\n  wheelRpm: wheel,\n  speedMph: mph,\n  speedKph: mph*1.609344,\n  mphPer1000rpm: engineRpm>0 ? mph/(engineRpm/1000) : 0,\n};",
    "inputs": [
      {
        "name": "engineRpm",
        "type": "number",
        "default": 3000,
        "min": 100,
        "max": 12000,
        "step": 50,
        "slider": true
      },
      {
        "name": "gearRatio",
        "type": "number",
        "default": 1,
        "min": 0.1,
        "max": 10,
        "step": 0.01,
        "slider": true
      },
      {
        "name": "finalDrive",
        "type": "number",
        "default": 3.73,
        "min": 0.1,
        "max": 10,
        "step": 0.01,
        "slider": true
      },
      {
        "name": "tireDiameter",
        "type": "number",
        "default": 26,
        "min": 5,
        "max": 60,
        "step": 0.1,
        "slider": true
      }
    ],
    "outputs": [
      {
        "name": "overallRatio",
        "precision": 3,
        "unit": ":1"
      },
      {
        "name": "wheelRpm",
        "precision": 1,
        "unit": "rpm"
      },
      {
        "name": "speedMph",
        "precision": 1,
        "unit": "mph"
      },
      {
        "name": "speedKph",
        "precision": 1,
        "unit": "km/h"
      },
      {
        "name": "mphPer1000rpm",
        "precision": 2,
        "unit": "mph"
      }
    ],
    "interpret": null
  }
}
