engineering · hvac-energy · energy-storage

Battery Sizing Calculator

Sizes an off-grid or backup battery bank from the load, autonomy, depth of discharge, round-trip efficiency and temperature derate. Use it to specify a battery bank.

Last updated
Scenario Explorer

Calculator overview

Inputs and outputs

This summary comes from the calculator's published input and output contract.

Inputs

One Row Per Appliance Type Leave Unused Rows At Zero
About this input

One row per appliance type: its power draw, quantity, hours of use per day and whether it runs at the same time as others. The tool sums these into a daily energy demand and a peak simultaneous load, and leaves rows set to zero out of the total.

Default 10 rows
ColumnRange or allowed values
Appliance Not declared
Power, W At least 0
Hours/day 0 to 24
Quantity At least 0
Minimum Battery Temperature
About this input

The coldest temperature the bank is expected to reach in service, in degrees Celsius. Capacity falls in the cold, so a lower value increases the bank size. Set it to 25 to remove the temperature derate.

Unit deg C Default 10 Range -20 to 40
Inverter Efficiency
About this input

The efficiency of the inverter that converts battery power to alternating current, as a fraction between 0 and 1. A lower value raises the energy the bank must store.

Unit fraction Default 0.92 Range 0 to 1
Peak Sun Hours
About this input

The daily equivalent hours of full-sun irradiance at the site, in hours per day, used to size the recommended array. It is illustrative; take the real figure for your location from an irradiance source.

Unit h/day Default 4.5 Range 0 to 24
System Voltage
About this input

The nominal direct-current bus voltage of the battery bank, such as 12, 24 or 48 volts. It sets how many modules go in series in each string.

Default 48 V Allowed 12 V, 24 V, 48 V
Round Trip Efficiency Override
About this input

Optional override for the battery round-trip efficiency, as a fraction between 0 and 1. Leave it blank to use the chemistry value. Setting it to 1 together with a 25 degree temperature collapses the model to the common formula most free calculators use.

Unit fraction Default Not set Range 0 to 1
Pv Array Derate
About this input

The combined derate applied to the photovoltaic array for soiling, wiring, temperature and other real-world losses, as a fraction between 0 and 1. Values around 0.75 to 0.8 are common; confirm against your own loss estimate.

Unit fraction Default 0.8 Range 0 to 1
Charge Path Efficiency
About this input

The efficiency of the charge path from array to stored energy, as a fraction between 0 and 1, covering charge controller and battery charging losses.

Unit fraction Default 0.97 Range 0 to 1
Battery Module
About this input

Selects the battery module used to build the bank, either a preset module or the custom module defined by the voltage and capacity above.

Default 12 V 100 Ah Allowed 12 V 100 Ah, 12 V 200 Ah, 24 V 100 Ah, 48 V 100 Ah, 2 V 1000 Ah cell, Custom (type the values below)
Battery Chemistry
About this input

Selects the battery chemistry, such as flooded lead-acid, sealed lead-acid or lithium iron phosphate. It sets the recommended depth of discharge and the cycle life used.

Default Lithium iron phosphate (LiFePO4) Allowed Lead-acid, flooded, Lead-acid, AGM, Lead-acid, gel, Lithium iron phosphate (LiFePO4), Lithium NMC
Custom Module Capacity Conditional
About this input

The rated capacity of a single battery module, in amp-hours, used when you select a custom module rather than a preset.

Unit Ah Default 100 Range At least 0
Depth Of Discharge Override
About this input

Optional override for the usable depth of discharge, as a fraction between 0 and 1. Leave it blank to use the value the selected chemistry implies; enter a figure only when your battery datasheet states one.

Unit fraction Default Not set Range 0 to 1
Days Of Autonomy
About this input

The number of days the bank must supply the load with no charging, in days, sizing the reserve for cloudy weather or an outage.

Unit days Default 2 Range At least 1
Custom Module Voltage Conditional
About this input

The nominal voltage of a single battery module, in volts, used when you select a custom module rather than a preset.

Unit V Default 12 Range At least 0

Outputs

Recommended Pv Array
About this output

The photovoltaic array size suggested to recharge the daily draw, in watts. It is sized from the energy the bank must RECEIVE, so the round-trip efficiency divides alongside the charge path efficiency, peak sun hours and array derate, and the figure therefore varies with the battery chemistry. An estimate; size the array against site data.

Unit W
Required Bank Capacity
About this output

The nominal capacity the bank must have at the system voltage, in amp-hours, before rounding up to whole modules.

