ForHosting KIT · Engineering & construction

Battery runtime from Ah

Multiply the bank's amp-hours by the share you allow yourself to use, then divide by the load current: 100 Ah at 80 % usable with a 5 A load gives 80 usable Ah and 16 hours. For solar, UPS, RV and marine banks. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Battery capacity in amp-hours
100
Load current a
5
Usable depth-of-discharge fraction
0.8
You get
Usable ah
80
Runtime hours
16
Runtime minutes
960
Runtime days
0.6666666667

Battery runtime from amp-hour capacity answers a practical question: how long will this pack power a known continuous load before it reaches the usable depth of discharge you allow? The classic estimate multiplies nameplate capacity in amp-hours by a usable DoD fraction, then divides by load current in amperes. The result is runtime in hours, with minutes and days derived for planning. Use it for solar storage sizing checks, UPS and backup estimates, RV and marine house banks, educational labs, and any pipeline that needs a repeatable Ah-based runtime figure without spreadsheets or one-off scripts.

How amp-hour runtime is estimated

Nameplate capacity in amp-hours states how much charge the battery can store under the manufacturer’s test conditions, often at a moderate discharge rate and a full depth range. Real systems rarely empty every last amp-hour: lead-acid banks are often limited to about half the nameplate capacity to protect cycle life, while many lithium iron phosphate packs can use eighty percent or more of rated Ah. A usable depth-of-discharge factor captures that policy as a fraction between zero exclusive and one inclusive.

The estimate multiplies capacity by that fraction to get usable amp-hours, then divides by continuous load current in amperes to obtain hours of runtime. For example, a one-hundred amp-hour battery at eighty percent usable DoD with a five-amp load yields eighty usable amp-hours and sixteen hours of runtime. The model assumes a constant current draw and ignores Peukert’s law, temperature derating, inverter efficiency, and voltage sag—those refinements need richer models.

Where teams use battery runtime estimates

Solar and off-grid designers check whether a bank can carry night-time or cloudy-day loads before generation returns, using conservative usable DoD for the chemistry they install. UPS and facility teams estimate how long critical circuits stay up under a measured amp draw after utility loss. RV, marine, and van-life builders size house banks for fridges, lights, and electronics on a known continuous amperage budget.

Educators and training programs generate expected answers for lab worksheets and homework that teach basic electrical energy concepts without requiring laboratory equipment.

Solar and off-grid night runtime

Estimate how many hours a storage bank can supply a known continuous load using nameplate Ah and a chemistry-safe usable DoD.

UPS and backup planning

Convert measured amp draw and battery capacity into hours of backup time for critical circuits after a power outage.

How is battery runtime calculated?

Runtime in hours equals capacity in amp-hours multiplied by usable depth-of-discharge, then divided by load current in amperes. The response also returns minutes, days, and usable amp-hours.

What if load current is zero?

Load current must be greater than zero because runtime is undefined when no current is drawn and division by zero is not allowed; failed tasks are not charged.

Does this include Peukert or inverter losses?

No. This is a constant-current Ah model only. Adjust capacity or load yourself for efficiency, temperature, or rate effects before calling if you need a more conservative field estimate.

What usable depth of discharge should I enter?

It depends on the chemistry. Lead-acid banks are often limited to about half of the nameplate capacity, so 0.5, while many lithium iron phosphate packs use 0.8 or more. Leave the default of 1 to count the full rating.

How do I handle a load that switches on and off?

Average its current over the duty cycle first and enter that average. The estimate assumes a constant draw, so feeding it a peak or a single moment gives an unrepresentative number of hours.

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.

POSThttps://api.kit.forhosting.com/elec/battery-runtime-ah

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.

curl -X POST https://api.kit.forhosting.com/elec/battery-runtime-ah \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"capacity_ah":100,"load_current_a":5}'
{
  "capacity_ah": 100,
  "load_current_a": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.battery_runtime_ah",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How amp-hour runtime is estimated

Still, the Ah over current form remains the standard first-pass sizing check in field manuals, installer worksheets, and student problems, and it is exactly what this endpoint computes without inventing chemistry or electrical dynamics.

Inputs, outputs, and validation rules

Units stay in Ah and A: convert milliamps or milliamp-hours before calling if your meters report mA or mAh. Send two required numbers: capacity_ah for nameplate amp-hours and load_current_a for continuous load in amperes. Both must be finite and strictly greater than zero; zero or negative capacity or current is rejected with invalid_input because division by zero is undefined and a non-positive pack cannot supply energy. Optional usable_dod defaults to one, meaning the full nameplate capacity is treated as usable; when you set it, the value must be greater than zero and at most one—values outside that range fail validation and failed tasks are not charged. The response echoes the resolved inputs, usable_ah as capacity times usable DoD, runtime_hours as usable amp-hours divided by load current, plus runtime_minutes and runtime_days for planning dashboards, and a short formula string suitable for audit logs. Prefer consistent continuous-current assumptions; intermittent loads should be averaged over the duty cycle before you call the endpoint if you want a representative hours figure.

Where teams use battery runtime estimates

Product teams embed the free browser form on sizing pages and call the API from configurators that return runtime alongside quote packages. Because each successful call is a single analytic item priced at $0.002, batch scripts can sweep capacity and load grids—many pack sizes against many loads—without model cost or subscription overhead. Prefer this endpoint when you already know amp-hour capacity and continuous current and only need transparent runtime hours—not full Peukert curves, temperature models, or multi-string state-of-charge simulators, which need richer inputs and different capabilities.

RV, marine, and education tools

Size house banks or grade student problems with a deterministic JSON runtime from capacity, load, and usable DoD.

What is usable_dod?

It is the fraction of nameplate capacity you allow to be discharged, from just above zero up to one. Default is one (full Ah usable). Use 0.5 for many lead-acid policies or 0.8 for typical lithium usable ranges.

How much does each API call cost?

$0.002 per successful request. The browser tool above runs free locally; the API draws from your prepaid KIT balance only when the task succeeds.

Read the full KIT documentation →