Skip to main content

Energy mass balanceCostingSolar

Commercial rooftop PV with on-site self-consumption

Prices a 100 kWp to 5 MWp commercial roof on the retail electricity it avoids: generation, self-consumed versus exported share, rooftop LCOE, net annual saving and simple payback.

Costing

Turnkey installed cost per kWp, excluding VAT: modules, inverters, mounting, labour and grid connection. Fraunhofer ISE 2024 publishes 900 to 1600 EUR/kWp for rooftop above 30 kWp.

EUR/kWp

Insurance, monitoring, cleaning and the inverter replacement reserve. Fraunhofer ISE 2024 uses 21.5 EUR/kW per year with no variable OPEX.

EUR/kWp/year

Real WACC, consistent with constant-euro prices. Fraunhofer ISE 2024 uses 3.5% real for rooftop PV (5.3% nominal at 1.8% inflation). Do not mix a nominal rate with constant prices.

Economic life used for levelization. Fraunhofer ISE uses 30 years for all PV segments, in line with module warranties.

years

Specific CAPEX used

Entered cost intensity, kept inside the published market band

EUR/kWp

Installed turnkey CAPEX

Modules, inverters, mounting, labour and grid connection, excluding VAT

EUR

Annual operating cost

Insurance, monitoring, cleaning and the inverter replacement reserve

EUR/year

Capital recovery factor

Annuity factor from the real discount rate and the project life

1/year

Annualized CAPEX

Installed CAPEX turned into an equivalent yearly payment

EUR/year

Discounted energy per kWp

The denominator of the LCOE, made visible

MWh/kWp

Rooftop LCOE

Headline cost of one MWh generated on this roof over its life

EUR/MWh
Cost and payback vs installed CAPEX

Log in to view this sensitivity chart.

Site and production

Rooftop array size in kWp DC. The scope of this calculator is 100 kWp to 5 MWp: below that a roof behaves like a residential system, above it like a ground-mounted plant.

Net AC energy per installed kWp per year, performance ratio included. Fraunhofer ISE: 935 in northern Germany, 1105 in central and eastern Germany, 1280 in the south, up to 1600 in southern Spain.

Annual generation (year one)

Nameplate capacity multiplied by the site specific yield

MWh/year

Equivalent full-load hours

Hours per year the array would need at nameplate power to generate the same energy

h/year

Capacity factor

Full-load hours as a share of the 8760 hours in a year

%

Lifetime-average degradation derate

Average output over the life relative to year one

ratio

Effective specific yield over the life

Site yield after averaging module degradation across the project life

kWh/kWp/year

Lifetime generation

Total energy the array delivers before the modelled end of life

MWh
Generation and cost vs site specific yield

Log in to view this sensitivity chart.

Scale: what grows with the roof and what does not

Log in to view this sensitivity chart.

Self-consumption and value

Share of generation consumed on site rather than exported. This is a property of the site load curve, not of the technology: confirm it against metered consumption before defending the case.

All-in price the site pays its supplier, excluding VAT and recoverable levies. Eurostat H2 2025 range across the EU: 74.8 in Finland to 255.2 in Ireland, EU average 183.7.

EUR/MWh

Price received for the surplus pushed onto the grid: feed-in tariff, PPA or spot capture price. German EEG surplus band for 100 kW to 1 MW was 59.6 to 82.6 EUR/MWh in August 2025.

EUR/MWh

Self-consumed electricity

The part of generation the site uses itself, displacing retail purchases

MWh/year

Surplus exported to the grid

What the site cannot absorb, pushed onto the grid at the export price

MWh/year

Avoided retail purchase

Value of the electricity the site no longer buys from its supplier

EUR/year

Export revenue

Value of the surplus sold at the feed-in or surplus price

EUR/year

Gross annual benefit

Avoided purchases plus export revenue, before operating cost

EUR/year

Share of value from avoided retail purchase

How much of the benefit comes from not buying, rather than from selling

%

Share of value from exported surplus

Complement of share of value from avoided retail purchase, the part earned on the grid

%

Blended value of generated electricity

Weighted average of the retail tariff avoided and the export price earned

EUR/MWh
Value and payback vs self-consumption share

Log in to view this sensitivity chart.

Value and payback vs the tariff the site avoids

Log in to view this sensitivity chart.

Investment case

Net annual saving

Avoided purchases plus export revenue, net of fixed O&M

EUR/year

Simple payback

Installed CAPEX divided by the year-one net saving, undiscounted by definition

years

Simple return on CAPEX

Year-one net saving expressed as a percentage of the money spent

%

Annual result after capital charge

Net saving once the CAPEX is charged as an annuity at the chosen discount rate

EUR/year

Defendable margin per MWh

Blended value of a generated MWh minus what it costs to generate it

EUR/MWh

Net present value

