SolarResourceHub.com
Detail

SolarResourceHub.com  ·  build plan & working prototype

A kilowatt‑hour isn't a price.
It's a schedule.

Every consumer solar calculator multiplies your production by one flat cents-per-kWh number. That number does not exist. What exists is a tariff — a 12 × 24 grid of prices that changes by hour and by season — and an export rule that pays you something completely different for the same electron depending on when you push it out.

This page is two things: a working hour-by-hour engine you can drive right now, and the plan to turn it into a business. Everything is computed live in your browser from an 8,760-hour simulation.

Hours simulated8,760Per scenario, per year, for 25 years
Export prices, CA576Distinct hourly avoided-cost values
Federal credit, 2026$0§25D expired 31 Dec 2025

The tariff fingerprint

PG&E E-ELEC

What one kWh costs you, hour by hour, month by month. Every utility in America has a shape like this. Almost no consumer tool has ever shown you one.

cheap expensive

Live · runs in your browser

The payback engine

Pick a place, a , a system, and how you'd pay for it. All 8,760 hours of the year get simulated and priced against the real tariff and the real , then re-run twenty-five times with degradation and each programme's own export trajectory. About a fifth of a second.

New to this?

30 seconds

Not a quote, and it won't ask for your phone number. It simulates every hour of a year on your roof, then prices each hour against what your utility charges — and against the much smaller amount they pay you for anything you send back. That gap is most of the answer.

Inputs

Where

How you'd get it

The array

The household

Storage

No storage. Under a net-billing tariff, every kWh you export instead of using is sold at a discount.

Money

Advanced 7 settings

A genuinely unshaded roof is 0–1%. Anything with a chimney, vent stack or neighbouring tree runs 5–20%.

Sets the temperature coefficient. It matters most in hot climates.

Charge held back for outages. Reserved energy earns nothing.

What your money would earn elsewhere. Drives NPV, not payback.

Warranties promise 0.25–0.40%. NREL measures 0.5–0.75%, and 0.88% in hot climates.

Simple payback

Year 1 savings
25-year net
Grid price now

Cumulative position, 25 years

?

What this shows. Money in your pocket over time, starting from what you paid. Where the line crosses zero you have been paid back — everything above that line afterwards is profit, and it is usually far more than the purchase price.

Computed live from the same engine

Six things a flat rate can never show you

These aren't illustrations. Each chart below runs the full simulation across many scenarios — up to sixty full years of hourly modelling per card. Four of the six follow the engine's inputs above and redraw when you change anything.

Four ways to buy the same array

Identical panels, identical production, identical bill savings. The only thing that changes is who owns them and how you pay. Follow the engine's inputs above — this redraws when you change anything.

The year-10 cliff

Missed by every calculator

Export credits don't escalate with your bill — they have their own trajectory, and two of the biggest markets have cliffs in them. California locks your export schedule to your interconnection vintage for nine years, then re-vintages you. Arizona has cut its export rate by the maximum 10% every single year since 2018.

The Phoenix paradox

Sun ≠ savings

Phoenix gets 60% more sunlight than Boston and has roughly twice the payback period. Sunlight determines how many kWh you make. The tariff and the export rule determine what they're worth — and that spread is far wider than the weather's.

Which way to point the panels

Due south makes the most electricity. It is very often the wrong answer. Under a 4–9pm peak, energy made at 5pm is worth several times energy made at noon, and the optimum swings west of south — until you add a battery, which time-shifts the energy for you and flattens the whole curve.

What a battery is actually paid for

Storage almost never pays for itself on price arbitrage. It pays because under net billing the gap between what you're charged to import and what you're credited to export has become enormous — and a battery is the only way to stop giving that gap away.

The warranty and the physics disagree

Manufacturers warrant 0.25–0.40%/yr. NREL's field measurements across more than 11,000 systems put the median at 0.5–0.75%/yr, and hot climates run to 0.88%/yr. Over 25 years that gap is worth more than most state incentives.

The reference layer

The same house, seventeen different answers

This is the seed of the site's real asset. Every row is a live simulation of the same household under a different utility's actual published tariff and its actual export rule — sorted by the only thing that matters. The order of this table is the entire product thesis, and it is almost uncorrelated with sunshine.

