Calculations9 min read

How to Size a Small Solar Battery Bank Without Overspending

A sizing method for small off-grid battery banks: how days of autonomy drive cost, why an oversized lead-acid bank can shorten its own life, and how to match array output to charge acceptance.

Bar chart of usable energy from a nominal 1200 watt-hour battery by chemistry: 600 watt-hours for lead-acid at 50 percent depth of discharge, 960 for LiFePO4 at 80 percent, 1200 at 100 percent.

Most oversized battery banks are not the result of bad math. They are the result of no math — a builder picks a battery that “seems like enough,” or doubles up “to be safe,” without ever writing down what a day of use actually costs in watt-hours. The formula for getting this right is short. The judgment calls around it — how many days of autonomy, which chemistry, how to wire multiple batteries together — are where the real decisions live, and where oversizing quietly does damage instead of just costing money.

This page covers small off-grid battery banks: sheds, cabins, RVs, and similar systems sized in the tens to low hundreds of amp-hours. Large stationary banks, and anything feeding a permitted structure, belong in the professional-installation category this site generally steers around.

The sizing formula

The core relationship is:

Bank Wh = daily load Wh × days of autonomy / usable DoD fraction

Everything else on this page is about choosing the right values to put into that formula, and about what happens after you’ve bought the battery it points to.

Days of autonomy is the dominant cost driver

Of the three inputs, days of autonomy has the most direct effect on cost, because it is a straight multiplier. Suppose a cabin’s daily load comes out to 900 Wh, and you’re using LiFePO4 at 100% DoD on a 12 V bank:

Days of autonomy Bank Wh Bank Ah (12 V)
1 900 Wh 75 Ah
2 1800 Wh 150 Ah
3 2700 Wh 225 Ah

Using large-format LiFePO4 pricing of roughly $250 per usable kWh (see our chemistry comparison page for the sourced range), that is roughly $225 for one day of autonomy, $450 for two, and $675 for three. There’s no discount for buying more — the relationship is linear, so the decision to plan for one cloudy day versus a full week of them is the single biggest lever on the final invoice, well before chemistry or brand enter the conversation.

Most small systems do not need a week. A weekend cabin with a generator backup might reasonably plan one day. An unattended, security-critical remote site might justify three. Write down the actual failure mode you’re protecting against before choosing the number — “the battery might get a little low” and “the cameras go dark for a week” call for very different autonomy budgets.

Chemistry changes the multiplier

The DoD fraction in the formula does the same job days-of-autonomy does, in the opposite direction: it decides how much hardware you buy for the same usable energy. Holding the 900 Wh/day, 2-day example constant:

Chemistry Usable DoD Bank Wh needed Bank Ah (12 V)
LiFePO4 (Battle Born, 100%) 100% 1800 Wh 150 Ah
LiFePO4 (cycled at 80% for longevity) 80% 2250 Wh 188 Ah
Flooded/AGM lead-acid 50% 3600 Wh 300 Ah

A 50% DoD lead-acid bank needs exactly double the nameplate amp-hours of a 100% DoD LiFePO4 bank delivering the same usable energy — and, per the weight figures on our chemistry comparison page, several times the mass. This is why “just buy a bigger lead-acid bank” is rarely the efficient fix for insufficient autonomy; the DoD ceiling means every added day of reserve costs twice as much lead-acid hardware as it would LiFePO4 hardware.

Why oversizing a lead-acid bank can shorten its life

This is the counterintuitive part: for flooded and AGM lead-acid specifically, a bank that is too big relative to its charging source can age faster than a correctly sized one, not slower.

A charge controller pushes roughly whatever current the array can produce at a given moment — that current does not scale up just because the bank behind it is larger. A 400 W array might deliver something like 25-30 A into a 12 V bank during bulk charging. That same current takes proportionally longer to push a bigger bank through a full bulk-to-absorption-to-float cycle, because the array’s contribution per day hasn’t changed even though the battery’s total capacity has.

If a bank’s daily energy deficit is only just replaced by the array — common when someone oversizes the battery for “safety margin” without a matching increase in panel wattage — the state of charge may hover in a partial range for weeks at a time without ever completing the absorption and float stages that bring a lead-acid battery back to a true 100%. A flooded or AGM battery denied that regular full charge sulfates: lead sulfate crystals harden on the plates, capacity loss becomes permanent, and — because a chronically undercharged battery also sits at a lower specific gravity — its electrolyte freezes at a much higher temperature than a properly charged one. (Our temperature limits reference page has the specific-gravity-to-freezing-point figures.) LiFePO4 does not have this failure mode in the same way — it has no absorption/float requirement to reach “full” and tolerates resting at partial states of charge far better — which is one more reason a mismatched array-to-bank ratio is specifically a lead-acid problem.

The fix is not a smaller bank in isolation. It’s sizing the array to be able to fully recharge the bank’s typical daily deficit within your available sun hours, which is exactly the charge-acceptance question below.

Matching the array to the bank: charge acceptance

Charge acceptance is the maximum rate, usually expressed as a C-rate, at which a battery will usefully absorb charge current. It caps how fast a bank can be refilled regardless of array size — an oversized array pointed at an undersized charge-acceptance ceiling wastes the surplus.

Chemistry Charge acceptance 300 Ah bank 150 Ah bank
Flooded lead-acid ~C/10 to C/8 30-38 A 15-19 A
LiFePO4 0.5C continuous, 1C max 150-300 A 75-150 A

