# Bicycle gear calculator

- Human page: https://happytails.ai/en/calculators/bicycle-gear-calculator/
- Markdown: https://happytails.ai/en/calculators/bicycle-gear-calculator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/bicycle-gear-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `bicycle-gear-calculator` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Use measured rolling wheel circumference from 100 to 10000 mm. Separate tooth counts with spaces, up to 32 in each list. Each tooth count must be a whole number from 1 to 1000. Cadence accepts 0 to 300 RPM and target speed accepts 0 to 2000 in the selected unit. Gear inches use the equivalent rolling diameter. Results do not check mechanical compatibility or predict the effort needed to reach a speed. Do not use thousands separators.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `chainrings` | Chainring teeth, separated by spaces | text | "34 50" |  |
| `sprockets` | Sprocket teeth, separated by spaces | text | "11 13 15 17 19 21 24 28 32" |  |
| `circumferenceMm` | Rolling wheel circumference (mm) | text | "2100" |  |
| `cadenceRpm` | Pedaling cadence (RPM) | text | "90" |  |
| `targetSpeed` | Target road speed | text | "25" |  |
| `speedUnit` | Speed unit | select | "km/h" | Allowed: km/h, mph |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Use 1 to 32 space-separated tooth counts per list, whole counts from 1 to 1000, circumference from 100 to 10000 mm, cadence from 0 to 300 RPM and target speed from 0 to 2000 in the selected unit. Up to 1024 combinations. Decimal inputs allow up to six places. These are software bounds, not vehicle capability claims. Results use floating-point arithmetic. Processing stays on your device, with a bounded worker and a 10-second timeout. Full JSON and CSV preserve every calculated row and the assumptions. Do not use thousands separators.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "bicycle-gear-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Use 1 to 32 space-separated tooth counts per list, whole counts from 1 to 1000, circumference from 100 to 10000 mm, cadence from 0 to 300 RPM and target speed from 0 to 2000 in the selected unit. Up to 1024 combinations. Decimal inputs allow up to six places. These are software bounds, not vehicle capability claims. Results use floating-point arithmetic. Processing stays on your device, with a bounded worker and a 10-second timeout. Full JSON and CSV preserve every calculated row and the assumptions. Do not use thousands separators.",
  "implementation": {
    "fields": [
      {
        "key": "chainrings",
        "label": "Chainring teeth, separated by spaces",
        "value": "34 50",
        "type": "text",
        "maxLength": 512
      },
      {
        "key": "sprockets",
        "label": "Sprocket teeth, separated by spaces",
        "value": "11 13 15 17 19 21 24 28 32",
        "type": "text",
        "maxLength": 512
      },
      {
        "key": "circumferenceMm",
        "label": "Rolling wheel circumference (mm)",
        "value": "2100",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24
      },
      {
        "key": "cadenceRpm",
        "label": "Pedaling cadence (RPM)",
        "value": "90",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24
      },
      {
        "key": "targetSpeed",
        "label": "Target road speed",
        "value": "25",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24
      },
      {
        "key": "speedUnit",
        "label": "Speed unit",
        "value": "km/h",
        "type": "select",
        "values": [
          "km/h",
          "mph"
        ],
        "labels": {
          "km/h": "Kilometers per hour",
          "mph": "Miles per hour"
        }
      }
    ],
    "input": false,
    "presentation": "metrics",
    "note": "Use measured rolling wheel circumference from 100 to 10000 mm. Separate tooth counts with spaces, up to 32 in each list. Each tooth count must be a whole number from 1 to 1000. Cadence accepts 0 to 300 RPM and target speed accepts 0 to 2000 in the selected unit. Gear inches use the equivalent rolling diameter. Results do not check mechanical compatibility or predict the effort needed to reach a speed. Do not use thousands separators.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Compare bicycle gearing, gear inches, development and cadence across your chainrings and cassette.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Bicycle gear calculator

1. Enter your chainring and sprocket tooth counts, separated by spaces.
2. Enter measured rolling circumference, cadence and a target speed.
3. Compare the paginated gear table. Download all combinations in JSON or CSV.

## Useful next steps

- [Cycling cadence calculator](https://happytails.ai/en/calculators/cycling-cadence-calculator/) ([Markdown](https://happytails.ai/en/calculators/cycling-cadence-calculator.md))

- [Gear ratio speed calculator](https://happytails.ai/en/calculators/gear-ratio-speed-calculator/) ([Markdown](https://happytails.ai/en/calculators/gear-ratio-speed-calculator.md))

## Compare all gearing combinations

Development is rolling wheel circumference multiplied by chainring teeth divided by sprocket teeth. Speed is development multiplied by pedal revolutions per second. Gear inches divide development by pi and convert the equivalent diameter to inches.

### Use rolling circumference

Measure one wheel revolution under the relevant load. Nominal tire markings do not provide an exact rolling circumference. Equal-ratio gear combinations remain distinct in the comparison. Mechanical compatibility and required riding effort are not evaluated.
