happytails.ai

E-bike range calculator

Open E-bike range calculator on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.

Tool capabilities

{
  "id": "e-bike-range-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Battery 50 to 5,000 Wh, entered directly or as 12 to 120 V times 1 to 100 Ah; usable share 10 to 100%; starting charge 1 to 100%; reserve 0 to 99% and below the starting charge; energy use 1 to 100 Wh/km, including from a measured ride of up to 1,000 km; conditions -50 to 200%; trips up to 10,000 km. Calculated on your device; download a JSON report and a CSV of results.",
  "implementation": {
    "fields": [
      {
        "key": "capacityMode",
        "label": "Battery rating given as",
        "value": "Watt-hours",
        "type": "select",
        "values": [
          "Watt-hours",
          "Volts and amp-hours"
        ]
      },
      {
        "key": "capacityWh",
        "label": "Battery capacity (Wh)",
        "value": 500,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "capacityMode": [
            "Watt-hours"
          ]
        }
      },
      {
        "key": "voltage",
        "label": "Nominal voltage (V)",
        "value": 36,
        "type": "number",
        "min": 12,
        "max": 120,
        "step": "any",
        "showWhen": {
          "capacityMode": [
            "Volts and amp-hours"
          ]
        }
      },
      {
        "key": "ampHours",
        "label": "Capacity (Ah)",
        "value": 14,
        "type": "number",
        "min": 1,
        "max": 100,
        "step": "any",
        "showWhen": {
          "capacityMode": [
            "Volts and amp-hours"
          ]
        }
      },
      {
        "key": "usableShare",
        "label": "Usable share of rated capacity (%)",
        "value": 90,
        "type": "number",
        "min": 10,
        "max": 100,
        "step": "any",
        "help": "Covers battery age and the cut-off of the battery management system. Enter 100 to use the full rating. 90 is an editable example."
      },
      {
        "key": "start",
        "label": "Starting charge (%)",
        "value": 100,
        "type": "number",
        "min": 1,
        "max": 100,
        "step": "any"
      },
      {
        "key": "reserve",
        "label": "Arrival reserve (%)",
        "value": 10,
        "type": "number",
        "min": 0,
        "max": 99,
        "step": "any",
        "help": "Charge you want left when you arrive."
      },
      {
        "key": "distanceUnit",
        "label": "Distance unit",
        "value": "km",
        "type": "select",
        "values": [
          "km",
          "mi"
        ]
      },
      {
        "key": "consumptionMode",
        "label": "Energy use from",
        "value": "Energy use per distance",
        "type": "select",
        "values": [
          "Energy use per distance",
          "From a measured ride"
        ]
      },
      {
        "key": "consumptionUnit",
        "label": "Energy use unit",
        "value": "Wh/km",
        "type": "select",
        "values": [
          "Wh/km",
          "Wh/mi",
          "kWh/100 km"
        ],
        "showWhen": {
          "consumptionMode": [
            "Energy use per distance"
          ]
        }
      },
      {
        "key": "consumption",
        "label": "Energy use",
        "value": 10,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "From the display or your own records. 10 Wh/km is an editable example.",
        "showWhen": {
          "consumptionMode": [
            "Energy use per distance"
          ]
        }
      },
      {
        "key": "rideDistance",
        "label": "Distance of the measured ride",
        "value": 30,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "consumptionMode": [
            "From a measured ride"
          ]
        }
      },
      {
        "key": "rideUsed",
        "label": "Battery used on that ride (%)",
        "value": 40,
        "type": "number",
        "min": 0,
        "max": 100,
        "step": "any",
        "help": "Drop in the battery display from the start to the end of the measured ride.",
        "showWhen": {
          "consumptionMode": [
            "From a measured ride"
          ]
        }
      },
      {
        "key": "conditions",
        "label": "Extra consumption for conditions (%)",
        "value": 0,
        "type": "number",
        "min": -50,
        "max": 200,
        "step": "any",
        "help": "For example more hills, headwind, cold, a heavier load or a higher assist level than usual. Enter 0 for the same conditions."
      },
      {
        "key": "trip",
        "label": "Planned trip distance (optional)",
        "value": "",
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Leave empty to skip the trip check."
      }
    ],
    "registrationFamily": "vehicle-and-cycling",
    "input": false,
    "live": true,
    "presentation": "metrics",
    "note": "Calculated on your device for batteries from 50 to 5,000 Wh and energy use from 1 to 100 Wh/km. The range is an estimate from your inputs, not a guarantee.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
      "helpParts": [
        "Change the input or settings to update your result.",
        "Results update as you type.",
        "Up to 1,000,000 characters."
      ],
      "action": null
    },
    "mode": "automatic",
    "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

Estimate e-bike range from the battery rating and your energy use, or from a ride you have already measured. Add a planned ride to see the charge left at the end.

How to use E-bike range calculator
  1. Enter the battery rating in watt-hours, or as volts and amp-hours, and the usable share.
  2. Enter the starting charge and the reserve you want to keep.
  3. Enter your energy use per distance, or the distance and battery percentage of a ride you measured.
  4. Add extra consumption for hills, wind or assist level and a planned ride, then review and download the report.

Useful next steps

Battery energy

Battery energy in watt-hours is the nominal voltage times the amp-hour rating, because energy is charge times voltage (OpenStax College Physics 2e, section 19.1, July 2022, checked 16 October 2026). A 48 V, 17.5 Ah pack holds 840 Wh. The usable share covers battery age and the cut-off of the battery management system, and the battery display shows shares of that usable energy.

Energy use from a measured ride

If your display used 35% of an 840 Wh battery over 25 miles, the ride used 294 Wh, or about 7.31 Wh/km (11.76 Wh/mi). Measured rides already include your weight, tyres, terrain and assist level, so they are usually closer to your real use than a catalogue figure. Add extra consumption when the next ride is hillier, colder or into the wind.

Range and limits

Range is the energy between your starting charge and your reserve divided by energy use. With that ride, 10% extra consumption and 80% down to 20%, the estimate is about 39 miles. Batteries from 50 to 5,000 Wh and energy use from 1 to 100 Wh/km are accepted. Results are estimates, not a promise that a ride can be completed. Unit conversions use NIST SP 811 factors.