Unit Ah
Peak Simultaneous Load
About this output

The largest instantaneous load, in watts, from the appliances that can run at the same time. It sizes the inverter and the discharge current.

Unit W
Model Status
About this output

The overall check on your entries, shown above the results. It reads OK when the inputs are usable, NOT VALID with a reason when an entry makes the model meaningless, or CHECK with a reason when a result is valid but worth a second look. Read it before you trust the numbers below.

No unit declared
Parallel Strings
About this output

The number of parallel strings needed to reach the required capacity.

Unit count
Total Batteries Required
About this output

The total number of modules in the bank: modules in series times the number of parallel strings.

Unit count
Usable Depth Of Discharge
About this output

The fraction of nominal capacity that may be used each cycle, between 0 and 1, from the selected chemistry. Discharging deeper than this shortens life.

Unit fraction
Temperature Derate Factor
About this output

The factor applied to rated capacity for the minimum temperature, as a multiplier. It is below 1 in the cold and equals 1 at 25 degrees Celsius, where this model reduces to the common formula.

Unit factor
Required Nominal Bank Capacity
About this output

The nominal stored energy the bank must have, in kilowatt-hours, before rounding up to whole modules.

Unit kWh
Roundtrip Efficiency
About this output

The fraction of energy returned after a charge and discharge, between 0 and 1. This sizing includes it, so results run larger than a common formula that ignores it; set the override to 1 to match that formula.

Unit fraction
Minimum Charge Controller Current
About this output

The minimum charge controller current rating, in amperes, to handle the recommended array at the system voltage.

Unit A
Daily Ac Energy Demand
About this output

The total alternating-current energy the loads consume in a day, in watt-hours per day, before inverter and battery losses.

Unit Wh/day
Daily Energy Drawn From The Bank
About this output

The direct-current energy the bank must supply each day, in watt-hours per day, after the inverter efficiency is applied to the alternating-current demand.

Unit Wh/day
Batteries In Series
About this output

The number of modules connected in series in each string to reach the system voltage.

Unit count
Autonomy Actually Achieved
About this output

The number of days the built bank can carry the load with no charging, in days. It equals or exceeds the days of autonomy requested because modules are rounded up.

Unit days
Average Daily Depth Of Discharge
About this output

The share of the bank cycled on an average day, as a fraction between 0 and 1. A lower value across the bank generally means longer life.

Unit fraction
Installed Nominal Energy
About this output

The nominal energy of the built bank, in kilowatt-hours: installed capacity times system voltage.

Unit kWh
Installed Usable Energy
About this output

The energy the built bank can deliver, in kilowatt-hours, after the usable depth of discharge is applied.

Unit kWh
Installed Bank Capacity
About this output

The actual capacity of the built bank, in amp-hours, at the system voltage after rounding up to whole modules.

Unit Ah
Energy Required Over The Autonomy Period
About this output

The total energy the bank must hold to carry the load through the autonomy period, in watt-hours, after depth of discharge, round-trip and temperature effects.

Unit Wh
Indicative Bank Life At One Cycle Per Day
About this output

A rough service life at one cycle per day, in years, from the chemistry's cycle life at the average depth of discharge. It is indicative only and ignores calendar ageing and temperature history.

Unit years

What it is

The Battery Sizing Calculator specifies an off-grid or backup battery bank from the loads it has to carry. You list the appliances with their power, run hours and quantity, choose the system voltage, chemistry and module, set the days of autonomy you want, and it returns the bank capacity required, how many modules that means in series and parallel, what the resulting bank actually delivers, and the PV array and charge controller to keep it charged.

Energy is in watt-hours, capacity in amp-hours, power in watts and temperature in degrees Celsius.

Use it to specify a bank and to see how the losses and derates stack up. The chemistry defaults it applies for depth of discharge and round-trip efficiency are typical values, and both can be overridden.

Methodology

Purpose and model boundary

This model turns an appliance load audit into an indicative off-grid battery-bank arrangement, usable and nominal energy requirements, a PV-array recommendation, and a minimum charge-controller current. It accounts for inverter loss, chemistry-specific depth of discharge and round-trip efficiency, temperature derating, and the integer series/parallel arrangement of the selected module.

It does not design cables, busbars, over-current protection, disconnects, battery management, ventilation, grounding, enclosure heating, generator support, or a code-compliant installation. Manufacturer data and a qualified electrical designer remain necessary.

Inputs and units

