Skip to main content

Energy mass balanceCostingSolar

Utility-Scale Solar PV LCOE (Ground-Mounted, 5–200 MWp)

Estimates the levelized cost of electricity (LCOE) for a utility-scale ground-mounted PV plant from capacity, capacity factor, and CAPEX/OPEX per MW.

Photo of alexi

alexi

I do low-carbon energy stuff for 10 years & build things I wish existed.

Inputs

Used only to select a typical parasitic loss fraction (small) and robust O&M estimation. Capacity factor should already reflect the chosen configuration.

Nameplate PV capacity (MWp). For screening, treat this as DC size; capacity factor should correspond to expected AC net output.

min 5 · max 200 · step 1 · MW

Annual average net capacity factor (after typical losses and availability). Use site/resource and design expectations.

min 8 · max 35 · step 1 · %

Real discount rate / WACC used for LCOE discounting.

min 0.02 · max 0.15 · step 0.005 · ratio

Economic lifetime used for discounting and degradation. Typical PV lifetimes are 25–35 years.

Results

Net annual electricity generation (Year 1)

Based on installed capacity, capacity factor, and parasitic loss assumption

MWh/year

Total installed CAPEX

Scaled specific CAPEX times installed capacity

EUR

Annual fixed O&M cost

Estimated as a robust fraction of CAPEX, with scale effect and technology type

EUR/year

LCOE (discounted PV method)

PV(costs) divided by PV(energy)

EUR/MWh

LCOE (simple CRF annualization)

Equivalent annual cost divided by Year-1 net energy (screening shortcut)

EUR/MWh
New chart

Log in to view this sensitivity chart.

About

Calculator context

Introduction

This calculator estimates the Levelized Cost of Energy (LCOE) for utility-scale, ground-mounted photovoltaic (PV) projects in the screening phase, consistent with typical developer workflows for 5–200 MWp fixed-tilt or 1-axis tracking plants. It uses a discounted-cash-flow LCOE approach aligned with common practice in IRENA cost reports, NREL ATB, and PV performance conventions in IEA-PVPS and Fraunhofer ISE summaries.

Methodology

The model converts nameplate capacity and capacity factor into annual energy, applies small parasitic loss assumptions, then computes LCOE from the ratio of discounted lifetime costs to discounted lifetime energy.

Key steps and formulas (variables shown with units):

  • Annual full-load hours (mandatory energy node):
    • load_hours = hours_per_year * capacity_factor
    • hours_per_year = 8760 h/yr; capacity_factor in [0–1]
  • Availability/CF penalty scaffold (mandatory node, neutral by default):
    • load_penalty = clamp(1 + penalty_coeff*(1 - capacity_factor), 1, max_penalty)
  • Parasitic consumption / loss scaffold (mandatory node):
    • effective_consumption = specific_consumption * load_penalty
    • annual_net_generation_mwh = installed_capacity_mw * load_hours * (1 - effective_consumption)
  • Costing:
    • CRF (mandatory): CRF = (r*(1+r)^n)/((1+r)^n - 1)
    • capex_total = installed_capacity_mw * specific_capex_scaled
    • O&M is entered as a fixed EUR/MW/year, converted to an implied fraction and clamped.
  • Discounted lifetime PV (present value) for LCOE:
    • PV_cost = capex_total + PV(O&M)
    • PV_energy includes annual degradation: q = (1 - degradation_rate)/(1 + r), PV_energy = (E1/(1+r)) * (1 - q^n)/(1 - q)
    • LCOE = PV_cost / PV_energy

Applications

  • Developer BD / origination: compare LCOE sensitivity to site CF and EPC pricing when screening land/connection options.
  • IPP investment committee: benchmark a project’s implied LCOE against PPA price targets using consistent discounting and degradation.
  • EPC / engineering team: test how tracking vs fixed-tilt parasitic assumptions affect net export and LCOE ranges without detailed simulations.

Model

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