Identical 8 kW array at 22° facing 195°, 11,000 kWh/yr household, $2.60/W installed, no battery, no federal credit. Only the location's climate, the tariff and the export rule change.

Export rules in play

Full net metering credits exports at the retail rate and nets over the year. Net billing settles every interval separately at an avoided-cost rate. The difference on the same system can exceed $1,500 a year.

What moves, and how often

California's avoided-cost table is re-issued annually and locked per customer vintage for nine years. Arizona's export rate has been cut exactly 10% every year for seven years running. Utah resets each March. New Jersey's incentive moved in July 2026.

Why nobody has built this

The tools that model this properly — SAM, Energy Toolbase, Aurora — cost $300/user/month and reach the homeowner only through a commissioned salesperson. The free consumer tools are owned by lead marketplaces whose revenue depends on the answer being yes.

Learn

The nine things that actually decide this

Not a glossary dump — the questions that change the answer, in the order they matter. Anything with a anywhere on this page opens a short explanation, so you never have to leave what you were reading.

Why does my neighbour's payback differ so much from mine?

Almost certainly the export rule, not the roof. Two identical systems a mile apart can be on different utilities, and one may credit exports at full retail while the other credits a few cents. In the table further up this page, Honolulu pays back in under five years and Austin takes over sixteen — with more sunshine in Austin.

The second most likely cause is which rate plan each of you is on. Switching plans before going solar is frequently worth more than another two panels.

Is there still a federal tax credit?

Not if you buy the system. , the 30% residential credit, expired for expenditures made after 31 December 2025.

§48E, the business version, did not. A company that owns panels on your roof under a lease or PPA can still claim it and price some of it into your payment. That single asymmetry is why two-thirds of the current market is third-party owned, and it is the main reason the honest answer to "should I buy or lease" changed in 2026.

Should I get a battery?

Ask what you want it for. As backup during outages, it works and the economics are beside the point — you are buying insurance, priced in dollars, not in kilowatt-hours.

As an investment, run the battery slider on this page. Under a battery earns real money by stopping you from selling energy at six cents that you would otherwise buy back at fifty. Under full it earns almost nothing, because the grid is already doing that job for free.

Either way, watch the : about 11% of everything you put in never comes back out.

What's the catch with $0-down financing?

The . Solar lenders advertise rates well under market and recover the difference through an origination fee — commonly 15 to 30% of the system price — added to what you finance. It is often not itemised anywhere on the quote.

Switch this page to Loan mode and move that slider. A 6.99% loan carrying a 20% fee costs you more than a 12% loan with none, and it is usually the reason a "positive from day one" pitch turns out not to be.

Which direction should my panels face?

South makes the most electricity. Under a 4–9pm peak it frequently does not make the most money, because energy produced at five in the afternoon can be worth several times energy produced at noon.

The optimum is usually southwest rather than due west — and adding a battery flattens the curve almost entirely, because storage time-shifts the energy for you. The azimuth chart above recomputes for whatever tariff you have selected.

How accurate is any of this, really?

The physics is good: this model agrees with NREL's PVWatts to 2.7% RMS across eighteen US markets, and runs about 1.3% conservative. For scale, high-quality irradiance instruments carry 2–8% measurement uncertainty on their own.

The economics are the weak half, and honestly so. The California export-price surface here is modelled rather than the official published table, the household load is synthesised from an annual total, and the weather is long-run climatology rather than your actual year. Treat the shape of the answer as reliable and the last decimal place as decoration.

My quote says I'll save more than this. Who's wrong?

Check three things before assuming either of you is. First, does the quote assume a federal tax credit? Many templates still do, and it no longer exists for purchases. Second, does it assume full net metering when your utility has moved to net billing? That alone can halve the savings. Third, what utility rate escalation does it use — 5% or 6% compounds into an enormous difference over 25 years, and it is the easiest number in the industry to quietly inflate.

Ask for the assumptions in writing. A quote that cannot show its rate schedule and its export rule is not a quote, it is a brochure.

What's the difference between payback, NPV and LCOE?

is how long until you break even. It is the most quoted and least useful, because it ignores everything after the break-even point — which is where most of the value lives.

