One way to think about solar is as a low-risk, long-term use of a lump sum — closer to prepaying a bill than to buying a coupon bond, since bond interest is usually taxable and these savings are not. This calculator compares investing that cash against buying solar that offsets your home and fuels an EV on sunshine. Some other ways to think about solar savings are included at the bottom — click through to explore those too!
Two ways to read that:
| Year | Savings that year | Solar position (reinvested savings − cost) | Cash gain (invested) | Solar − cash |
|---|
Every row re-runs the whole model with one assumption made worse, and shows what the 10-year verdict becomes. Rows are ordered by how much they move the answer — the top row is what your result really hinges on.
Same numbers, a different frame. Each tab reframes your inputs — and a tab turns green when that way of looking at it favors solar.
Prepaid electricity. Treat the system as buying power up front. Its effective price is the total cost spread across every kWh it makes — a number that falls each year as production piles up, while the utility's rate climbs. Amortized over a 25-year panel life, the two lines cross the year solar becomes the cheaper electricity. Drag the vertical line to read the price per kWh in any year.
This tool treats buying rooftop solar as a long-term use of cash and asks a single question: over your chosen horizon, does buying the system beat investing the same amount instead? It is closer to prepaying a bill than to buying a bond — bond interest is usually taxable, and these savings are not. Both sides are measured the same way, so the comparison is apples-to-apples.
Production — the annual kWh figure everything else is built from — should come from a real installer's quote whenever you have one. If you don't yet, "Build a system" works both production and cost out from panel count, wattage and roof direction; the added-panels section uses the same model for a second roof surface — see how those estimates are derived.
Consumption comes from your bill. If you expect to electrify — a heat pump, a second car, a spa — the future-use panel adds those loads so the system is sized against where you're heading rather than where you've been (more on that here).
The cash side grows the system's price at your expected return, compounded, with tax applied to the gains. The solar side is the yearly bill savings, meaning the electricity you no longer buy and nothing else, reinvested each year at that same after-tax return. Avoided bills aren't taxed and investment gains are, so the cash side clears a slightly lower bar and the tool builds that in. Gasoline never appears on solar's side; what an EV saves on fuel is the car's own line.
Capture is the heart of the estimate. Solar earns full value only for what you use or store; the rest is exported at retail, at a low net-billing rate, or at nothing. The calculator works it out hour by hour. For your area it takes five homes with your usage pattern, simulated by NLR from the real housing there, scales them to your yearly use, and runs them through 180 days of real weather, 15 a month. Each hour the panels serve the house first, the surplus fills the battery, and the battery covers the hours the panels can't. What's left is exported. Every kWh is priced at its own hour on your rate plan. With your own Green Button file, it runs on your real year instead. Your export rule doesn't change how much you capture. It sets what the rest is worth.
Over time, electricity savings grow with your utility escalation rate, which already includes general inflation, and panel output fades with a small annual degradation. The car's fuel saving, where you have one, escalates on a separate gasoline outlook. All figures are nominal (future) dollars.
The headline measures are payback (the year your savings, added up as you receive them, cover the system cost; it doesn't move when you change the return assumption), the equivalent return (the steady annual return solar earns on its price over exactly your analysis window, counting the system as worth $0 afterwards), and the cost of doing nothing (the escalating utility bills you'd keep paying otherwise, including grid charging for an EV — never gasoline, which belongs to the car). Below those, the stress test re-runs everything with each assumption pushed against you, so you can see which one your answer actually depends on.
These are planning estimates, not a guarantee or financial advice. Rates, incentives, taxes, degradation, and interconnection rules vary — verify the specifics of any quote before relying on these numbers.
Most of the time payback and equivalent return move together: a shorter payback goes with a higher return, and both look better as a system's savings improve relative to its cost. They can still pull apart near the margin, and when they do it isn't a bug in either number — they're answering genuinely different questions.
Payback is deliberately the plain version: each year's savings are added up exactly as you receive them, and payback is the year that running total first covers what you paid. Nothing is discounted and nothing is assumed to be reinvested, so this number does not move when you change the investment return at the top of the page. It answers "when am I whole?" and nothing else.
Equivalent return is the stricter, time-value-aware measure. It asks: what single, constant annual yield would make those same raw bill savings, over exactly your chosen analysis window, add up to the net system cost? It is computed from the raw savings alone, so it does not move when you change the cash-return or tax-rate fields — those belong to the solar-vs-cash pile, where reinvestment lives. It is not accounting ROI. Two things about that window matter. It stops dead at your analysis year — the system is counted as worth $0 afterwards, with no resale value and no credit for the production still to come. And it's the same window the payback number can overrun.
That's where a negative number usually comes from. If payback lands past your analysis window, a negative return follows directly and isn't a separate problem: you haven't broken even yet inside the period you asked to measure, and the measure refuses to count anything after it. Lengthen "Analysis years" and it turns positive once the window reaches your actual payback year. A 10-year window on a system that pays back in 13 will always look bad, and a 25-year window on the same system may look fine — both are true statements about different questions.
The invested-cash verdict is a third thing again. "Solar wins by $X" (or "investing the cash wins") compares two future values at your analysis year: solar's savings reinvested at your after-tax return, against the same money simply invested. That comparison is where your return assumption belongs, and it's why the year-by-year table's profit column reinvests while the payback number above does not. It's a comparison, not a payback.
If payback never happens at all, even out to 25 years, that's a different and more direct signal: at these settings, this system's savings genuinely don't outpace its cost fast enough. Before concluding that's the final answer, it's worth checking the inputs behind it — a placeholder system cost instead of a real quote, a grid rate that doesn't match your actual bill, a household-usage number that's off, or a system sized well beyond what your usage and export rate can put to good use (surplus exported at a low net-billing rate is worth a lot less than the same kWh self-consumed). If those all check out, the tool is doing its job — some systems genuinely are marginal-to-poor uses of the cash for a given household, and that's exactly the kind of thing this calculator exists to surface rather than paper over.
When your panels make more than you're using at that moment, the extra flows to the grid — and what your utility pays for it varies enormously by program and region. Rather than name a specific tariff, this calculator asks which of three mechanisms applies and lets you set the rate. Check your own utility's tariff for the exact figure. Full detail & sources →
At (or near) my retail rate. Every exported kWh is credited at (or close to) your full retail rate — your meter effectively runs backward, so a kWh sent at noon offsets a kWh drawn at night. Because of that, capture matters far less here than under the other two: exported and self-consumed energy are worth roughly the same. Two caveats the tool models. First, the retail credit is capped at the electricity you still buy over the year, since that is what a netted kWh can actually offset; production beyond that goes at a low annual true-up rate, so heavily oversizing stops paying. Second, a battery is close to pointless here financially. The kWh it stores were already worth full retail as exports, so storing them spends a retail export to avoid a retail import and loses about 17% in the round trip. On this page's numbers, a battery moves the annual saving very little either way, even on a time-of-use plan. Buy one for backup, not for return. This is traditional net metering (in California, legacy NEM 1 and NEM 2; still the norm in much of the US).
At a lower set export rate. Exports are credited at a rate below retail — an avoided-cost or value-of-solar figure — while the power you draw still costs full retail. That gap makes using or storing your solar far more valuable than exporting it, so batteries, orientation, and daytime use matter a lot. This is where California's NEM 3 (net billing) and many newer programs sit. Enter your utility's published export rate, or use the $0.06/kWh default. For PG&E and SCE customers the calculator uses their published price for each hour instead, and a battery can sell into the dearest hours.
Little or nothing. A non-export system never pushes power to the grid; anything it can't use or store is curtailed (thrown away). Used where interconnection is limited, or to protect a legacy tariff on a separate system. Here, capturing your own production is everything.
Solar and an EV are different assets. One is twenty-five years of infrastructure that makes kilowatt-hours; the other is a car that happens to run on something cheaper than gasoline. This tool used to blend them, pricing every solar-charged mile at the gas it displaced, and that overstated solar's return badly. A kilowatt-hour doesn't stop being electricity because it went into a car.
Everything you self-consume is priced as electricity. Car included. Whatever a kilowatt-hour powers, it's worth the rate you'd otherwise have paid the grid for it. There is no higher price for kWh that end up in a battery on wheels.
The car is credited with what it adds, not with what it uses. The model runs the whole energy ledger twice, once with the car's load and once without, and gives the car only the difference. Often that difference is nearly nothing: if the house already absorbs everything the roof can deliver at noon, a car plugged in overnight just buys more from the grid. Under When the car charges, "From the panels while the sun is up" is what a charger's solar setting does, and it's what moves the car's load into the production window. The model only credits the timing you choose.
Gasoline never touches solar's numbers. Payback, equivalent return and the ten-year verdict are electricity, in both directions. What this car costs to run on gas versus on electricity is real money, and it appears as the car's own line.
Whether pushing solar into the car beats exporting it comes down to your tariff. Under a set export rate, where exports fetch a fraction of what imports cost, charging in the sun is worth real money. Under full-retail net metering it barely matters, since a kilowatt-hour is worth the same either way. On a non-export system anything the car can absorb would otherwise have been thrown away, which makes it close to free money. Your export setting already carries this; there's nothing extra to configure.
The grid rate is the value of each kWh your solar lets you avoid buying. On a flat plan that's one number off your bill. On a time-of-use plan the price changes with the hour, and often with the season.
Where the prices come from. For PG&E, LADWP, APS, SRP and NV Energy, the calculator starts on the plan new solar customers there actually get, as a price for every month and hour. Prices come from the Utility Rate Database. I write the hours from each utility's own tariff, because that's where the database's errors are. Fixed monthly charges don't change with solar, so they aren't counted. You can pick another published plan, set your own summer and winter prices, or use one peak and one off-peak price all year (peak 4–9pm). Elsewhere it uses the location's rate until you enter yours.
How solar is priced. Each kWh is priced at the hour it lands in: solar used as it's made, power the battery gives back, and power you still buy. So what you've already entered decides what solar is worth. A battery moves midday solar into the expensive evening. Exports are priced by the hour too: at each hour's retail price under net metering, and at PG&E's or SCE's published export price under California's net billing, where the battery sells into the dearest hours when that pays more. A west-facing roof produces later in the day, so more of its output lands in the peak.
Two separate things roof direction does. One is when your production lands against the prices above. The other is how much the array makes in a year, modelled from real NLR PVWatts data for your market. They pull in opposite directions for a west roof: it makes less in total, but more of it lands in the evening peak. Under a flat rate the loss wins; under a steep time-of-use spread the timing can win. The calculator applies both.
The day chart at the top shows the result: an average day for each month, with the peak hours shaded. Point at any hour to read it.
Where to find your own rates, and on the peak/off-peak defaults. Your utility's own rate-plan page is the most reliable source — for PG&E specifically, pge.com/tourates lists current pricing for every time-of-use plan, and this one-page summary puts the flat and TOU plans side by side. Your actual bill is better still, since it shows what you're really charged after any plan-specific adjustments.
The plain peak/off-peak pair starts at $0.44 / $0.38: PG&E E-TOU-C's above-baseline rates (March 2026), averaged over its four summer and eight winter months. It's used only when you choose one pair for the whole year.
Why peak hours themselves vary so much by area. 4–9pm daily (PG&E), 5–9pm weekdays (Xcel), a single noon–9pm summer window that splits into two shorter windows in winter (FPL) — there's no standard peak window; each utility sets its own, based on when its grid gets stressed. That's also why a peak/off-peak default can't travel well between utilities, and why the specific hours for your own area are worth checking at the source link under the rate field rather than assumed from another region's plan.
On the escalation rate. I set a likely-conservative baseline escalation of 5%. The last 10 years have run an annualized increase of about 6.75% by my calculation. Starting in 2027, PG&E is officially requesting steady year-over-year revenue increases. According to analyses of the utility's filing, the projected residential rates per kWh and annual jumps are:
Two places in this tool fill in figures without a real quote: "Build a system" in the System step in the System card, and the added-panels surface further down. Both use the same model, described here.
Where the numbers come from. I ran the real NLR PVWatts API — the same physics-based model installers' own software is built on — for 14 major solar markets spanning the country, chosen by real market size and geographic spread rather than picked to represent a "typical" climate. Each market is one specific coordinate, run individually at eight compass directions and eight tilts from flat to vertical, standard-efficiency modules, and PVWatts' default 14% system-loss assumption. The roof model reads the 20° slice, a typical residential pitch. Those 896 runs were saved as a static table baked into this calculator, rather than called live — so the tool stays a single file that works without an internet connection to a weather-data API, and doesn't depend on an API key that could be rate-limited by other visitors. For any azimuth between the eight reference points, the tool follows a shape-preserving spline through the measured values. Not a plain cosine, which over-penalizes east and west orientations and misses the diffuse skylight those roofs still pick up; and not a straight line between points, which cut the corner at every one of them and under-read the orientations in between by up to 1.5%. Each orientation also carries its own month-by-month shares, so capture is weighted by the season your climate actually has.
Two different things azimuth affects — worth not mixing up. This model determines how much total energy a given orientation produces over a year. That's separate from the capture/time-of-use engine described in the electricity-rate guide above, which uses azimuth to determine when your already-produced energy lands relative to peak pricing. A west-facing roof produces less total energy than a south-facing one (this guide's effect) but what it does produce lands later in the day, closer to the evening peak (that guide's effect) — both are real and both matter, for different reasons.
What this can't capture. Real PVWatts runs for an exact address account for that site's actual weather history; this table only has 14 points, so anywhere else is an approximation to whichever one is geographically and climatically closest. Every entry is a single coordinate's real result — none are averaged, blended, or used to represent a broader region — but a metro area's own microclimates (coastal fog belts, inland valleys, elevation changes) can still differ from its anchor point. The roof model still assumes a 20° pitch, since that is the slice it reads; the balcony tool uses the full tilt range. It doesn't know about shading from trees or nearby structures, and doesn't model inverter clipping or a specific panel model's real-world derate.
Panel wattage defaults to 460W for the primary system (matching this tool's seeded example quote) and 430W for added panels (a common current panel spec) — both are just starting points. Check your panel's actual spec sheet or your installer's proposal for the real number; it's usually printed right on the quote.
Estimating cost. If you have no quote, the tool can price the system as array + battery. The array uses a dollar-per-watt figure — the unit installers themselves quote in — applied to panel count × wattage. The default of $3.00/W sits deliberately between two credible benchmarks that disagree: competitive marketplace quotes averaged roughly $2.60–2.75/W in early 2026, while Berkeley Lab's national median for cash purchases runs nearer $3.50/W. That spread isn't measurement error, it's real variation between shopping aggressively and taking the first offer. The battery is priced separately, defaulting to $948/kWh — the $12,800 the seeded quote charges for a 13.5 kWh Powerwall 3, rather than a market average. Type your own total and the per-kWh figure follows.
Treat the cost estimate as a budgeting placeholder, not a price. Roof complexity, electrical panel upgrades, trenching, permitting and installer margin move real quotes far more than system size does — two identical arrays on two houses can differ by thousands. Anyone within a per-watt band of the default is in normal territory; the only way to know your number is two or three real quotes. Note also that the federal residential credit (Section 25D) expired at the end of 2025, so what this shows is what you'd actually pay, with no credit netted out. If you expect a state or utility rebate, subtract it yourself and enter the net figure.
$/W isn't just for estimating — it's also how to sanity-check a real quote. Price per watt is the standard yardstick installers and marketplaces themselves quote in, so it's worth checking even when you already have a number: divide the all-in price by the system's watts and see where it lands against the roughly $2.50–3.50/W cash-purchase range above. The "Total price" figure in the bottom dock does this for you automatically, combining the main system and any added panels — but it deliberately backs the battery's cost out first (using the $/kWh figure next to the battery fields above). Batteries price by the kilowatt-hour, not the watt, and a big battery on a small array can otherwise make an entirely reasonable quote look expensive per watt for no real reason. If you don't know what the battery itself cost, a rough placeholder (the $948/kWh default comes from this tool’s own seeded quote) is far better than leaving it blended in.
For a more accurate number: run PVWatts directly with your exact address, roof tilt, and shading — it's free and takes a couple of minutes — or get a real quote from an installer, whose software already accounts for all of this plus your specific equipment. Either way, choose "I have a quote" and enter the resulting number as the annual production.
One way to read what you still buy. The third tile in the energy summary is the electricity the utility still delivers after your panels and battery have done what they can, and it's worth thinking of as the size of the remaining opportunity. It isn't usage minus production: a system can make more in a year than the house uses and still leave a large number there, because production lands at noon and the house keeps running at 8pm. Every kWh of that gap is one you're paying full price for, that a larger system might have covered instead. The closer that number gets to zero, the more completely you've taken advantage of the solar opportunity available to you. It's a different question from whether the system pays for itself: a small system can have an excellent return and still leave most of the opportunity on the table.
Why this matters more than it used to. Sizing solar against last year's bill quietly assumes your usage stays flat — which is exactly wrong for most people considering solar, since electrification and solar tend to arrive together. Add a heat pump, a second EV, or a spa after the system is installed, and an array that once covered everything suddenly covers a fraction. The panel below the household field lets you add expected loads so that figure reflects where you're heading, not just where you've been.
Typical additions, for scale. Every one of these swings widely with climate, equipment and habits — they're starting points, not predictions:
Figures are annual added electricity when replacing a gas appliance, or total consumption for a new load. Sources and ranges are listed below.
Heat pump water heater — 1,200 kWh/yr. Real-world reports cluster around 900–1,500 kWh/yr; the Department of Energy's category average runs higher at about 2,195 kWh/yr, likely reflecting larger households. Applies when replacing gas — if you're replacing electric resistance, a heat pump unit cuts usage by roughly 60–70% instead of adding.
Heat pump space heating — 2,500 / 4,000 / 7,000 kWh/yr. Whole-house heat pump consumption typically runs 3,000–8,500 kWh/yr, with mild climates near 3,000–4,500 and cold upper-Midwest homes reaching 6,500–9,000. The presets are heating-only: if you already run central air, a heat pump handles cooling at comparable efficiency, so the added load is essentially the winter half. For a firm number, a Manual J load calculation beats any rule of thumb.
Induction range — 500 kWh/yr. Typical household cooking runs roughly 500–700 kWh/yr on electric, and induction uses about 30–40% less than a standard electric coil. Small relative to everything else here.
Electric clothes dryer — 600 kWh/yr. A resistance dryer runs about 500–800 kWh/yr for five to eight loads a week. A heat pump dryer cuts that by 40–60%, to roughly 200–400 kWh/yr.
Pool pump — 2,500 kWh/yr and hot tub — 1,800 kWh/yr. A single-speed pool pump draws 1,500–2,500W running 8–12 hours a day in season; variable-speed models use 50–70% less, making this the widest range on the list. A spa consumes roughly 3–7.5 kWh/day, driven more by cover quality and outdoor temperature than tub size.
Always-on machines. Computed from the draw and runtime you enter, because this category has no typical value. For scale: a current-generation mining rig draws roughly 3,500W, which running continuously is about 30,000 kWh a year — roughly three times an average US home, and more than most rooftop systems generate.
One deliberate conservatism worth naming: for gas-replacement rows the model adds the new electricity but doesn't credit back the gas you stop buying, so your real net cost is better than shown. The EV is the exception: its kWh are added here like any other load, but what it saves on gasoline is counted on the vehicle card rather than folded into solar's return.
Every number above rests on assumptions, and some of them matter far more than others. Rather than ask you to take them on faith, this panel re-runs the entire model with one assumption pushed against you at a time, and reports what your headline verdict becomes. Rows are ordered by impact, so the top row is the assumption your result actually depends on.
These are adverse cases, not forecasts. Each row is a deliberate “what if this goes worse than I expected” — not a prediction, and not a median outcome. The final row stacks all of them at once, which is a genuinely pessimistic scenario and unlikely to happen in full. If the answer survives that row, you can stop worrying about the assumptions.
The headline sentence is the more useful number. It solves for the lowest rate of utility increases at which solar still beats the cash alternative — so instead of trusting the escalation figure you entered, you can see how much slack there is. If it says solar wins even at 0%, the escalation assumption isn't doing the work; if the threshold sits close to what you entered, it is.
Rates vs. fixed fees. One row models the utility shifting revenue from per-kWh rates into a fixed monthly connection charge. This matters because solar can only offset the part of your bill you're billed per kWh — a fixed charge stays whether you produce or not. It isn't hypothetical: PG&E restructured this way in 2026, moving roughly $24/month into a Base Services Charge and lowering the per-kWh price. If that trend continues, bills keep rising while solar savings lag behind them.
Battery end of life. Batteries are the least-warrantied, most expensive component, so this is the one equipment risk modeled here. Inverters are deliberately excluded — warranties have lengthened (many microinverters now carry 25 years) and replacement costs have fallen, making them a much smaller risk than they used to be. When the battery reaches end of life, the model compares two options and takes whichever costs less over your remaining window: replace it, or run solar-only without it. Under full net metering it will usually choose to run without, since exports already earn retail; under net billing or zero export it will usually replace, since captured energy is where the value lives. Note the economic comparison doesn't price the loss of backup power, so “cheaper” isn't automatically “better.”
On the failure year and replacement cost. The default of year 12 is a deliberately harsh case, not an expectation. Tesla's Powerwall warranty guarantees at least 70% of original capacity at 10 years, real-world degradation typically runs 2–3% per year, and most units are expected to last 15–20 years before significant decline — so outright failure at 12 sits well into the unlucky tail. The replacement figure uses a 2026 installed price for an event a decade or more away, which cuts both ways: battery prices have fallen steadily in real terms, so this is likely conservative, but no federal residential tax credit applies to a replacement under current law, which pushes the other way. Both the year and the price are adjustable so you can test your own view.
These are the fixed values and modeling choices the form doesn't ask about. Where a figure comes from a published source it's linked; the rest are my own modeling estimates — reasonable engineering approximations, labeled as such. The same list, as plain paragraphs, is on the methodology page. Verify anything material against a real quote and your own bill.