How we check facts and build our estimates

Plug-in solar rules are new and changing fast, and secondary sources already disagree on dates and caps. This page explains which sources we trust, how we handle conflicts, and exactly how our numbers are calculated.

State law facts

  1. Primary sources first. We read the statute, the enacted or enrolled bill, or the regulator's own page. News and trackers are used to find laws and to fill gaps, and are labeled as reporting.
  2. Every fact has a link. Each state page lists its sources with their type: statute, bill text, government, reporting or tracker.
  3. Conflicts are shown, not hidden. When sources disagree, for example on Maryland's effective date, the page says what we could not confirm. Laws with staged implementation, such as Colorado's, distinguish the dates for different provisions.
  4. Dates. All state pages show the date the facts were last checked. A full re-check runs at least monthly and whenever a governor signs or vetoes a bill.
  5. No legal advice. We summarize laws for general understanding. Your utility, your lease and a licensed electrician have the final word for your home.

The calculator model

We model production for 8,760 typical-year hours, then compare each hour's AC output with your constant household load. All calculator results, state tables and reference charts use this same engine.

  1. Weather and location. One representative city per state and Washington DC, with coordinates from the 2025 Census Gazetteer. We use JRC PVGIS 5.3 ERA5 typical-year weather, selected from 2005–2023, with the reported irradiance time offset and calculated terrain horizon. This is a representative city, not a statewide average or your address.
  2. Sunlight. pvlib 0.16.1 solar position and Perez transposition, albedo 0.2, at 90°, 60°, 35°, 10° and eight compass directions. The orientation chart also includes 20°. East and west are modeled separately; older shared links using paired directions retain an explicitly labeled average.
  3. DC output. SAPM open-rack glass/polymer cell temperature using air temperature and 10 m wind, then PVWatts DC with a −0.35%/°C power coefficient and 14% fixed system losses. Temperature is modeled separately from those fixed losses.
  4. Shade. The choices apply uniform additional DC reductions of 0%, 10%, 25%, 50%. These are assumptions, not a measurement of tree, railing or building shadows. Their timing and bypass-diode effects are not modeled.
  5. Inverter. The PVWatts inverter efficiency curve, nominal 96%, with DC input limited to rated input and AC output capped at your inverter rating. Zero panels or zero inverter capacity produce zero energy.

AC kWh = Σ hourly AC watts ÷ 1,000
Used kWh = Σ min(hourly AC watts, constant household watts) ÷ 1,000

Unused generation is exported at zero credit. No battery is modeled. Savings = used kWh × electricity price. The default rate is the EIA residential average for January–August 2026 (preliminary). An average bill rate may include charges that solar does not avoid; enter your marginal energy rate, excluding fixed charges, for a better estimate. Time-of-use tariffs and export penalties are not modeled.

Simple payback = total upfront cost ÷ first-year savings; it does not include financing, discounting, maintenance or future price changes. Include mounting and electrical work in the cost field. Zero cost displays no upfront cost; zero savings with a positive cost has no payback.

10-year net savings reruns production, clipping and self-use for each year with 0.5% annual DC degradation, starting at full output in year one. It holds weather, load and rate constant, sums ten years of savings, then subtracts upfront cost once. It is undiscounted and excludes replacements, incentives and tax credits.

Numerical checks and practical limits

For fast local calculations, hourly DC values are grouped into 1 W/kWp bins (below 1 W/kWp, positive bins span at most 0.1%), using each bin's actual mean and hour count, with zero-output hours kept separate. This preserves total DC energy; clipping and self-use introduce a small compression difference. Regression tests compare the browser engine against uncompressed hourly NumPy arrays and pvlib's inverter implementation across all 51 locations, all eight directions, all four calculator mounts, shade and clipping cases. This checks implementation agreement, not forecast accuracy.

These are planning estimates. Local weather, obstruction, snow, mounting temperature, module characteristics and variable household use can change the result materially. Hourly averages also miss shorter fluctuations. We do not claim a validated error range for a particular home. For an investment decision, model your address in NREL PVWatts and compare hourly output with measured household use and your actual tariff.

Downloads: all state profiles and the method. Reproducible scripts and tests are in the repository under research/ and tests/. Calculations use local files; unavailable or invalid data pause the result instead of substituting another state.

Content and AI

We use software, including AI tools, to help gather sources, draft and check calculations. Every published fact is checked against its cited source, and every number comes from the data and code described here. We do not publish product reviews of equipment we have not tested, and we do not invent experiences.

About the illustrations

Our architectural scenes, apartment cutaway and equipment still lifes are AI-generated concept illustrations. They are not photographs of actual installations, tested products or certified systems. They explain the setting; the source-linked text, legal data and calculation model provide the evidence. Installation and electrical protection depend on the actual equipment listing and local requirements.

Corrections

Found an error? Email [email protected]. We fix confirmed errors promptly and log substantive changes on the corrections page.