asks whether the whole 25 years beats simply keeping your money. It can be negative even when payback looks fine.

is the one to actually decide on: what a kilowatt-hour from your roof costs you, against what the utility charges for one. If yours is lower, you are making power more cheaply than you can buy it.

Do panels really last 25 years?

The panels usually outlast the warranty. What tends to need replacing is the electronics — a string inverter typically at 12–15 years, though microinverters commonly carry 25-year warranties.

Output does fade. Manufacturers warrant ; NREL's field measurements across more than 11,000 systems find a median closer to 0.5–0.75%, and up to 0.88% in hot climates. Over 25 years that gap is worth more than most state incentives.

Is it worth cleaning the panels?

In most of the country, no. costs 2–3% a year nationally and rain removes most of it. For a typical Northeast system the energy a professional cleaning recovers is worth around ten dollars against a cleaning cost in the hundreds.

Where it does pay: dusty, low-rainfall, high-rate regions — parts of Arizona exceed 8% annual soiling loss, and California's Central Valley runs 4–5%. Even then the right trigger is monitoring data showing sustained underperformance, not a calendar.

Go to the source

Where these numbers come from

Everything this page relies on is public. If you want to check the work rather than take it on trust, start here.

ProductionNREL PVWatts The reference model this engine is validated against. Free, no account needed, and the closest thing to a neutral answer on how much a system will make. pvwatts.nrel.gov ↗ The serious toolNREL System Advisor Model Free, open source, and what utilities and developers actually use. It models detailed rate structures properly. Steep learning curve, no marketing incentive. sam.nrel.gov ↗ Rate schedulesOpenEI Utility Rate Database Around 3,700 US utilities and their published tariffs, in machine-readable form. Check what your own rate plan really charges, hour by hour. apps.openei.org ↗ IncentivesDSIRE The authoritative record of state and local solar incentives, maintained at NC State. Search your ZIP before believing any figure a salesperson quotes. dsireusa.org ↗ What people paidLBNL Tracking the Sun Installed prices from millions of real US systems. The only reliable way to know whether your quote is normal for your state and system size. emp.lbl.gov ↗ Rate historyEIA electricity data What residential electricity has actually cost by state, back two decades. Use it to sanity-check any escalation rate a proposal assumes. eia.gov ↗ The physicspvlib The open-source reference implementation of the transposition, thermal and inverter models used here. If you want to check an equation, it is in there. pvlib-python.readthedocs.io ↗ Long-term realityNREL photovoltaic research Field degradation studies across tens of thousands of systems — the source for why measured decline outruns warranted decline. nrel.gov/pv ↗

The build

Six products, one engine

Everything on the site is the same simulation pointed at a different question. That's the structural advantage: one hard thing built once, then surfaced six ways. A content farm can copy the words in an afternoon and cannot copy the engine at all.

Shipped above

1 · The Engine

8,760-hour production against a real tariff and a real export rule, with battery dispatch and a 25-year re-simulated cashflow. The thing that makes every other product possible.

  • Perez transposition, Faiman thermal, PVWatts inverter curve
  • TOU periods, tiers, demand charges, non-bypassable charges
  • Hourly avoided-cost export, vintage-locked adders
  • Optional real interval data via a Green Button authorisation
Phase 2The moat

2 · Tariff Atlas

A page per utility per residential rate schedule, each one carrying its own computed heatmap, export-value surface, best-orientation answer and battery verdict. 7,000–25,000 pages that are impossible to spin.

  • /pge/e-elec/solar — computed, not templated
  • "Should you switch rate plans before going solar?"
  • Every page shows its tariff's effective date and source
  • Diff feed: what changed in your tariff this quarter
Phase 3Retention

3 · The Watchdog

The maintenance tool. Connect an Enphase or SolarEdge account and the same physics model that sized your system now tells you whether it's actually performing — and what specifically is wrong when it isn't.

  • Rolling 14-day performance index against modelled expectation
  • Year-on-year comparison — self-normalising for shade and tilt
  • Fault signatures: dead microinverter, snow, soiling, new shade
  • "Is it worth cleaning?" answered with your own numbers
Phase 2Traffic engine

4 · The Wire