Discounted value of every MWh generated, less CAPEX and discounted O&M

EUR

Net present value per kWp

Same result normalized by installed capacity, to compare roofs of different sizes

EUR/kWp

Benchmark against published data

LCOE at the published low CAPEX

What this same roof would cost at 900 EUR/kWp

EUR/MWh

LCOE at the published high CAPEX

What this same roof would cost at 1600 EUR/kWp

EUR/MWh

Position in the published LCOE band

Where this result sits between the 57 and 120 EUR/MWh published for large German rooftops

%

Site tariff versus EU average

How much more, or less, this site pays for grid electricity than the EU average

%

Self-consumption above the residential band

Percentage points above the 40% ceiling households reach without storage

%

About

Calculator context

A commercial or industrial roof is not a small power plant. Its electricity is worth what the site would otherwise pay its supplier, which in the EU averages 183.7 EUR/MWh excluding VAT, while the surplus it cannot absorb is worth the regulated feed-in price, around 59.6 EUR/MWh in Germany. The whole business case therefore hangs on one number that no datasheet contains: the share of generation the building consumes itself. This calculator makes that share the main lever. It computes annual generation from installed capacity and site specific yield, splits it into self-consumed and exported energy, values each stream at its own price, and returns the blended value of a generated MWh alongside the levelized cost of producing it. The cost side follows the Fraunhofer ISE 2024 method exactly: discounted costs over discounted energy, with 0.25% annual degradation, so the denominator ages like the array does. On the reference case, a 500 kWp roof in central Germany at 1105 kWh/kWp, 1250 EUR/kWp installed and a 3.5% real WACC over 30 years, it returns 83.4 EUR/MWh against a blended value of 146.5 EUR/MWh, a net saving of 70.2 kEUR per year and a simple payback of 8.9 years. Two things are deliberately absent. There is no scale exponent on the specific CAPEX: the published band is not resolved by size, so LCOE and payback are flat against roof area while savings grow linearly, which is what the scale chart shows. And there is no battery, no time-of-use tariff and no tariff escalation, so the result lives in constant euros consistent with a real discount rate. The self-consumption share is the weak point and is treated as such: the model reports how far the entered value sits above the 40% ceiling that households reach without storage, because anything above it must be evidenced by a metered load curve before the case is put to a bank.

Model

64 variables — inputs, calculations and outputs, with their dependencies.

64 variables shown of 64
VariableValueUnitDepends on
500kWp
1105kWh/kWp/year
70%
183.7EUR/MWh
59.6EUR/MWh
1250EUR/kWp
21.5EUR/kWp/year
0.035ratio
30years
VariableFormulaUnitDepends on
*MWh/kWp/year
/max(,)year
(-)/max(+,)ratio
+*EUR/kWp
if((<)+(>)+(<=0)+(<0)+(>)+(<0)+(<0)+(<=0)+(<0)+(<0)+(<=0)+(<=0)>0,1,0)bool
VariableFormulaUnitDepends on
*h/year
/max(,)*%
(-(-)^)/max(*,)ratio
*kWh/kWp/year
*MWh/year
**MWh/year
-MWh/year
*EUR/year
*EUR/year
+EUR/year
/max(,)EUR/MWh
/max(,)*%
-%
clamp(,,)EUR/kWp
*EUR
*EUR/year
if(<,/max(,),(*(+)^)/max((+)^-,))1/year
*EUR/year
/max(+,)*(-^)/max(-,)MWh/kWp
/max(,)EUR/MWh
-EUR/year
/max(,)years
-EUR/MWh
-EUR/year
/max(,)*%
**MWh
**EUR
/max(,)EUR/kWp
(+*)/max(,)EUR/MWh
(+*)/max(,)EUR/MWh
(-)/max(-,)*%
(/max(,)-)*%
-%

Assumptions

