How the estimate is built.
Production, bill changes, and installer reviews are separate. A missing price does not hide production. A missing tariff does not become a national rate. A missing installer does not turn the estimate off.
Your inputs
The guided calculator collects a ZIP code, utility, monthly bill or annual kilowatt-hours, address, property details, shade, ownership, equipment, and payment preference. Stories, roof material, home type, and property category are recorded and are not multiplied into the result. If you enter annual kilowatt-hours, that figure is used. Otherwise annual use is approximated as (monthly bill − monthly fixed charge) × 12 ÷ import rate. With no configured tariff, the import rate is the EIA state average residential revenue for July 2026, the fixed charge is $0 because that average already blends customer charges, and exported energy is valued at $0.
Location
A five-digit ZIP is only a format check. Coordinates come from the U.S. Census Bureau 2024 Gazetteer ZCTA internal points, retrieved October 5, 2026. The result says the location is approximate and based on the ZIP code. A missing ZCTA is reported as not found. It is not replaced with a nearby city, and it is not an address or roof check.
Production modeling
When a server-side PVWatts V8 key is configured, the app requests annual AC energy for a 1 kW reference roof from https://developer.nlr.gov/api/pvwatts/v8.json. That reference is 20 degrees of tilt, azimuth 180 degrees, a fixed roof array, a standard module, and 14.08 percent losses, including a generic shading allowance. Your shade answer is not applied a second time to that result. If the key is missing or the provider fails, production uses a documented state yield in kWh per installed kW and is labeled as a regional estimate. Shade is then applied once: little shade is the reference, some shade is 90 percent, heavy shade is 75 percent, and “not sure” uses 90 percent. System size targets 90 percent of annual use, then becomes an integer count of 400 W panels, up to 20 kW. A roof-area limit is applied only when a usable area is supplied. A satellite image is not a measurement.
Utility-cost modeling
The engine can calculate a flat import rate, a monthly fixed charge, and monthly retail netting. Surplus generation becomes cash only when the tariff says so. Time-of-use, tiers, demand charges, and annual credit banking are refused rather than averaged. No reviewed utility tariff is configured yet. You can enter a flat-rate scenario on the result. That scenario is labeled as yours, not as a confirmed tariff. Fixed charges stay on the bill.
System costs and payment structures
No ZIP price book is configured. Installed cost uses a planning range of $2.80 to $4.20 per watt, plus $12,000 when a battery is selected. That range is not a local quote. Gross cost, incentives, and net cost stay separate. Cash records the net cost as the initial outflow. A loan uses only the down payment and the debt payments, and it is not also charged the full installation cost. Choosing a lease or PPA uses a planning payment: the monthly cost of the midpoint installed price at 7.5% for 25 years, with nothing due at signing and no annual increase. That rate and term are the EnergySage Marketplace median quoted solar loan for the second half of 2025. Maintenance is treated as included in the payment. The purchase price is not also charged, and a third-party tax credit is not subtracted. If a monthly payment, escalation, and term are supplied, those terms are used instead. Payback is the first year cumulative cash flow reaches zero. If it does not, the result says there is no payback within the 25-year period. Negative savings stay negative. The 0–100 suitability figure is a heuristic from shade, roof condition, ownership, production relative to use, and payback.
Incentives
No incentives are included. The homeowner Residential Clean Energy Credit is not applied to property placed in service after December 31, 2025. A third-party owner’s incentive is not treated as money the homeowner receives. “No incentives included in this estimate” means they are not in the math. It is not a claim that none exist.
What the result is not
It is not a roof inspection, a panel layout, permission to interconnect, or a guarantee. The labeled example at /demo is a synthetic worksheet and is not used when your estimate cannot be completed.
Data sources and update dates
ZIP centroids: Census 2024 Gazetteer, retrieved 2026-10-05. Production: PVWatts V8 and NSRDB, when the server key is set. Utility rates: not configured. Price book: not configured. Incentive rule reviewed 2026-10-05 against the IRS residential clean energy credit page.