Solar news, but with the one thing no publisher offers: every policy story is run through the engine and lands as a number. Not "Arizona cuts export rate" — "this costs the median Phoenix system $118 a year."

  • Headline, link and our own one-line summary — never republished text
  • Regulatory tracker: which dockets change which payback
  • "Your rate changed" email, keyed to the reader's utility
  • Deadline clocks: grandfathering windows, vintage cutoffs
Phase 1Conversion

5 · Local Brief

Enter an address, get the whole picture for that specific roof: which utility, which rate plans are available, which one is best with solar, which direction to point, whether storage pays, and which incentives are actually live.

  • Roof geometry and shading from the Google Solar API where covered
  • Rate-plan optimiser — often worth more than the panels
  • Live incentive list with expiry dates, not a stale blog table
  • Installer handoff only where the maths says yes
Phase 4Margin

6 · SRH API & Pro

The engine as an endpoint, and an installer console on top of it. There is an empty band between free-and-stale public rate data and opaque enterprise contracts, and nobody is sitting in it.

  • POST /v1/payback — tariff-aware savings in one call
  • White-label proposal maths installers can hand a regulator
  • Rate-change alerts by service territory
  • Portfolio view for TPO providers modelling lease economics

How it's actually built

Static edge + thin worker

The engine runs in the browser. That is not a compromise — it's the architecture. Zero marginal cost per calculation, no rate-limited upstream call in the hot path, no PII leaving the device unless the user asks for a quote, and every page pre-renders for search with its numbers already in the HTML.

Client
browser, 0 ms
solar-core~14 KB of physics. Geometry, transposition, thermal, inverter.
tariff-engine12×24 period maps, tiers, demand, export rules.
dispatchDay-ahead greedy battery scheduler with reserve and RTE.
cashflow25 annual re-simulations, NPV, IRR, LCOE.
Static data
CDN, versioned
climate.jsonMonthly GHI & temperature on a county-centroid grid. ~3,100 points.
tariffs/{eia}.jsonNormalised URDB, hand-corrected for the top 150 utilities.
export/{state}.jsonThe layer URDB cannot express. Hand-maintained.
incentives.jsonLive programmes with effective and expiry dates.
Edge worker
only when needed
Address → utilityZIP and geocode resolution, cached hard.
Lead captureConsent record, TrustedForm cert, suppression logic.
Watchdog jobsNightly pull of monitoring APIs, PI computation, alerting.
API gatewayKeys, quotas, billing for the paid tier.
Upstream
build time, not runtime
NREL NSRDB / PVWattsIrradiance climatology. Baked, not called live.
OpenEI URDB3,700 utilities. Free, and only ~150 kept current.
EIA API v2State price history — real escalation, not a guessed 3%.
Google Solar APIRoof geometry and shade where coverage exists.
UtilityAPIReal interval data for about $12 a household.
Enphase / SolarEdgeOAuth production feeds for the Watchdog.
The one genuinely hard problem is not the physics — it's staleness. The public rate database refreshes roughly 150 utilities a year out of 3,700. Every page must display the effective date of the tariff it used, and a tariff past its end date must degrade to a labelled estimate rather than quietly producing a confident wrong number. Maintenance discipline is the moat; the equations are in textbooks.

The data layer, and what's wrong with each source

SourceGives youCostThe trap
OpenEI URDBFull TOU structures, tiers, demand charges for ~3,700 utilitiesFreeOnly ~150 utilities refreshed annually. adj must be added to rate. Sector tags are unreliable. Cannot express any modern export rule.
NREL PVWatts v8Full 8,760 AC profile per locationFree, 1k req/hrModels year one only — no degradation. Systematically underpredicts by up to 18%. Default 3% shading double-counts if you also use Google's shade data.
NREL NSRDBHourly GHI/DNI/DHI, 4 km, 1998→Free, 2k/dayReturns UTC by default. Index an 8,760 in UTC against a local-time TOU schedule and every peak period shifts by hours.
EIA API v2State residential price history to 2001FreePrice is in cents, not dollars. Revenue ÷ sales is not the marginal rate that governs solar savings.
DSIREIncentives across 50 states, ZIP-mappedSubscriptionThe old free NREL mirror is deprecated and frozen around 2017. It still returns plausible JSON. It is wrong.
Google Solar APIRoof planes, pitch, azimuth, hourly shade10k free/mo, then $10/1kExcellent geometry, unusable economics — it takes a monthly bill and a net-metering boolean. Imagery can be years old.
UtilityAPIThe customer's real interval data~$12/yr of dataNeeds the customer's authorisation. Also the single biggest accuracy upgrade available, for a tenth of a lead's value.
LBNL Tracking the Sun5.3M observed installed pricesFreeA year behind, and skewed toward states with reporting mandates. Filter third-party-owned or the prices lie.