38 assumptions used in the calculations

  • Prevents division by zero and NaN propagation in edge cases.

    Market range Not applicable (numerical parameter).

    0.000001
    Numerical stability constant.
  • Keeps the DSL free of inline literals in ratios, guards and complements.

    Market range Exact.

    1
    Unit constant.
  • Converts equivalent full-load hours into a capacity factor.

    Market range 8760 (non-leap year); 8784 (leap year).

    8760h/year
    Calendar-year hours convention.
  • Converts specific yield in kWh/kWp into MWh, the unit the project layer consumes.

    Market range Exact.

    0.001MWh/kWh
    Unit conversion.
  • Converts the self-consumption share from percent to a fraction, per the OJ percent convention.

    Market range Exact.

    0.01
    Unit conversion.
  • Converts computed fractions back to percent for display, and caps the percent guard.

    Market range Exact.

    100
    Unit conversion.
  • Rejects sizes where the cost and self-consumption assumptions of this model no longer hold.

    Market range 100 kWp is the lower edge of the commercial segment in EEG and ISE reporting.

    100kWp
    Declared scope, not a physical limit.
  • Rejects sizes where the retail-avoidance value proposition no longer applies.

    Market range 5 MWp is a common upper edge for a single industrial roof.

    5000kWp
    Declared scope, not a physical limit.
  • Keeps an entered cost intensity inside a plausible market band.

    700EUR/kWp
    Widened lower edge of the ISE 2024 rooftop band.
  • Keeps an entered cost intensity inside a plausible market band.

    2000EUR/kWp
    Widened upper edge of the ISE 2024 rooftop band.
  • Benchmarks the entered CAPEX against the published low end of the market.

    900EUR/kWp
    Fraunhofer ISE LCOE study 2024, Table 1.
  • Benchmarks the entered CAPEX against the published high end of the market.

    1600EUR/kWp
    Fraunhofer ISE LCOE study 2024, Table 1.
  • Default cost intensity, to be replaced by a supplier quote before the case is defended.

    1250EUR/kWp
    Midpoint of the ISE 2024 published band.
  • Default fixed operating cost; absorbs insurance, monitoring, cleaning and the inverter reserve.

    21.5EUR/kWp/year
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Degrades both the levelized energy and the lifetime generation.

    0.00251/year
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Default project life used for levelization.

    30years
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Default discount rate.

    0.035ratio
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Documents the nominal counterpart of the real rate; not used by the model.

    Market range Nominal rates run roughly 1.8 points above real ones at current inflation.

    0.053ratio
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Explains the gap between the nominal and real discount rates; the model itself runs in constant euros.

    0.018ratio
    Fraunhofer ISE LCOE study 2024, Table 2.
  • Lower anchor of the European yield range offered to the user.

    935kWh/kWp/year
    Fraunhofer ISE LCOE study 2024, Table 3.
  • Default specific yield.

    1105kWh/kWp/year
    Fraunhofer ISE LCOE study 2024, Table 3.
  • Upper anchor for German sites.

    1280kWh/kWp/year
    Fraunhofer ISE LCOE study 2024, Table 3.
  • Upper bound of the specific-yield input range.

    Market range Up to 1600 kWh/kWp/yr in southern Spain.

    1600kWh/kWp/year
    Fraunhofer ISE, Recent Facts about Photovoltaics in Germany.
  • Documents that the specific yield entered is a net AC figure with the performance ratio already inside it.

    0.8ratio
    Fraunhofer ISE, Recent Facts about Photovoltaics in Germany.
  • Documents the upper edge of the performance ratio embedded in the yield input.

    0.9ratio
    Fraunhofer ISE, Recent Facts about Photovoltaics in Germany.
  • Floor of the published band used to position the computed LCOE.

    57EUR/MWh
    Fraunhofer ISE LCOE study 2024, chapter 4.
  • Ceiling of the published band used to position the computed LCOE.

    120EUR/MWh
    Fraunhofer ISE LCOE study 2024, chapter 4.
  • Reference tariff against which a site's own price is compared.

    Market range 74.8 EUR/MWh (Finland) to 255.2 EUR/MWh (Ireland).

    183.7EUR/MWh
    Eurostat news release, non-household electricity prices H2 2025.
  • Lower bound of the retail tariff input.

    Market range Finland is the EU floor; the next lowest cluster sits near 90-110 EUR/MWh.

    74.8EUR/MWh
    Eurostat news release, non-household electricity prices H2 2025.
  • Upper bound of the retail tariff input.

    Market range Ireland is the EU ceiling; Germany sits at 226.4 EUR/MWh.

    255.2EUR/MWh
    Eurostat news release, non-household electricity prices H2 2025.
  • Default price for the exported surplus.

    59.6EUR/MWh
    German EEG tariff schedule, August 2025.
  • Upper end of the regulated export band; a merchant PPA can sit above or below it.

    82.6EUR/MWh
    German EEG tariff schedule, August 2025.
  • Documents the erosion of the regulated export price over time.

    Market range 54.4 EUR/MWh for 40-100 kW surplus, degressing 1% every six months.

    54.4EUR/MWh
    German EEG tariff schedule, August 2026.
  • Lower bound of the self-consumption input, and the reference the commercial case must beat.

    20%
    Fraunhofer ISE, Recent Facts about Photovoltaics in Germany.
  • Threshold above which a self-consumption claim must be evidenced by a metered load curve.

    40%
    Fraunhofer ISE, Recent Facts about Photovoltaics in Germany.
  • Default self-consumption share; must be confirmed against a metered load curve before the case is defended.

    70%
    AI
  • Default array size for the reference case.

    500kWp
    Scope midpoint.
  • Declares the currency year of the results and the fact that vintages are mixed.

    Market range Cost data 2024, price data 2025-2026.

    2025year
    Stated modelling convention.

Sources

6 external sources