Solar Panel System Sizing Calculator
Size a rooftop solar PV system from your real electricity usage, local peak sun hours, system losses, and your target offset — and get the number of panels you actually need.
Last updated: May 2026
Compare with similar
About this calculator
Sizing a solar array is not a single division — it chains four physical factors. First, your average daily consumption is your monthly usage divided by 30.4 (the average days per month). Second, you scale that by the share of usage you want to cover (the offset target); 100% means net-zero on an annual basis under net metering, while many owners size to 80–90% to avoid over-building. Third, you divide by the productive sun: the peak sun hours figure is the number of hours per day that deliver the equivalent of full 1,000 W/m² irradiance for your location and tilt, and it ranges from roughly 3.5 in the cloudy north to 6+ in the desert southwest. Fourth, real systems never deliver their nameplate rating, so you divide by (1 − losses): a typical 14–22% derate captures inverter conversion, DC and AC wiring resistance, module soiling, mismatch, and the temperature coefficient that bleeds output on hot roofs. The result of that chain is the required DC array size in kilowatts; multiplying by 1,000 and dividing by the per-panel wattage converts it to a whole number of panels, rounded up so you never undersize. Every input changes the answer: lower sun hours or higher losses raise the panel count, while higher-wattage panels lower it.
How to use
Worked example. You use 900 kWh per month, your area averages 4.5 peak sun hours, you want to offset 100% of usage, you assume 18% system losses, and you are pricing 400 W panels. Step 1 — daily usage: 900 ÷ 30.4 = 29.6 kWh/day. Step 2 — apply the 100% offset target: still 29.6 kWh/day. Step 3 — divide by productive sun after losses: 4.5 × (1 − 0.18) = 4.5 × 0.82 = 3.69 effective sun hours, so 29.6 ÷ 3.69 = 8.02 kW of DC array. Step 4 — convert to panels: 8.02 kW × 1,000 = 8,023 W ÷ 400 W = 20.1, rounded up to 21 panels. If you switched to 450 W panels the count drops to 18; if your sun hours fell to 4.0, it would rise to 24. That sensitivity is exactly why a usage-based sizing calculation beats a rule-of-thumb watts-per-square-foot guess.
Frequently asked questions
How many solar panels do I need to power my house?
It depends on four things, not one: how many kilowatt-hours you use, your local peak sun hours, your system's losses, and the wattage of the panels you choose. Enter your average monthly kWh from a utility bill, your region's peak sun hours (about 4–4.5 for much of the U.S.), an 18% loss factor, and your panel wattage. The calculator converts usage to a required array size in kilowatts and then divides by panel wattage. For a typical 900 kWh/month home on 400 W panels, that's around 21 panels — but a high-usage all-electric home can need 30+, while an efficient home may need 12–15.
What are peak sun hours and why do they matter for solar sizing?
Peak sun hours are not daylight hours. One peak sun hour equals one hour of sunlight at 1,000 watts per square meter — full reference irradiance. A location that gets 4.5 peak sun hours might have 10+ hours of daylight, but only the equivalent of 4.5 full-strength hours of energy after accounting for the sun's angle, atmosphere, and seasonality. Because the calculator divides your daily need by peak sun hours, a sunnier location needs fewer panels for the same usage. Using daylight hours instead would massively undersize your system.
Should I size solar for 100% offset or less?
Sizing for 100% offset targets net-zero electricity over a year, which makes sense where net metering credits exports at full retail value. But there are reasons to size below 100%: utilities may cap system size, export credits are often worth less than retail, and the last few panels have the longest payback because they generate surplus you may not be paid full price for. Many owners size to 80–90% of usage to capture most of the savings while keeping payback short. Adjust the offset target field to compare scenarios.