Sequenced by what unblocks what

The order to build it in

01

Prove the engine, one state

Weeks 1–6Prototype exists

California only. It has the hardest export rule in the country, the highest rates, the most searches, and the most confused homeowners. If the engine is right for California it is right everywhere.

  • Ingest the real CPUC avoided-cost tables — all 576 values per vintage per utility
  • PG&E, SCE and SDG&E residential schedules from the tariff sheets, not from URDB
  • Validate against SAM's Utilityrate5 — same inputs, same answer, published as a test suite
  • Ship the calculator as the whole homepage. No email gate, no form, no phone number
  • Publish the methodology page before the marketing page
02

Atlas and Wire — become the reference

Months 2–6

Expand to the fifteen states that carry most of the residential market, then let the engine generate the content. The discipline: a page ships only if it computes something. Prose-only pages are what Google's helpful-content systems flatten.

  • Programmatic build: utility × rate schedule × "with solar" — start at 1,200 pages, not 20,000
  • State export-rule pages with citations to the actual order and its date
  • The Wire launches as headline + link + our own sentence — never republished body text
  • Every policy story gets a computed "what this costs you" line
  • Rate-change alert email — the retention hook that survives a traffic downturn
Target the unguarded tail first. Queries like PG&E solar buyback rate are currently won by sites nobody has heard of. EnergySage and SolarReviews have no utility-level pages at all. That is not a competitive market; it's an unclaimed one.
03

Watchdog — turn visitors into accounts

Months 5–10

A payback calculator is used once. A performance monitor is used forever, and it is the only reason someone who already has solar would return. It also produces the dataset nobody else has: modelled expectation against measured reality, at scale.

  • OAuth into Enphase Enlighten and SolarEdge monitoring
  • Nightly performance index against the same model that sized the system
  • Alerts tuned to signatures, not thresholds — a step drop of exactly 1/N of output is one dead microinverter
  • Soiling recovery detection: tell people to clean only when the numbers say so
  • The by-product is a validation corpus that makes the public model demonstrably better every quarter
04

Monetise without corrupting the answer

Months 8–18

The whole asset is worth something only while the engine is willing to say "don't do this." Every revenue line has to survive that constraint.

  • API and Pro tier — the highest-margin line and the one most aligned with accuracy
  • Installer leads, but only routed where the model returns a positive NPV
  • Display and affiliate as a floor, never as the steering wheel
  • Publish the routing rule openly. It's a differentiator, not a disclosure risk
05

Widen past solar before solar narrows

Year 2+Survival move

The strategic point. What's been built is not a solar calculator — it's a national hour-by-hour electricity price and export-compensation engine. Solar is its highest-intent entry point, not its ceiling.

  • Rate-plan optimiser for any household — relevant to every electrified home, solar or not
  • EV charging cost by plan and schedule
  • Heat pump switching economics
  • Texas retail plan shopping, where the engine natively outclasses every incumbent site
  • Lease and PPA comparison — the right question for the two-thirds of the market that is now third-party-owned

Business model & the case against it

Where the money is, and what kills this

Four revenue lines, deliberately ordered so that the highest-margin one is also the one most aligned with the model telling the truth. Then the honest part.

Highest margin

API & installer Pro

There is a wide empty band between free-and-stale public rate data and enterprise contracts you have to phone someone to price. Installers now face state attorneys general demanding substantiation for savings claims — a documented hourly methodology stops being a nice-to-have and becomes compliance infrastructure.

