# Solar Payback Calculator

> Estimates the annual generation of a photovoltaic system from its size and specific yield, the first-year savings from self-consumed electricity and exported energy, the simple payback period, and a year-by-year table with panel degradation and electricity price escalation over the analysis period, including the levelised cost of the solar electricity.

- Calculator id: `solar-payback` · Category: Home Energy & Electrical (`energy`) · Tool name: `estimate_solar_payback`
- Canonical page: https://tttkmbb.com/energy/solar-payback · This document: https://tttkmbb.com/energy/solar-payback.md · JSON definition: https://tttkmbb.com/energy/solar-payback.json

## Purpose

Estimates the annual generation of a photovoltaic system from its size and specific yield, the first-year savings from self-consumed electricity and exported energy, the simple payback period, and a year-by-year table with panel degradation and electricity price escalation over the analysis period, including the levelised cost of the solar electricity.

**Use when:** You want to judge a solar quote: how many years until the system has paid for itself, what it saves over its life, and what its electricity costs per kWh.

**Do not use when:** You need the daily output of a panel array from irradiance (use solar-panel-output), a financed system with loan interest, or discounted cash-flow measures; results are estimates, not financial advice.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `system_size_kw` | number | kWp | required | Rated DC capacity of the array in kilowatts-peak. (> 0, max 100000) |
| `system_cost` | number |  | required | Installed cost after rebates and tax credits, in your currency. (> 0, max 1000000000) |
| `annual_yield_kwh_per_kw` | number | kWh/kWp/year | optional, default 1400 | Annual generation per kWp: about 900–1,100 in northern Europe, 1,300–1,600 in the southern US and southern Europe, up to 1,900 in deserts (PVWatts gives a site value). (min 300, max 2500) |
| `electricity_price_per_kwh` | number | per kWh | required | Retail price per kWh that self-consumed solar electricity displaces. (min 0, max 100) |
| `self_consumption_percent` | number | % | optional, default 100 | Share of generation used on site (100 with net metering; 30–50 without a battery; higher with one). The rest is exported at the feed-in tariff. (min 0, max 100) |
| `feed_in_tariff_per_kwh` | number | per kWh | optional, default 0 | Payment per exported kWh. (min 0, max 100) |
| `annual_degradation_percent` | number | %/year | optional, default 0.5 | Yearly loss of output; 0.5 % per year is the NREL median for crystalline silicon. (min 0, max 5) |
| `price_escalation_percent` | number | %/year | optional, default 0 | Yearly increase of the retail electricity price (the feed-in tariff is held constant). (min -10, max 20) |
| `analysis_years` | integer | years | optional, default 25 | Years in the savings table (25 matches typical panel performance warranties). (min 1, max 25) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `annual_generation_kwh` | number | kWh | system_size_kw × annual_yield_kwh_per_kw. |
| `first_year_savings` | number |  | Generation × (self-consumed share × price + exported share × feed-in tariff). |
| `simple_payback_years` | number | years | system_cost / first_year_savings. |
| `cumulative_payback_years` | number | years | Year (interpolated) in which cumulative savings reach the system cost; absent when not reached within analysis_years. |
| `lifetime_generation_kwh` | number | kWh | Sum of yearly generation over analysis_years with degradation. |
| `lifetime_savings` | number |  | Sum of yearly savings over analysis_years. |
| `net_benefit` | number |  | lifetime_savings − system_cost. |
| `lcoe_per_kwh` | number | per kWh | system_cost / lifetime_generation_kwh (undiscounted, no maintenance costs). |
| `yearly` | list |  | Per year: year, generation_kwh, savings, cumulative savings. |

## Formula

`annual_generation_kwh = system_size_kw × annual_yield_kwh_per_kw; generation_y = annual_generation_kwh × (1 − annual_degradation_percent/100)^(y−1); savings_y = generation_y × (self_consumption_percent/100 × electricity_price_per_kwh × (1 + price_escalation_percent/100)^(y−1) + (1 − self_consumption_percent/100) × feed_in_tariff_per_kwh); simple_payback_years = system_cost / savings_1; lifetime_savings = Σ savings_y; net_benefit = lifetime_savings − system_cost; lcoe_per_kwh = system_cost / Σ generation_y`

