Enedeal financial engine methodology
For every PV, BESS or PV+BESS scenario we calculate equity IRR, project IRR (where defined), NPV, LCOE, DSCR and simple and discounted payback. Every result on the platform — in the calculator, on market pages and in reports — comes from a single versioned engine, currently version 1.0.0. Any change to the calculation logic ships as a new version, so saved scenarios remain reproducible.
How do we calculate LCOE?
LCOE is the discounted net capex plus operating costs divided by discounted PV energy output. Output is discounted at the same rate (WACC) as costs.
LCOE = [ CAPEX_net + Σ_{t=1..N} (OPEX_t + Tax_t) / (1 + WACC)^t ] ÷ Σ_{t=1..N} (E_PV,t / 1000) / (1 + WACC)^tCAPEX_net is capex after grants. Annual costs include O&M, insurance and income tax. Energy discharged from storage is not new generation, only a shift in time, so it does not increase the denominator. LCOE is not reported for ESCO, because capex sits with the operator.
How do we calculate IRR and NPV?
NPV is the sum of equity cash flows discounted at WACC, with the equity contribution in year 0. IRR is the rate at which the NPV of those flows equals zero.
NPV = Σ_{t=0..N} FCF_equity,t / (1 + WACC)^t, FCF_equity,0 = −Equity
IRR: Σ_{t=0..N} CF_t / (1 + IRR)^t = 0
FCF_equity,t = EBITDA_t − Tax_t − DebtService_t − Lease_t − Replacement_t
FCF_project,t = EBITDA_t − CIT × max(0, EBITDA_t − Depreciation_t) − Replacement_t
Payback = (k − 1) + |Cum_{k−1}| ÷ FCF_k, k = first year with Cum_k ≥ 0Equity IRR uses flows after tax, debt service, lease payments and component replacements. Project IRR uses flows independent of the financing structure, with tax on EBITDA less depreciation. IRR is solved by bisection: if flows never change sign, the engine returns no result instead of an approximation. Payback uses linear interpolation in the break-even year; the discounted variant applies the same WACC. Tax losses are carried forward.
How do we calculate DSCR and why the 1.20 threshold?
DSCR is cash flow available for debt service (EBITDA after tax) divided by interest plus principal in a given year. 1.20 is the minimum DSCR below which the engine marks project finance as unavailable.
DSCR_t = CFADS_t ÷ (Interest_t + Principal_t), CFADS_t = EBITDA_t − Tax_t
We report minimum and average DSCR over the years with debt service. Debt is repaid in annuity instalments and the last instalment closes the balance. When minimum DSCR drops below 1.20, project finance is marked unavailable in the comparison with the value shown, and the result carries a warning.
How do cash, leasing, project finance and ESCO differ?
All four models run on identical technical and market parameters — only the financing structure differs: equity, debt service and tax treatment.
- All-cash purchase
- The investor funds the full net capex with equity. Capex is depreciated for tax; there is no debt service.
- Operating lease
- Operating lease: down payment 10% of net capex, annuity instalment at 7.5% over 7 years, buyout of 1% in the final lease year. Instalments are tax-deductible costs; the investor books no depreciation.
- Project finance
- Debt of 70% of net capex, 6.5% interest, 12-year tenor, annuity repayment. The model is unavailable when minimum DSCR is below 1.20.
- ESCO / OPEX model
- Capex and maintenance sit with the operator; the investor gives up 30% of savings and revenue. With no equity at risk, IRR and LCOE are not defined, and the comparison ignores the loss of asset ownership.
Where do market benchmarks come from?
Yield, PV and BESS CAPEX, CIT and inflation for each market come from the benchmark table in the Enedeal database. For each country we show the data status (initial estimate or verified), the source of every value and the date.
| Country | Yield (kWh/kWp) | CAPEX PV (EUR/Wp) | CAPEX BESS (EUR/kWh) | CIT (%) | CPI % | Source | Verified |
|---|---|---|---|---|---|---|---|
| Bulgaria | 1,350 | 0.47 | 205 | 10.0 | 3.0 | Initial Enedeal estimate — market verification in progress | |
| Spain | 1,600 | 0.45 | 200 | 25.0 | 2.5 | Initial Enedeal estimate — market verification in progress | |
| Poland | 1,000 | 0.50 | 210 | 19.0 | 3.5 | Initial Enedeal estimate — market verification in progress | |
| Romania | 1,300 | 0.47 | 205 | 16.0 | 4.0 | Initial Enedeal estimate — market verification in progress | |
| Italy | 1,350 | 0.55 | 215 | 24.0 | 2.5 | Initial Enedeal estimate — market verification in progress |
Initial Enedeal estimate — market verification in progress
Data sources
What assumptions do we use?
The calculator starts from the defaults below; country-specific parameters (yield, capex, CIT, inflation) come from the market benchmark. Every value can be changed in the calculator.
| Parameter | Value | Unit |
|---|---|---|
| Reference PV scenario | 10 | MWp |
| Analysis horizon | 20 | years |
| Discount rate (WACC) | 7.0 | % |
| PV module degradation | 0.5 | %/year |
| O&M cost | 9 | EUR/kWp/year |
| Insurance | 0.25 | % of capex/year |
| Energy price escalation | 2.5 | %/year |
| Cost inflation (CPI) | per market | % |
| CIT rate | per market | % |
| Depreciation period | 10 | years |
| Self-consumption | 70 | % |
| Energy purchase price | 120 | EUR/MWh |
| Surplus sale price | 55 | EUR/MWh |
| Reference storage (power / capacity) | 500 / 1,000 | kW / kWh |
| BESS depth of discharge | 90 | % |
| BESS round-trip efficiency | 88 | % |
| BESS cycles | 330 | per year |
| BESS capacity degradation | 2.0 | %/year |
| Peak–off-peak spread | 60 | EUR/MWh |
| Project finance: debt share | 70 | % |
| Project finance: interest rate | 6.5 | % |
| Project finance: tenor | 12 | years |
| Leasing: down payment | 10 | % |
| Leasing: buyout value | 1 | % |
| Leasing: interest rate | 7.5 | % |
| Leasing: term | 7 | years |
| ESCO: operator share | 30 | % |
The calculations are indicative and based on market benchmarks. They do not constitute investment advice or an offer. A precise analysis requires project data.
Run your own scenario