Price band
$500–$5,000/mo, sitting between free and opaque
Buyers
Installers, TPO providers, lenders, adjacent tools
Comparables
Energy Toolbase $299–333/user/mo · Solargraf API $4,000/yr
Why it wins
Accuracy is the product, so incentives point the right way
Highest value per visitor

Installer leads — but qualified by the model

Residential solar leads run $40–$200 exclusive, and roughly 3× that in California. The differentiator is refusing to sell the bad ones: route a homeowner to an installer only when the engine returns a positive NPV. Fewer leads, dramatically better close rates, and a defensible story to every regulator now circling this industry.

  • Prior express written consent, seller named explicitly — never "our partners"
  • Third-party consent certification retained for five years
  • Geo-gated behaviour in Florida, Oklahoma, Maryland, Connecticut and Texas
  • Revocation honoured within ten business days by any reasonable means
The floor

Display & affiliate

A US-only, homeowner, high-CPC vertical behaves closer to personal finance than to home improvement on ad rates. Useful as a base; never as the steering wheel. One marketplace referral is worth a thousand pageviews of display, which tells you exactly how little the ads should be allowed to influence the design.

Realistic RPM
$22–45 on a premium network, 100% US traffic
Thresholds
Raptive at 25k pageviews/mo; Mediavine on $5k annual ad revenue
Best affiliate
Not hardware — Texas retail electricity, where the engine is natively the best shopping tool that exists
Compounding

Watchdog subscriptions

Roughly five million US homes already have solar and essentially none of them can tell whether their system is underperforming. A monitor priced like a streaming service is a small line item that survives a market downturn — and it produces the measured-vs-modelled dataset that keeps the free engine the most accurate one available.

Shape
Free tier with alerts; paid tier with diagnostics and history
Why it matters
The only line that doesn't depend on new installs
By-product
A validation corpus no competitor can assemble

The case against building this

Read this twice

Three risks, in order of how likely they are to actually be the thing that gets you.

Risk 1 · demand

The market is shrinking underneath the asset

The federal residential credit expired at the end of 2025. Payback stretched from about seven years to over ten overnight. Installs are contracting, customer acquisition cost jumped roughly 40% in 2026, and several of the largest installers have gone through bankruptcy. You would be building a search asset into a market that may not return to its 2023 shape. Traffic can be real while monetisation collapses.

Risk 2 · distribution

AI answers eat exactly this query shape

"Solar panel cost in Texas" is a factual, summarisable question and that traffic is already impaired. This is the strongest argument for the tool-first approach: a running simulation with your own address, your own rate plan and your own roof is far harder to summarise away than an article is. Build the thing that has to be operated, not the thing that can be quoted.

Risk 3 · the question changed

Two-thirds of buyers no longer have a payback period

With §25D gone for owner-purchased systems but §48E preserved for third-party ownership, the market shifted hard toward leases and power purchase agreements. Those customers aren't computing a payback — they're comparing an escalator to a utility rate. The engine above now models all four structures as equals, and the headline metric changes with the structure rather than forcing a payback period onto a deal that doesn't have one. Run the PPA mode against a California net-billing tariff and you'll see why: a production-based PPA charges you for every kWh the array makes, including the ones the utility only credits at six cents.

The mitigation is in the framing. Don't build a solar calculator — build a national hour-by-hour electricity price and export-compensation engine, and let solar be its first and highest-intent surface. Rate-plan optimisation, EV charging, heat pumps, storage, and Texas retail shopping all monetise off the same core. If solar is the whole thesis, the market can shrink faster than the asset compounds.

Methodology

What this model does, and where it's wrong

A savings claim you can't reproduce is marketing. Here is the full chain, the validation, and the honest list of what's been left out.

The chain

