How this calculator works, constant by constant
This calculator sizes a solar system to cover a home’s annual electricity use, prices it at the state’s installed cost per watt, subtracts only incentives that are actually open, and divides the result by first-year savings to get a payback in years. Then it runs 25 years of bills with and without solar to see whether the whole thing is worth doing.
Below is every constant, formula and threshold that produces those numbers, plus the source for each input. It is here so the output can be challenged. A calculator you cannot check is a sales tool.
Every input is a state average, so every output is modelled rather than quoted. The full dataset is published at /data, including a JSON download.
The constants
| Constant | Value | Why it holds that value |
|---|---|---|
| System derate | 0.8 | DC nameplate to AC delivered. NREL's PVWatts default is 0.86 for a clean, ideally oriented array. 0.80 is the honest number once you include real roof azimuth and tilt, soiling, wiring losses and inverter clipping on a typical house. |
| Partial-shade derate | 0.85 | Applied on top of the system derate when a roof has partial shade. Optimizers help; they do not make shade free. 'Not sure' about shade is treated as partial, because assuming the better case would over-promise. |
| Panel degradation | 0.5% / yr | The standard linear slope on a 25-year production warranty. Year 25 output is about 88% of year one. |
| Fixed monthly charge | $15 | The customer connection and meter charge that does not go away when you install solar. Mid-range across the major investor-owned utilities. This is why a $0 electric bill is a lie. |
| Export credit fraction | 0.70 | Kilowatt-hours you export are credited at 70% of retail, not 100%. Most states have moved off one-for-one net metering, so assuming a perfect roll-over would flatter the result. |
| Model horizon | 25 years | The standard panel production-warranty term. Nothing beyond it is modelled. |
| Panel wattage | 400 W | Used only to turn a system size in kW into a panel count on the cost pages. A 450 W module gets you the same kW with fewer panels. |
| System size bounds | 3 kW to 14 kW | Below 3 kW nobody will sell you an install. Above about 14 kW you run out of usable roof plane on a single-family house and most utilities push you onto a different tariff. |
| Federal tax credit | $0 | The IRC Sec. 25D residential clean energy credit ended for property placed in service after December 31, 2025. The model is date-aware: it returns zero for anything installed now, and the rate is never hardcoded anywhere else. |
Where the 0.80 derate comes from
Derate is the gap between what a panel is rated at and what actually reaches your meter. NREL’s PVWatts ships a default of 0.86, which assumes a clean array at a good tilt and azimuth with modest wiring and inverter losses.
Real houses are not that. Roof planes face the direction the builder faced them, panels get dusty and hot, wiring runs are long, and inverters clip on the brightest days. Dropping to 0.80 absorbs that. It is the difference between a modelled 8 kW system producing about 12,500 kWh a year in a five-sun-hour state and about 13,400 — roughly a year of payback either way, which is exactly why the assumption is stated rather than buried.
If your installer quotes production well above what this model gives, ask which derate they used and whether it is in the contract as a guarantee or a projection. It is almost always a projection.
Sizing formula
Annual production per kilowatt of installed capacity:
kWh per kW per year = sunHours × 365 × derate
system kW = annual kWh used ÷ kWh per kW per year
clamped to 3 kW … 14 kW, rounded to 0.1 kW
panels = system watts ÷ 400 WThe system is sized to offset roughly 100% of annual usage, not to fill the roof. Oversizing beyond your own consumption is how a quote gets bigger without getting better, because the surplus is sold back below retail.
Production is recomputed from the rounded size, so the size, the panel count and the savings on any given page are internally consistent rather than three separate roundings.
Annual usage comes from an uploaded bill where there is one — a stated trailing twelve months, otherwise a printed twelve-month usage graph, otherwise this month annualised, which is the weakest of the three because one month is a season. With no bill, usage is backed out of the bill band you picked, net of the fixed charge, at the state average rate.
Cost and payback formula
gross cost = system watts × costPerWatt
net cost = gross cost − federal credit − state incentives
(federal credit is $0 for anything placed in service now)
year 1 bill = max(
(usage − production) × rate
− surplus × rate × 0.70
+ $15 × 12,
$15 × 12
)
saving/mo = current bill − year 1 bill, per month
payback yrs = net cost ÷ (saving/mo × 12)Payback is simple and undiscounted. It does not credit the rate escalation that makes later years better, it does not discount future dollars, and it does not include maintenance or an inverter replacement around year 12. Those pull in opposite directions and we would rather report the plain version than a number with four adjustments nobody can audit.
The $15 a month floor matters more than it looks. Even an array that wildly overproduces cannot take your bill below the connection charge, so the model refuses to report a negative bill. Anyone promising you no electric bill is promising something the tariff does not allow.
The 25-year model
for year y in 0 … 24: rate_y = rate × (1 + escalation) ^ y production_y = year 1 production × (1 − 0.005) ^ y no solar_y = usage × rate_y + $15 × 12 with solar_y = bill formula above, at rate_y and production_y lifetime savings = Σ no solar − Σ with solar − net cost
Four things move over the horizon and they do not all move your way. Rates escalate at the state’s own historical pace, which helps. Panels degrade half a percent a year, which hurts. The fixed connection charge is paid in every one of the 25 years, solar or not. And exported kilowatt-hours are credited at 70% of retail, not at retail, which is the single biggest reason modelled paybacks here run longer than the ones on a sales sheet.
Usage is held flat across the horizon. Adding an EV or a heat pump would improve the case; getting a smaller house would not.
Lifetime savings are net of what you paid for the system. A positive number means the system beat doing nothing over 25 years, after its own cost.
Honesty about precision
A bill band is a guess about a range, so reporting a band-derived payback as “8.3 years” is false precision. Results are published as ranges, and the range widens with the weaker input: roughly ±12% on net cost and ±15% on payback from a parsed bill, and ±22% and ±35% from a bill band alone. Being unsure about shade adds another 8 points to both.
Upload a bill and the range narrows, because usage and rate stop being estimates. It never collapses to a point, because cost per watt still varies by installer more than by anything else.
When the answer is no
Four conditions stop the calculator outright rather than producing a number. They are hard rules, not scores.
- Renter
- You cannot authorise a roof modification you do not own, and you could not have claimed the federal credit even when it existed. The calculator stops rather than routing you anywhere.
- Bill under $100 a month
- There is not enough spend to pay off a system in a sane timeframe. Cutting a small bill by 80% still leaves a payback measured in decades.
- Heavy shade
- The one physical condition optimizers and microinverters cannot rescue. Trim, or do not buy.
- Roof over 20 years old
- The roof has to come off before panels go on, and putting the panels on first means paying to remove and reset them. Re-roof first, then re-run the numbers.
Past those, the verdict thresholds are also flat numbers you can argue with. A result is only called good when there is no disqualifier, the pessimistic end of the payback range still lands inside 12 years, the system saves at least $50 a month, and 25-year savings are clearly positive. It is called no when the optimistic end of the payback range runs past 15 years, or the system saves nothing in year one. Everything else is a maybe, including anything that only looks good because we guessed your bill from a band.
Sources, in full
- Residential electricity rate (rateCents)
- U.S. Energy Information Administration, Electric Power Monthly Table 5.6.A, average residential retail price by state (2024–2025 rolling averages), rounded.
- Peak sun hours (sunHours)
- NREL National Solar Radiation Database / PVWatts — daily average peak sun hours for a south-facing fixed array at a representative site in each state.
- Installed cost per watt (costPerWatt)
- Modelled gross installed residential cost per watt DC before any incentive, calibrated to NREL's residential benchmark plus observed regional labour and permitting spread (LBNL, Tracking the Sun). Range across the country is $2.40 to $3.60 per watt.
- Rate escalation (escalation)
- Long-run annual retail rate escalation, from each state's own EIA price history. Nationally around 2.5% a year; the coastal and transmission-constrained markets run hotter.
- State incentives (incentive)
- DSIRE, dsireusa.org. Only programs that actually exist are listed. A null incentive means the state has no meaningful statewide residential program — it does not mean no utility or municipal program exists. Nothing is ever invented here.
- Net metering rules (netMetering)
- State public utility commission rules as of the review date, stated honestly, including the states that have replaced retail net metering with a net-billing or avoided-cost export rate.
These are modelled averages, not quotes. Every field drifts: rates move quarterly, incentive budgets run out mid-year, and net metering rules are litigated constantly. The state inputs are reviewed on a rolling basis and each state page carries its own review date. DSIRE is re-checked before any incentive value is trusted.
Found something wrong? Say so. A number we cannot defend should not be on the site, and corrections are cheaper than reputation.