Skip to main content
CFDL

Energy: solar PPA microgrid

A solar microgrid selling under a long-term power purchase agreement, with production degradation and a fixed escalator on the contracted price.

Every number below is checked against an independent reference implementation on every commit — period by period, and on each metric, inside a declared tolerance. See benchmark methodology.

The case

A 2 MW solar and storage microgrid selling under a 25-year power purchase agreement, with production degrading each year and a fixed escalator on the contracted price. Level-pay project debt sits underneath.

The reference

Project-finance conventions for a contracted renewable asset: contracted offtake with degradation and escalation, operations and maintenance, and level-pay debt.

Provenance. No external source exists for this case. The expectations come from an in-repo reference implementation generated from the pack's rules, built separately from the model and compared period by period, pending practitioner review. Nothing external asserts them.

What it exercises

Packenergy
Contract typesenergy.ppa, energy.storage_arbitrage, energy.capacity, energy.om, energy.itc, energy.debt_service, energy.capex
Language featurespack contracts composing revenue, cost and debt on one asset
Conventionsproduction degradation, contracted price escalation, storage arbitrage margin, level-pay debt

The result

Present value 1,220,668.85, undiscounted total 5,771,865.78 and lifetime revenue 12,594,004.52.

Asserted: net cash flow per period, plus six metrics, the three above among them.

The delta

None: every period agrees inside a one-cent tolerance.

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.08
  }
}

Verified results

Checked period by period: 1 series across 300 periods — 300 values in all, each within ±0.01 of the reference.

  • net_cash_flow

Summary metrics for the base run:

MetricValueTolerance
model.npv1,220,668.85±1
model.total5,771,865.78±1
domain.energy.revenue12,594,004.52±1
domain.energy.ebitda10,202,961.05±1
domain.energy.debt_service2,751,095.26±1
domain.energy.dscr3.708691±0.0001