Undiscounted cash-flow model with linear-geometric degradation (NREL median 0.5 %/year) and no inverter replacement, maintenance or financing costs; the specific yield should come from a site tool such as NREL PVWatts. Informational estimate, not financial advice.

## Data Sources

- NREL PVWatts Calculator — https://pvwatts.nrel.gov/ (government, retrieved 2026-09-24)
- Wikipedia – Levelized cost of electricity — https://en.wikipedia.org/wiki/Levelized_cost_of_electricity (reference, retrieved 2026-09-24)
- Wikipedia – Solar panel — https://en.wikipedia.org/wiki/Solar_panel (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/solar-payback?system_size_kw=…&system_cost=…&electricity_price_per_kwh=…`
- `POST https://tttkmbb.com/api/v1/calculate/solar-payback` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/solar-payback · OpenAPI operationId `estimate_solar_payback` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "solar-payback", "inputs": {…}}`

## Example

- 6 kW for 12,000 at 1,400 kWh/kWp, 0.30 per kWh, 100 % self-use: inputs `{"system_size_kw":6,"system_cost":12000,"annual_yield_kwh_per_kw":1400,"electricity_price_per_kwh":0.3,"self_consumption_percent":100}` → `{"annual_generation_kwh":8400,"first_year_savings":2520,"simple_payback_years":4.76,"lifetime_savings":59361,"net_benefit":47361,"lcoe_per_kwh":0.0606}`
- 10 kW, 40 % self-use, 0.08 feed-in, 3 % escalation, 20 years: inputs `{"system_size_kw":10,"system_cost":18000,"annual_yield_kwh_per_kw":1100,"electricity_price_per_kwh":0.25,"self_consumption_percent":40,"feed_in_tariff_per_kwh":0.08,"price_escalation_percent":3,"analysis_years":20}` → `{"annual_generation_kwh":11000,"first_year_savings":1628,"simple_payback_years":11.06,"lifetime_savings":38129.87,"net_benefit":20129.87,"lcoe_per_kwh":0.0858}`

```
GET https://tttkmbb.com/api/v1/calculate/solar-payback?system_size_kw=6&system_cost=12000&annual_yield_kwh_per_kw=1400&electricity_price_per_kwh=0.3&self_consumption_percent=100
```

## Limitations

You need the daily output of a panel array from irradiance (use solar-panel-output), a financed system with loan interest, or discounted cash-flow measures; results are estimates, not financial advice. Undiscounted cash-flow model with linear-geometric degradation (NREL median 0.5 %/year) and no inverter replacement, maintenance or financing costs; the specific yield should come from a site tool such as NREL PVWatts. Informational estimate, not financial advice. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Where do I get the specific yield?**

Run NREL PVWatts (or PVGIS in Europe) for your address, tilt and orientation; it returns annual kWh per kW of installed capacity.

**What is self-consumption and why does it matter?**

It is the share of solar output used in the house instead of exported. Self-consumed energy is worth the retail price; exported energy only earns the feed-in tariff, often a third of it.

**Why does the payback with degradation differ from the simple payback?**

Simple payback assumes first-year savings repeat forever; the cumulative version applies yearly panel degradation and price escalation, so it is longer without escalation and can be shorter with it.

## Related

- [Solar Panel Output Calculator](https://tttkmbb.com/engineering/solar-panel-output.md) — Daily energy of the array from irradiance and panel rating.
- [Electricity Cost Calculator](https://tttkmbb.com/everyday/electricity-cost.md) — What the displaced consumption costs at your tariff.
- [Electricity Carbon Footprint Calculator](https://tttkmbb.com/weather/carbon-footprint-electricity.md) — CO₂ avoided by the generated kWh.
