Methodology & Data Sources
How EnergyTools calculates every number — the government data sources we use, the derate factors and defaults behind each calculator, and why a no-lead-capture model makes these estimates unbiased.
Our Independence Pledge
EnergyTools is not a solar installer, and we are not a lead-broker. We take no paid placements, earn no installer kickbacks, and write no content that exists to route you into a sales funnel. That structural choice changes what our numbers are for. A site that monetizes the moment you click "calculate" has an incentive to inflate savings and shorten payback periods. We have no such incentive — our calculators exist so you can pressure-test the very quotes those other sites and installers generate.
Every calculator on this site runs entirely client-side, in your browser. The inputs you type — your ZIP code, your bill, your roof — are used to compute a result on your own device; we do not store them, sell them, or share them with third parties. Where we do offer an optional connection to an installer, it is exactly that: optional, never a precondition of seeing a result.
The site is funded by optional installer referrals that you are never obliged to use. That is the same revenue model as a lead-generation marketplace like EnergySage or SolarReviews — but without the lead-capture bias baked into their calculators, and without requiring your phone number to see a single number. This independence is the single biggest reason our estimates are worth trusting.
Data Source Whitelist
We draw exclusively from authoritative, public, and verifiable sources. No anonymous "industry data," no scraped quote databases, no fabricated benchmarks. Every source below is a real government dataset or officially published specification, and each links to its origin so you can check our work.
| Source | What it provides |
|---|---|
| NREL PVWatts V8 pvwatts.nrel.gov Used by src/lib/nrel.ts | Hourly-to-annual solar production (kWh) from latitude/longitude and system specs (size, tilt, azimuth, module type, losses). Powers our production estimates. |
| NREL Utility Rates V3 developer.nrel.gov Used by src/lib/nrel.ts | Residential, commercial, and industrial electricity rates by location. Drives the localized savings math in our calculators. |
| U.S. Energy Information Administration (EIA) eia.gov Referenced in rate-trend analysis | Table 5.6.A residential electricity price data, retail rate trends, and national/state energy consumption baselines used to sanity-check NREL rate returns. |
| DSIRE dsireusa.org Incentive data refreshes periodically | The comprehensive state/local incentive database — rebates, tax credits, property/sales tax exemptions — behind our Incentive Finder. |
| EPA FuelEconomy.gov fueleconomy.gov API requires Accept: application/json header | Vehicle efficiency (kWh per 100 miles) for the Solar + EV Calculator. Lets us convert solar surplus into miles of driving. |
| LBNL Tracking the Sun emp.lbl.gov/tracking-sun Public dataset | Residential PV pricing and system-characteristic trends used to validate our installed cost-per-watt bands. |
| Google Geocoding / Solar API developers.google.com Used by src/lib/geocode.ts | ZIP code to latitude/longitude resolution for NREL calls, plus rooftop irradiance context where available. |
| IRS / U.S. Treasury irs.gov Policy is current as of publication | Foreign Entity of Concern (FEOC) rules, Section 48E guidance, and OBBBA tax-credit rules that drive our eligibility and deadline tools. |
| SEIA / Wood Mackenzie seia.org Referenced in blog analyses | Solar Market Insight — installation volumes, market-segment data, and module-pricing context used in our market-analysis content. |
Each source is public and independently verifiable. Where a tool calls an API live (NREL, EPA, Google), the call happens in your browser using our shared API key — your inputs never touch our servers.
System-Wide Assumptions & Derate Factors
A solar panel's nameplate rating is a DC number measured under laboratory conditions. The energy that actually reaches your meter is lower, because real-world systems lose power at every stage. The conversion from ideal DC nameplate to real AC output is captured by a derate factor (sometimes called the performance ratio). Understanding it is the single most important thing you can do to read a solar estimate critically.
Our PVWatts-integrated tools call the NREL PVWatts V8 API with a default
system-losses parameter of 14% (the value set in our
NREL client at src/lib/nrel.ts).
That 14% loss translates to an effective DC-to-AC derate of roughly
0.86 — i.e., a system's first-year AC output is about
86% of its ideal DC potential before location and orientation effects
are applied. PVWatts then folds in your specific tilt, azimuth, and
local solar resource on top of that baseline loss.
The 14% aggregate loss is itself a composite of several real sub-losses, each of which matters on its own:
- Inverter efficiency — DC-to-AC conversion is never perfect; modern inverters run roughly 96–98% efficient at rated load.
- Soiling — dust, pollen, snow, and bird debris on the panels. A typical clean array loses 2–5% to soiling between rains.
- Wiring & mismatch losses — resistive loss in the home run and combiner, plus small mismatches between panels in a string.
- Temperature losses — panels lose efficiency as they heat up; a hot roof in summer produces less per peak-watt than a cool spring day.
- Availability — downtime for inverter faults, maintenance, or grid outages when the system cannot export.
Some of our standalone projection tools apply a deliberately more conservative performance factor (for example, a 0.77–0.80 system-loss factor in certain degradation and lease-versus-buy projections) to avoid overstating long-term output. When a tool uses a non-PVWatts factor, we state it on that page. The NREL-integrated production tools use the 14% / 0.86 baseline described above.
Default system assumptions unless you override them: array type fixed roof mount, module type standard, tilt 20°, azimuth 180° (true south), and the 14% PVWatts loss parameter. A typical residential reference system is modeled at 7–8 kW.
Methodology by Calculator
Below is the formula, the inputs, the real constants, and the honest limitation for each major calculator. The constants are pulled directly from our code and data files — they are not invented benchmarks.
Solar ROI Calculator
Formula: Net cost = gross system cost − incentives. Annual savings = production × utility rate, escalated each year. Payback = net cost ÷ first-year annual savings. Lifetime value sums 25 years of (production × escalated rate) with panel degradation applied.
Assumptions & constants: Production comes from PVWatts V8 (default 14% system losses). Rate escalation is a user-adjustable input; we illustrate with a ~3%/yr default consistent with recent residential rate trends. Panel degradation defaults to 0.5%/yr (standard tier).
Limitation: Does not model tree shading, roof complexity, or panel mismatch beyond what PVWatts' loss parameter captures. Assumes the entered monthly bill and rate accurately reflect your usage.
System Size Calculator
Formula: System size (kW) = annual kWh usage ÷ (local production ratio), where production ratio = peak sun hours × derate.
Assumptions & constants: The production ratio is derived from your location's solar resource. A south-facing, unshaded, optimally tilted array is assumed unless you override tilt/azimuth.
Limitation: Roof area constraints are not enforced — the calculator tells you what size you'd need, not whether it physically fits.
Battery Storage & Battery Payback
Formula: Usable kWh = capacity × depth of discharge. Days of autonomy = usable kWh ÷ daily load. Value = TOU arbitrage savings + avoided outage cost + excess-solar capture.
Assumptions & constants: TOU arbitrage value depends on your utility's rate plan. Backup value is treated as an option (you set the frequency and duration of outages you want covered).
Limitation: Cannot predict your actual outage frequency. Standby and round-trip efficiency losses are approximate.
Carbon Offset Calculator
Formula: kg CO₂ avoided = annual production (kWh) × grid emissions factor (kg CO₂/kWh).
Assumptions & constants: The grid emissions factor is drawn from EPA eGRID regional data. Production again uses PVWatts V8 with the 14% loss default.
Limitation: Uses a regional average emissions factor, not your specific utility's hourly marginal emissions. Future grid decarbonization is not modeled.
Solar EV Calculator
Formula: Miles powered = solar surplus (kWh) ÷ vehicle efficiency (kWh per 100 miles) × 100.
Assumptions & constants: Vehicle efficiency is pulled live from the EPA FuelEconomy.gov API (which requires the Accept: application/json header). Solar surplus is production beyond what your home consumes.
Limitation: Assumes you can charge when surplus is available; real-world charging often needs a battery or managed charging to capture all surplus.
Panel & Inverter Comparison
Formula: Side-by-side comparison of efficiency, warranty, degradation curve, tier rating, and FEOC compliance flag.
Assumptions & constants: Draws from our static panel and equipment databases (src/data/panel-database.json and equipment-database.json) covering thousands of models across dozens of brands.
Limitation: Database reflects publicly published spec sheets; an installer may quote a slightly different variant. Prices are not quoted here.
Cost-per-Watt & Payback state pages
Formula: Point-in-time cost-per-watt and payback estimates for a reference 8 kW residential system, by state.
Assumptions & constants: Sourced from our state data files (src/data/state-cost-per-watt.json and state-solar-data-2026.json), which are the single source of truth for these pages.
Limitation: State averages mask wide intra-state variation. A real quote includes site-specific factors these estimates cannot capture.
Incentive Finder
Formula: Matches your location and project type against the DSIRE incentive catalog and our maintained state-incentive dataset.
Assumptions & constants: Incentives expire, reset, or change frequently. We refresh on a periodic cadence, not daily.
Limitation: Always verify a program is still funded before relying on it. Local municipal/utility rebates may not appear.
How We Handle Rates & Inflation
Two time-dependent assumptions drive every long-horizon solar number: the electricity-rate escalation you experience, and the production degradation your panels undergo over their life. We treat both transparently rather than hiding them in a black box.
Rate escalation is the annual percentage by which your utility rate climbs. In our ROI and lifetime-savings calculators this is a user-adjustable input — you set it, you can see it, and you can stress-test it. We illustrate with a default near 3% per year, consistent with the ~3–5% residential rate inflation the United States has experienced over the past decade. You should raise it if your utility has a track record of large increases (or large announced increases), and lower it if you live in a regulated market with stable rates. The escalation compounds: at 3%/yr, a rate that starts at 16¢/kWh reaches roughly 33¢/kWh by year 25.
Production degradation is the slow annual decline in panel output as cells age. Our degradation modeling uses tiered rates taken directly from our panel-degradation tool: 0.5% per year for standard panels, 0.25% per year for premium panels, and 0.75% per year for budget panels. At the standard 0.5%/yr rate, a panel that produces 100% in year one produces about 88.6% of that in year 25 — still well within most manufacturers' 80–85% 25-year warranty thresholds. Over a 25-year horizon, compounding both assumptions (rising rates, slowly falling production) is what produces the lifetime savings figures our calculators show.
Update Cadence & Correction Policy
Data refreshes are periodic, not real-time. The NREL and EPA values pulled at calculation time are as current as those APIs allow; our static datasets — state cost-per-watt, state solar data, the panel and equipment databases, and incentive records — are reviewed and updated on a regular cadence as new public data is published. We do not claim daily currency for figures that genuinely drift between refreshes.
Be aware that incentive and rate data can drift between refreshes: a rebate program can hit its cap and close mid-quarter, a utility can file a rate change, or a tax-credit rule can shift with new guidance. Always confirm a program is still funded and a rate is still in effect before you rely on it for a purchase decision.
If you find an error — a stale incentive, a wrong figure, a broken calculation — please tell us. Email hello@renewestimator.com with the page URL and the value in question. We commit to reviewing every report and to publishing a correction on the affected page when we confirm an error. Transparency is the entire point of this page; fixing mistakes in public is part of it.
Why Our Estimates Differ From an Installer's Quote
A real installer quote is built from a site visit. Our tools are built from public data and a few numbers you type. That gap is the honest reason the two will never match exactly — and it is worth being explicit about what a quote contains that an online tool cannot.
- Site-specific shading. A installer measures the actual tree, chimney, and dormer shadows on your roof across the day and seasons. Our tools assume an unshaded array unless you've modeled shading through PVWatts' tilt/azimuth and loss inputs.
- Roof complexity. Multiple faces, valleys, skylights, and penetrations all change labor and racking. Our cost-per-watt ranges are averages, not a takeoff of your specific roof.
- Electrical upgrades. A main-panel upgrade, a new meter socket, or a long conduit run can add thousands. Our Hidden Costs tool flags the categories, but only a site visit can price them.
- Local permitting & inspection. Jurisdictions vary widely in fees and timelines. We use state-average bands; your AHJ (authority having jurisdiction) may differ.
Treat our tools as a calibrated reference: they tell you whether solar plausibly makes sense for you and what a fair cost-per-watt and payback look like, so that when an installer's quote arrives you can tell whether it is in the right ballpark — or whether something is off.
Put the Methodology to Work
Every assumption above is live in the tools. Run your real numbers and see exactly how each input moves the result.
Questions about a specific calculation? Email hello@renewestimator.com. This methodology is maintained alongside the code that implements it.