How to size an off-grid solar system: panels, battery and inverter
Add up each appliance's daily watt-hours and divide by inverter efficiency. Divide that by worst-month peak sun hours times a loss factor (0.780 in our example), plus a 10% margin, to get array watts. Battery capacity is daily energy times days of autonomy divided by depth of discharge. Then check cold-weather string Voc and inverter surge.
Sizing an off-grid system is a chain of six steps, each feeding the next. This guide follows the same order and the same default factors as our Off-Grid Solar + Battery Sizing Calculator. It ends with a full worked example for a small 48 V cabin.
Step 1: list your loads and add up daily watt-hours
For every appliance, note quantity, watts, hours per day, and whether it runs at the busiest moment. Energy per day is quantity × watts × hours; add them up for watt-hours (Wh) per day.
Keep AC and DC loads apart. The battery supplies each AC watt-hour divided by the inverter efficiency (0.93 in our example), and each DC watt-hour divided by the DC wiring efficiency (0.97).
The load list also gives two numbers for the inverter:
- Peak running AC load: the sum of the loads that can run together.
- Start surge: motors (fridge, freezer, pump, compressor) draw several times their running power when they start. Our calculator gives each load a surge multiplier and adds the largest single extra surge to the peak. Check the nameplate or manual for the multiplier.