Each active load row supplies appliance power in watts, daily run hours, and quantity. Bank assumptions include chemistry, module voltage and amp-hour capacity, system voltage, days of autonomy, inverter efficiency, and minimum battery temperature in deg C. A custom module exposes its voltage and capacity fields. Blank depth-of-discharge or round-trip-efficiency overrides use the selected chemistry's lookup value; a numeric override replaces it.

Charging assumptions are peak sun hours in h/day, charge-path efficiency, and PV-array derate. Efficiencies and depth of discharge are fractions from zero to one. The system-voltage list contains 12, 24, and 48 V; module and chemistry lists contain workbook-owned illustrative choices.

Governing relationships

For appliance row i:

daily Wh_i = power_i x hours_i x quantity_i

and the daily AC demand is the sum of those rows. Peak simultaneous load sums power x quantity for rows whose run hours are greater than zero.

Daily energy drawn from the bank is

E_bank = daily AC Wh / inverter efficiency.

For N autonomy days, usable energy required is E_bank x N. The required nominal energy is

E_nominal = E_bank x N / (DoD x temperature factor x round-trip efficiency)

and required bank amp-hours are E_nominal / system voltage.

The physical arrangement always rounds up:

  • modules in series = CEILING(system voltage / module voltage);
  • parallel strings = CEILING(required Ah / module Ah);
  • total modules = series x parallel.

Installed bank capacity is parallel strings x module Ah. Installed nominal energy is installed Ah x series x module voltage; installed usable energy multiplies nominal energy by depth of discharge, temperature factor, and round-trip efficiency. Autonomy achieved divides installed usable energy by daily bank energy.

The charging recommendation is

PV watts = E_bank / (charge-path efficiency x peak sun hours x PV derate)

and minimum controller current is PV watts / system voltage x 1.25. Indicative life at one full cycle per day is the chemistry lookup cycle count divided by 365.

Calculation sequence

  1. Resolve chemistry, module, and system-voltage lookups; apply custom module values and any nonblank performance overrides.
  2. Select a temperature capacity factor from the chemistry-specific step table.
  3. Calculate each row's daily energy and coincident watts, then total the load audit.
  4. Apply inverter, autonomy, depth-of-discharge, temperature, and round-trip factors to obtain nominal kWh and Ah.
  5. Round series and parallel counts upward and recalculate installed capacity, usable energy, achieved autonomy, and daily depth of discharge from the installed bank.
  6. Calculate PV-array and charge-controller recommendations when all charging inputs are positive.
  7. Evaluate Model_Status using the exact precedence below.

Outputs and interpretation

Primary outputs are required bank capacity in Ah, required nominal energy in kWh, and recommended PV-array watts. Series count, parallel strings, and total batteries describe the selected module arrangement. Installed values reflect integer rounding and can exceed the mathematical minimum. Achieved autonomy and average daily depth of discharge help reveal that oversizing.

The chemistry's depth of discharge, efficiency, cycle life, and temperature factors are estimation values, not a warranty or manufacturer curve.

Validation and status logic

The workbook returns the first matching status.

Condition Returned status
Daily AC energy demand is less than or equal to zero NOT VALID: enter at least one load in the grid
Selected or custom module voltage is less than or equal to zero NOT VALID: module voltage must be greater than zero
Selected or custom module capacity is less than or equal to zero NOT VALID: module capacity must be greater than zero
Usable depth of discharge is less than or equal to zero NOT VALID: depth of discharge must be greater than zero
Round-trip efficiency is less than or equal to zero NOT VALID: round-trip efficiency must be greater than zero
Inverter efficiency is less than or equal to zero NOT VALID: inverter efficiency must be greater than zero
System voltage is below module voltage NOT VALID: system voltage is below the module voltage
Temperature derate factor is below 0.75 CHECK: cold derate below 0.75; a heated enclosure may be cheaper than extra batteries
Achieved autonomy exceeds requested autonomy by more than 50% CHECK: rounding up has oversized the bank by more than 50%; a different module size may fit better
Peak sun hours, charge-path efficiency, or PV derate is less than or equal to zero CHECK: a charging input is zero; the PV array recommendation is not computed
None of the preceding conditions applies OK

Assumptions and limitations

The workbook assumes each listed load's wattage, run hours, and quantity describe a representative day. It does not model hourly coincidence, surge duration, inverter clipping, starting-current compatibility, battery C-rate, Peukert effects, self-discharge, calendar ageing, partial cycling, charge-temperature restrictions, or reserve for abnormal weather.