Geometry
NOAA-class solar position; declination and equation of time per hour. Sub-0.01° error, far below irradiance-data noise.
Resource
Monthly mean daily GHI climatology → Bendt daily clearness-index distribution → Collares-Pereira & Rabl hourly decomposition → Erbs diffuse split.
Transposition
Perez 1990 anisotropic sky, all-sites-composite coefficients. Circumsolar diffuse carries the beam incidence-angle modifier; isotropic and ground components carry Brandemuehl–Beckman effective angles.
Thermal
Faiman 2008 (IEC 61853-2) with published coefficients u₀ = 25.0, u₁ = 6.84 — unmodified, not fitted.
Conversion
PVWatts DC model with per-technology temperature coefficient; PVWatts inverter part-load curve including the low-light penalty and hard AC clipping.
Tariff
12 × 24 weekday and weekend period maps, seasonal price vectors, fixed and minimum charges, demand charges where they apply.
Export
Per-rule: full retail netting with annual true-up, hourly avoided cost with vintage-locked adders, percentage-of-retail, or a fixed buyback.
Storage
Day-ahead greedy dispatch. Charges from surplus only when a later hour beats exporting now; discharges into the highest-priced unserved hours. Reserve, power limit and round-trip loss all enforced.
Export over time
Each programme carries its own trajectory rather than a single escalation rate. Full net metering tracks retail. California's ACC schedule and its ACC Plus adder are vintage-locked for nine years, after which the adder goes to zero and the midday value keeps eroding. Arizona's RCP steps down 10% a year. Hawaii's blocks are fixed.
Structures
Cash, loan, lease and PPA. Loans amortise a principal that includes the dealer fee; leases charge a fixed escalating payment regardless of output; PPAs charge for metered production, so under net billing you can pay more per kWh than the utility credits you for exporting it.
Finance
Twenty-five full annual re-simulations with degraded production, escalated retail prices and that year's export compensation — not a scaled year one.

Validation

The production model was checked against PVWatts v8 reference yields across eighteen US locations, at 20° tilt facing south, roof-mounted, with PVWatts' default 14.08% loss stack and its "standard" module.

RMS error2.7%Across 18 markets
Mean bias−1.3%Conservative, not optimistic

For scale: NREL's own validation of PV modelling tools against measured plant data found all tools within ±8% annually, and PVWatts itself underpredicting measured output by an average of 11.9%. High-quality irradiance instruments carry 2–8% measurement uncertainty on their own. A 2.7% agreement between two models is comfortably inside the noise floor of the physical world.

Sensitivity, honestly. Payback is far more sensitive to the tariff and the export rule than to the physics. Getting the rate schedule right moves the answer by years. Getting the transposition model right moves it by weeks. That ordering is the whole argument for this site.

Known limitations of this prototype

Not shipped-quality yet
  • The California avoided-cost surface is modelled, not official. It reproduces the documented shape and is calibrated to three published anchors: spring midday hours at 2–4¢, summer 4–9pm hours at 20–80¢, and an export-weighted annual average in the 5–8¢ band. The nine-year vintage lock and the post-lock erosion are modelled structurally. None of that substitutes for the real table — 576 published values per vintage per utility — which must be ingested directly before anyone makes a decision on this.
  • Resource data is climatology, not a TMY file. Eighteen metros with monthly GHI and temperature normals. Production should be shown as a range, not a point estimate — a single year deviates materially from any long-run average.
  • The load profile is synthesised. A base load, morning and evening peaks, and weather-driven cooling and heating, scaled to a stated annual total. Real interval data is available for about $12 a household and is the single largest accuracy upgrade on the list.
  • Hourly steps understate inverter clipping. Sub-hourly irradiance variability is smoothed away; the bias grows with DC:AC ratio. Minute-level data is needed to get clipping right at high oversizing.
  • Some tariff prices are composites. Where a utility publishes delivery-only TOU rates, a modelled supply-and-surcharge adder has been applied and labelled. Demand-charge plans are simplified. Holiday calendars are not encoded — the public rate database doesn't carry them either.
  • Spectral effects, snow, and soiling seasonality are omitted. Each is worth roughly ±1–2% annually. They are named here rather than silently dropped, which is more than most published calculators do.
  • Lease and PPA terms here are generic. The four structures are modelled, but real contracts carry things this doesn't: production guarantees with annual true-ups, fair-market-value buyouts rather than a fixed schedule, transfer terms at sale of the house, and end-of-term removal costs. The buyout slider uses a straight-line depreciation stand-in, which is not how a real FMV buyout is priced.
  • The dealer fee is a slider, not a lookup. Solar loans buy their headline APR down with an origination fee rolled into the financed amount. It is real, it is usually 15–30%, and it is frequently not itemised on the quote — but the default here is an assumption, not your actual quote.