ForHosting KIT · Engineering & construction

Solar battery bank sizing calculator

50 Ah a day for 3 days of autonomy at 50 % depth of discharge needs a 300 Ah bank: 150 Ah of usable charge, doubled so no more than half is ever drawn. Plan house banks for cabins, RVs and boats. 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
Daily load ah
50
Autonomy days
3
Depth of discharge
0.5
You get
Energy needed ah
150
Required capacity ah
300

Solar battery bank sizing answers a practical design question: how many amp-hours of storage do you need so a known daily load can run through a chosen number of days without charging, while respecting a chemistry-safe depth-of-discharge limit? The classic field formula multiplies daily consumption in amp-hours by autonomy days, then divides by the usable depth-of-discharge fraction so nameplate capacity is larger than the raw energy budget. Use it for off-grid cabin worksheets, RV and marine house-bank planning, installer quote checks, educational labs, and any pipeline that needs a repeatable Ah bank size without spreadsheets or one-off scripts. It does not model Peukert, temperature derating, or charge-controller losses; those refinements belong after this first-pass capacity figure.

How battery bank amp-hours are sized from load and autonomy

Daily load in amp-hours is the average charge drawn from the bank over twenty-four hours at the system voltage you design for. If you know watt-hours instead, divide daily energy by nominal voltage—for example twelve hundred watt-hours on a twelve-volt bank is one hundred amp-hours per day. Autonomy days capture how long the bank must carry that load when solar or grid charging is unavailable: cloudy stretches, winter shoulder seasons, or intentional no-sun design margins.

Depth of discharge is the fraction of nameplate capacity you allow to be used; lead-acid banks are often limited near fifty percent to protect cycle life, while many lithium iron phosphate packs can use eighty percent or more of rated Ah. The estimate multiplies daily amp-hours by autonomy days to get the energy that must be stored as usable charge, then divides by the DoD fraction so the nameplate bank is large enough that only the allowed portion is discharged.

For example, fifty amp-hours per day with three days of autonomy and a fifty percent DoD yields one hundred fifty amp-hours of usable energy and three hundred amp-hours of required nameplate capacity. The model assumes constant daily energy and ignores inverter efficiency, wire losses, and rate-dependent capacity—apply those factors upstream if you need a more conservative field estimate.

Where teams use solar battery bank sizing

Off-grid and hybrid solar designers size house banks for cabins, telecom sites, and remote pumps so night-time and multi-day cloudy loads stay within the chemistry DoD they specify. RV, marine, and van-life builders convert fridge and lighting budgets into a nameplate Ah figure before shopping parallel strings of deep-cycle or lithium modules. Educators and training programs generate expected answers for lab worksheets that teach energy storage without laboratory equipment.

Facility and backup planners adapt the same arithmetic when a daily critical load and a multi-day outage window replace solar autonomy language. Pair the result with string voltage and series-parallel layout rules in your own tools when you convert amp-hours into module counts.

Off-grid cabin and remote site design

Convert daily Ah load, cloudy-day autonomy, and a chemistry-safe DoD into the nameplate battery bank capacity needed before ordering modules.

RV, marine, and van house banks

Size deep-cycle or lithium house banks from fridge and lighting amp-hour budgets with multi-day autonomy and a chosen discharge limit.

How is required battery bank capacity calculated?

Required amp-hours equal daily load in amp-hours multiplied by autonomy days, then divided by the depth-of-discharge fraction.

What if depth of discharge is zero or greater than one?

Depth of discharge must be greater than 0 and at most 1; zero would divide by zero and values above one imply more usable capacity than nameplate. Failed tasks are not charged.

How do I convert daily watt-hours into amp-hours?

Divide the daily watt-hours by the bank's nominal voltage. For example, 1200 Wh a day on a 12 V bank is 100 Ah a day, which is the figure you enter as the daily load.

What depth of discharge should I use for lead-acid or lithium?

Lead-acid banks are often limited to about 50 % to protect cycle life, while many lithium iron phosphate packs can use 80 % or more of their rated capacity. Enter it as a fraction, such as 0.5 or 0.8.

How many days of autonomy should I plan for?

Typical off-grid values run from 1 to 5 days, depending on how long cloudy spells or winter can leave the bank without charging. Each extra day enlarges the bank in the same proportion.

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/solar-battery-bank

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/solar-battery-bank \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"daily_load_ah":50,"autonomy_days":3,"depth_of_discharge":0.5}'
{
  "daily_load_ah": 50,
  "autonomy_days": 3,
  "depth_of_discharge": 0.5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.solar_battery_bank",
  "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 battery bank amp-hours are sized from load and autonomy

Still, the load-times-autonomy over DoD form remains the standard first-pass bank size in solar design manuals, installer worksheets, and student problems, and it is exactly what this endpoint computes without inventing chemistry or electrical dynamics beyond that transparent formula.

Inputs, outputs, and validation rules

Failed validation is not charged. Units stay in amp-hours and days: convert milliamps, watt-hours, or voltage-specific loads before calling if your meters report other units. Prefer consistent continuous-day averages; highly seasonal loads should use a representative or worst-case daily Ah figure so the autonomy product remains meaningful for the season you size against. Send three required finite numbers: daily_load_ah for average daily consumption in amp-hours, autonomy_days for days without charging, and depth_of_discharge as a usable fraction greater than zero and at most one. All three must be finite and strictly positive where required; zero or negative load or autonomy is rejected with invalid_input because a non-positive budget cannot size a bank, and DoD outside the open-closed interval (0, 1] fails validation because division by zero or a fraction above full capacity is meaningless. The response echoes the resolved inputs, energy_needed_ah as daily load times autonomy days, required_capacity_ah as that energy divided by depth of discharge, and a short formula string suitable for audit logs and design notes. Round display values for customers if you like, but pin the twelve-decimal API numbers in automated tests so goldens stay stable across runtimes.

Where teams use solar battery bank sizing

Installer quote tools embed the free browser form on landing pages that rank for solar battery bank sizing calculator and call the API from configurators that return required capacity alongside panel counts and inverter options. Because each successful call is a single analytic item priced at $0.002, batch scripts can sweep load, autonomy, and DoD grids—many daily budgets against many cloudy-day targets—without model cost or subscription overhead. Prefer this endpoint when you already know daily amp-hours, autonomy days, and a DoD policy and only need transparent nameplate capacity—not full Peukert curves, temperature models, multi-string state-of-charge simulators, or charge-controller loss trees, which need richer inputs and different capabilities.

Installer quotes and education tools

Embed deterministic JSON bank sizing in quote configurators or grade student worksheets that teach solar storage math.

What is depth_of_discharge?

It is the maximum fraction of nameplate capacity you allow to be discharged, greater than zero and at most one. Use 0.5 for many lead-acid policies or 0.8 for typical lithium usable ranges.

How do I convert daily watt-hours into daily_load_ah?

Divide daily watt-hours by the nominal bank voltage. For example, 1200 Wh on a 12 V system is 100 Ah per day. Always use the voltage of the battery string you are sizing.

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 →