Chemistry and temperature tables are explicitly illustrative. Temperature lookup is a step match rather than interpolation; temperatures below the first row clamp to its factor. The bank may not land exactly on nominal system voltage when a module voltage does not divide it; the model rounds series count upward and separately warns only when system voltage is below one module. A real series string and equipment voltage window must be checked against manufacturer specifications.

The PV result is an energy-balance estimate. It does not model irradiance shape, shading, array orientation, controller topology, battery charge acceptance, seasonal solar resource, or generator operation.

Restrictions and non-computing states

At least one load row must produce positive daily energy. Module voltage, module capacity, usable depth of discharge, round-trip efficiency, and inverter efficiency must be positive for a valid bank result. Days of autonomy has a published minimum of one. Fraction inputs are limited to zero through one. If a charging denominator is zero, the bank still computes but PV sizing is intentionally withheld with a CHECK.

Errors and warnings

NOT VALID means the workbook cannot form a meaningful bank arrangement. CHECK preserves computable results while flagging severe cold derating, coarse module rounding, or missing charging assumptions. An entry with the wrong type or a value outside the published limits is rejected before calculation. A calculation-service or network failure is a service error, not the workbook's Model_Status.

References

The workbook derives its relations rather than reproducing any table, chart or figure from a standard or publication. The energy chain, the series and parallel arithmetic and the derates are computed directly, with chemistry defaults from an editable table.

Chemistry defaults for depth of discharge and round-trip efficiency are typical published values and carry no authority; manufacturer figures for the specific cells should be used where available. Electrical installation is governed by the wiring code adopted where the work is built, none of which is addressed here.

Additional source notes migrated from Methodology

The workbook's References sheet records the appliance energy sum, the common autonomy/DoD/inverter sizing relationship, the added round-trip and temperature derates, integer series/parallel sizing, and the 1.25 controller-current margin. The Data sheet identifies chemistry and temperature figures as illustrative and instructs users to substitute manufacturer data where available.

Frequently asked questions

Why is the required bank so much larger than my daily energy use?
Because four separate derates multiply. In the shipped example 5,430 Wh of daily AC demand becomes 5,902 Wh drawn from the bank after the inverter, 11,804 Wh over two days of autonomy, and then dividing by depth of discharge, round-trip efficiency and the temperature derate takes the required capacity 23 percent higher again. None of the individual factors looks dramatic; the product of them is.
Why does the chemistry change the answer so much?
Mainly through the usable depth of discharge, which is the largest single derate. Lead-acid is conventionally limited to around half its nameplate capacity to get acceptable cycle life, while lithium iron phosphate tolerates 80 to 90 percent. That difference alone can nearly double the nameplate capacity a lead-acid bank needs for the same delivered energy, before the round-trip efficiency difference is counted.
I asked for 2 days of autonomy and got 2.64. Why?
Because modules come in whole strings. Four parallel strings of 100 Ah give 400 Ah installed against 302.77 required, and that surplus buys extra autonomy. It is granularity rather than over-specification: dropping to three strings would take the bank below the two-day target. The benefit is real, because the shallower average depth of discharge that results is why the indicative life reads nearly eleven years.
Does this account for batteries delivering less at high discharge rates?
No, and for lead-acid that is a significant omission. Peukert's effect means a battery rated at a twenty-hour discharge rate delivers materially less capacity when drained over four hours, so a lead-acid bank under a heavy load will underperform this calculation. Lithium chemistries are much less affected. If your loads are large relative to the bank and the chemistry is lead-acid, treat the result as optimistic.
Why does the minimum temperature matter rather than the average?
Because the derate has to hold when the autonomy is actually needed, and the cold night is exactly when a battery both delivers less and is most likely to be called on. Sizing to an average temperature leaves the bank short precisely in the conditions it was bought for. Note also that many lithium systems refuse to *charge* below freezing at all, which is a separate constraint this tool does not model.
Is the recommended PV array enough all year?
Only if your peak sun hours figure is the worst month rather than the annual average. The tool applies the single value you enter, and for an off-grid system the design month is normally the poorest one; otherwise the bank runs down through the winter faster than the array can restore it. Seasonal variation is not modelled here, so the choice of that input is doing all the work.
This page is provided by LogicCommons for informational purposes only. Results are analysis outputs computed from the inputs you supply and are not engineering advice, a design, or a substitute for review by a licensed professional under the codes adopted where the work is built. Verify all inputs and results independently.

LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.