Worked example

Take the 900 Wh/day cabin load from earlier, sized for 2 days of autonomy, compared across chemistries during a short winter sun window of 2 hours:

Flooded lead-acid, 300 Ah bank. At C/10 (30 A) and a 14.4 V absorption target, the acceptance ceiling is about 30 A × 14.4 V ≈ 432 W. Over a 2-hour window, the maximum energy the battery can physically absorb is:

432 W × 2 h = 864 Wh

That’s short of the 900 Wh daily deficit — and no amount of extra array capacity changes it, because 432 W is a battery limit, not an array limit. A bigger array here just means more wasted midday production.

LiFePO4, 150 Ah bank. At 0.5C continuous (75 A) and a 12.8 V nominal reference, the ceiling is about 75 A × 12.8 V ≈ 960 W. Over the same 2-hour window:

960 W × 2 h = 1920 Wh

Comfortably more than the 900 Wh deficit — for LiFePO4 in a system this size, the array’s output is almost always the real bottleneck, not the battery’s willingness to accept it.

If your use case involves fast recharge from a generator or vehicle alternator rather than solar, charge acceptance matters even more, since those sources can usually supply far more current than a small array ever will.

Series versus parallel: configuring the bank

Two batteries can be combined two ways, and they do different jobs.

Series wiring (positive of one to negative of the next) adds voltage: two 12 V, 100 Ah batteries in series make a 24 V, 100 Ah pair — same amp-hours, twice the voltage, and correspondingly half the current for a given load power, which is often the more useful direction to go for wire sizing.

Parallel wiring (positive to positive, negative to negative) adds capacity: two 12 V, 100 Ah batteries in parallel make a 12 V, 200 Ah pair — same voltage, twice the amp-hours.

Series is generally the safer default when you need more of both energy and headroom, because it doesn’t introduce a current-sharing problem. Parallel strings do: if the cable resistance from each battery to the common bus isn’t identical, the strings won’t share load and charge current equally, and the string with the lower-resistance path will be cycled harder and age faster than its neighbors — which then changes its resistance further and compounds the imbalance over time. This is the same physical concern behind the PV-string back-feed problem covered on our overcurrent protection page: more parallel paths means more ways for current to flow somewhere other than where you designed it to.

Keep parallel strings to two, or at most a small number, using identical batteries — same brand, model, and age — with equal-length cable runs to the bus. If you find yourself wanting five parallel batteries, a single larger-capacity battery (or a purpose-built pack with internal active balancing between paralleled modules, common on server-rack-format LiFePO4) is usually the better engineered answer.

Worst month versus average

The daily-load figure in the sizing formula should come from your worst realistic case, not your annual average — a bank sized for an average sunny day will run a deficit on every day that’s worse than average, and by definition, half of all days are.

This site does not publish a city-by-city sun-hours table, because the primary NREL data behind a trustworthy one wasn’t something we could verify to our own standard. Run PVWatts yourself with your actual tilt, azimuth, and location — it will give you a month-by-month production estimate, and the lowest month is the number to size autonomy against if the system needs to be reliable year-round. If the system is seasonal or supplemental, and an occasional shortfall is tolerable, sizing to the average is a reasonable and cheaper choice — just make it a deliberate one.

Putting it together

A cabin needs 900 Wh/day and 2 days of autonomy, sized against a worst-month estimate of 3 peak sun hours from the builder’s own PVWatts run:

  1. LiFePO4 bank: 900 × 2 / 1.0 = 1800 Wh → about 150 Ah at 12.8 V nominal.
  2. Array, using a 0.75 system-derate factor: 900 Wh ÷ 3 h ÷ 0.75 ≈ 400 W nameplate.
  3. Charge-acceptance check: a 150 Ah LiFePO4 bank’s ~960 W ceiling comfortably clears a 400 W array’s peak output — the array remains the bottleneck, which is the position you want to be in.
  4. Compare the lead-acid version: the same load and autonomy at 50% DoD needs a 300 Ah bank, and that bank’s ~432 W charge-acceptance ceiling is closer to the array’s realistic peak output — worth rechecking against your specific controller and array size before committing.

Before you buy

Bank sizing is where a small system either becomes reliable or becomes an ongoing disappointment, and the fix for a wrong guess is expensive because batteries are the priciest single component in most builds. Write the load table first, choose autonomy deliberately against a stated failure mode, and check charge acceptance against your actual array — not just against the daily energy total — before ordering. If the resulting bank is large enough that you’re considering more than two or three parallel strings, or a voltage above 48 V, that’s the point to bring in someone with commercial battery-bank experience rather than scale up a DIY design past what this page covers.

Sources and further reading

Figures on this page are traceable to the published documents below. Where a standard is referenced, check the edition your local jurisdiction has adopted before relying on it.

  1. BB10012 100Ah 12V LiFePO4 deep cycle battery — specificationsBattle Born BatteriesSource for 100% usable DoD for LiFePO4.
  2. 12.8 & 25.6 Volt Lithium Iron Phosphate Batteries Smart — datasheetVictron EnergySource for 0.5C continuous / 1C max charge acceptance and the 80% DoD cycle-life figure used for the LiFePO4 longevity comparison.
  3. Motive T-105 data sheetTrojan Battery CompanySource for the ~C/10-C/8 flooded charge-acceptance range.
  4. Does depth of discharge affect cycle life?Discover BatterySource for the conventional 50% DoD limit on lead-acid.