53 variables shown of 53
VariableValueUnitDepends on
1
100MW
22%
0.07ratio
30years
VariableFormulaUnitDepends on
if((<)+((*0.01)<)+((*0.01)>)+(<=)+(>=)+(<=)+(<)+(>)>,,)bool
*(*0.01)h/year
clamp(+*(-(*0.01)),,)
if(==,,)
*
max(-,)
*MWh/year
/max(,)
clamp(*(^),,)EUR/MW
if(==,*(^),*(^))
clamp(,,)
(*(+)^)/max(((+)^-),)
*EUR/year
+EUR/year
(-(+)^(-))/max(,)year
*EUR
*EUR/year
-
/max((+),)
VariableFormulaUnitDepends on
*MWh/year
*EUR
*EUR/year
+EUR
(/max((+),))*(-(^))/max((-),)MWh
/max(,)EUR/MWh
/max(,)EUR/MWh

Assumptions

22 assumptions used in the calculations

  • Prevents division-by-zero and undefined CRF denominators in edge cases.

    Market range Not applicable (numerical).

    0.000001
    Numerical stability constant for division guards in the DSL.
  • Used to convert capacity factor to full-load hours.

    Market range Fixed physical constant.

    8760h/year
    Calendar-year hours.
  • Avoids inline magic numbers in DSL expressions.

    Market range Not applicable.

    0
    Arithmetic constant.
  • Avoids inline magic numbers in DSL expressions and clamp bounds.

    Market range Not applicable.

    1
    Arithmetic constant.
  • Numeric encoding for fixed-tilt option in the technology selector pattern.

    Market range Not applicable.

    1
    UI selector encoding.
  • Numeric encoding for 1-axis tracking option in the technology selector pattern.

    Market range Not applicable.

    2
    UI selector encoding.
  • Represents transformer/auxiliary loads and minor station service as a small fraction of gross generation for fixed-tilt plants.

    0.007
    Typical PV parasitic/auxiliary consumption and net export losses (screening).
  • Tracking systems can have slightly higher auxiliary consumption (drives/controls) and O&M-related downtime; modeled only as a small parasitic fraction.

    0.01
    Typical PV parasitic/auxiliary consumption and net export losses (screening).
  • Set to zero so the mandatory penalty node does not distort user-provided capacity factor at screening stage.

    0
    CATEGORY_RULES scaffold parameter.
  • With penalty_coeff = 0, max_penalty = 1 ensures load_penalty remains neutral at 1.

    1
    CATEGORY_RULES scaffold parameter.
  • Used to reduce annual energy over time in the discounted lifetime energy calculation.

    0.0051/year
    PV module/system degradation typical range in technology scaffold.
  • Provides a stable normalization capacity for optional economies-of-scale expressions.

    50MW
    Scaling reference point for clamp/scaling scaffolds.
  • Introduces a negative exponent for CAPEX per MW to reflect economies of scale.

    -0.15
    Empirical scale effect for utility PV.
  • Prevents non-physical negative/near-zero CAPEX from propagating through cost calculations.

    300000EUR/MW
    Input clamp bound (broad sanity range).
  • Avoids extreme CAPEX values dominating outputs due to data entry errors.

    1500000EUR/MW
    Input clamp bound (broad sanity range).
  • Avoids unrealistically low O&M when users enter near-zero O&M values inadvertently.

    0.005
    Sanity clamp for annual fixed O&M as fraction of CAPEX.
  • Avoids unrealistically high O&M fractions due to unit mistakes (e.g., entering EUR/kW-year as EUR/MW-year).

    0.03
    Sanity clamp for annual fixed O&M as fraction of CAPEX.
  • Reference CAPEX per MW for scale effect calculation.

    800000EUR/MW
    Empirical market data for utility PV.
  • Robust O&M fraction for fixed-tilt utility PV, with scale effect.

    0.012
    Empirical market data for utility PV O&M.
  • Robust O&M fraction for tracking utility PV, with scale effect.

    0.014
    Empirical market data for utility PV O&M.
  • Scale effect for O&M fraction (fixed-tilt).

    Market range -0.09 to -0.07 typical.

    -0.08
    Empirical market data for utility PV O&M.
  • Scale effect for O&M fraction (tracking).

    Market range -0.09 to -0.07 typical.

    -0.08
    Empirical market data for utility PV O&M.