Step 2: find peak sun hours for the worst month
Peak sun hours (PSH) is the daily solar energy on the panel in kWh/m², expressed as hours at 1,000 W/m². Free tools give it for almost any location: PVGIS from the European Commission's Joint Research Centre, NASA POWER, and PVWatts with the National Solar Radiation Database (NSRDB) from the US National Laboratory of the Rockies.
With no backup, design for the worst month you need to run in, at the tilt you will actually mount the panels. Every other month then has a surplus.
Step 3: size the PV array with a loss margin
Our calculator multiplies five losses into one derate: PV temperature loss (10 %), soiling (3 %), DC wiring and mismatch (3 %), MPPT efficiency (0.97) and battery charge efficiency (0.95 for LiFePO4). Then:
Array Wp = daily energy from battery ÷ (peak sun hours × derate) × (1 + design margin)
The 10 % default margin covers load growth and module ageing. Divide by the module's rated power and round up for the minimum module count.
Step 4: check string voltage against cold-temperature Voc
Check three limits from the charge controller (or hybrid inverter) datasheet:
- Maximum input voltage. Voc rises as temperature falls. Cold Voc = Voc × (1 + coefficient ÷ 100 × (Tmin − 25)), with the coefficient as a negative %/°C. Modules in series × cold Voc must not exceed the limit. The IAEI article in the sources works through the same correction under NEC 690.7.
- MPPT window. String Vmp on the hottest day must stay above the MPPT minimum, and on the coldest day below the maximum. Our calculator uses the Pmax coefficient for Vmp if no Vmp coefficient is listed.
- Current per tracker. Strings per MPPT × Isc × 1.25 must not exceed the tracker's current limit.
The calculator takes the longest string the limits allow, works out the strings needed, then evens out the string length.
Step 5: size the battery bank with autonomy and depth of discharge
Nominal capacity (Wh) = daily energy from battery × days of autonomy ÷ depth of discharge
Autonomy is how many days the bank carries the load with no sun. For depth of discharge (DoD) our calculator suggests 0.8 to 0.9 for LiFePO4 and 0.5 for lead-acid. Divide by system voltage for amp-hours, then set units in series (system voltage ÷ unit voltage) and strings in parallel (Ah needed ÷ unit Ah, rounded up).
Step 6: pick the charge controller and the inverter
- Controller current = installed Wp ÷ battery voltage × 1.25, up to the next standard size (skip it if a hybrid inverter's MPPT charges the battery).
- Inverter continuous rating = peak running AC load × 1.25, up to the next standard size.
- Surge check: continuous rating × the datasheet surge multiple must cover the peak plus the largest motor start.
Worked example: a 48 V off-grid cabin
The example that ships with our calculator: a cabin on a 48 V LiFePO4 bank, with 4.5 peak sun hours in the design month, 2 days of autonomy, a lowest site temperature of 5 °C and a hottest cell temperature of 70 °C. Every number below is printed by scripts/examples/how-to-size-an-off-grid-solar-system.py.
Load list
| Load | Type | Qty | W each | h/day | Wh/day | Peak W | Extra surge W |
|---|---|---|---|---|---|---|---|
| LED lights | AC | 8 | 9 | 5 | 360 | 72 | 0 |
| Refrigerator | AC | 1 | 120 | 8 | 960 | 120 | 360 |
| Chest freezer | AC | 1 | 90 | 9 | 810 | 90 | 270 |
| TV | AC | 1 | 80 | 4 | 320 | 80 | 0 |
| Laptops | AC | 2 | 60 | 5 | 600 | 120 | 0 |
| Water pump | AC | 1 | 750 | 1 | 750 | 750 | 1,500 |
| Ceiling fans | AC | 3 | 55 | 8 | 1,320 | 165 | 0 |
| Microwave | AC | 1 | 1100 | 0.25 | 275 | 0 | 0 |
| Washing machine | AC | 1 | 500 | 1 | 500 | 0 | 0 |
| Wi-Fi router | DC | 1 | 12 | 24 | 288 | 0 | 0 |
| Phone chargers | AC | 3 | 10 | 2 | 60 | 30 | 0 |
The microwave and washing machine are not on at the busiest moment, so they add energy but not peak load.
Energy and array
| Quantity | Calculation | Result |
|---|---|---|
| AC energy per day | sum of AC loads | 5,955 Wh |
| DC energy per day | router | 288 Wh |
| Energy from battery | 5,955 / 0.93 + 288 / 0.97 | 6,700 Wh/day |
| PV derate | (1 − 0.10) × (1 − 0.03) × (1 − 0.03) × 0.97 × 0.95 | 0.780 |
| Required array | 6,700 × 1.10 / (4.5 × 0.780) | 2,099 Wp |
| Minimum 450 W modules | 2,099 / 450, rounded up | 5 |
String check (controller: 250 V max input, MPPT 70–240 V, 35 A)
| Quantity | Result |
|---|---|
| Module Voc at 5 °C (49.5 V, −0.27 %/°C) | 52.17 V |
| Module Vmp at 70 °C (41.5 V, −0.35 %/°C) | 34.96 V |
| Module Vmp at 5 °C | 44.41 V |
| Max modules per string | 4 |
| Min modules per string | 3 |
| Layout used | 2 strings × 3 modules = 6 modules |
| Installed array | 2,700 Wp |
| String Voc when cold | 156.5 V (limit 250 V): OK |
| String Vmp, hot to cold | 104.9 to 133.2 V: inside 70–240 V |
| Current per MPPT | 2 × 11.6 × 1.25 = 29.0 A (limit 35 A): OK |
Five modules in one string would reach 260.9 V on a cold morning, above the 250 V limit. That is why the calculator splits six modules into two strings of three, even though five modules would meet the energy target.

Battery, controller and inverter
| Quantity | Calculation | Result |
|---|---|---|
| Usable energy | 6,700 × 2 days | 13,400 Wh |
| Nominal capacity | 13,400 / 0.8 DoD | 16,750 Wh |
| At 48 V | 16,750 / 48 | 349 Ah |
| Battery units (12.8 V, 200 Ah) | 4 in series × 2 in parallel | 8 units, 20.48 kWh |
| Autonomy delivered | 20.48 kWh × 0.8 / 6,700 Wh | 2.4 days |
| Controller current | 2,700 / 48 × 1.25 = 70.3 A | 80 A controller |
| Inverter continuous | 1,427 × 1.25 = 1,783.75 W | 2,000 W inverter |
| Surge check | 2,000 × 2 = 4,000 W vs 2,927 W | OK |
| Inverter DC current at full load | 2,000 / (48 × 0.93) | 44.8 A |
The water pump sets the surge: 750 W running with a 3× start multiplier adds 1,500 W on top of the 1,427 W peak running load.
Limits of this method
This is a monthly-average energy balance, not an hour-by-hour simulation: no shading, battery ageing or cloudy spells longer than your autonomy. Use it to size a system, compare quotes and catch an over-voltage string, and follow your local rules (for example IEC 62548 or NEC Article 690).
Disclaimer: Estimation aid. Check against your local code and equipment datasheets.
Questions
- Should I use the annual average or the worst month for peak sun hours?
For an off-grid system, use the worst month you need to cover. An annual average leaves the battery short in the darkest months. A hybrid system with a generator or grid can design for a better month.
- What depth of discharge should I use for LiFePO4 and lead-acid?
Our calculator suggests 0.8 to 0.9 for LiFePO4 and 0.5 for lead-acid, with round-trip efficiency around 0.95 and 0.80 to 0.85. Use your battery's datasheet figures when you have them.
- Why does the coldest temperature matter for the panels?
Module open-circuit voltage rises as it gets colder. If the string's cold Voc passes the controller's maximum input voltage, the controller can be damaged, so cold Voc sets the string length.
- Is this method good enough for a bankable design?
No. It is a monthly-average energy balance for first sizing and checking quotes. For a bankable design use simulation software such as PVsyst or SAM and have a qualified installer or engineer review it.
Sources
- PVGIS (European Commission JRC)
- PVGIS online tool
- PVWatts Calculator (National Laboratory of the Rockies)
- National Solar Radiation Database (NSRDB)
- NASA POWER
- PV Systems Math: Sample Calculations (IAEI Magazine)
Updated 2026-10-26 · by tobulab