CFDL

Energy: wind with PTC and MACRS

30 MW wind, merchant + 10y PTC + 5y MACRS shield + debt.

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 model

version 0.1
model "wind-ptc-macrs"
use pack "energy" version "0.1.0"
time calendar monthly from 2027-01 for 240

entity project windfarm

// 30 MW wind: merchant revenue with availability, 10-year PTC,
// 5-year MACRS shield, level-pay debt.
contract energy.capex on entity project.windfarm {
  term 2027-01..2027-01
  terms { amount = 42000000 }
}

contract energy.merchant on entity project.windfarm {
  term 2027-01..2046-12
  terms {
    mwh_year = 105000
    price = 42
    price_escalation = 0.015
    degradation = 0.007
    availability = 0.95
  }
}

contract energy.ptc on entity project.windfarm {
  term 2027-01..2036-12
  terms {
    mwh_year = 105000
    credit_per_mwh = 27.5
    escalation = 0.02
    degradation = 0.007
    availability = 0.95
  }
}

contract energy.macrs_shield on entity project.windfarm {
  term 2027-01..2046-12
  terms {
    basis = 42000000
    tax_rate = 0.21
    life = 5
  }
}

contract energy.om on entity project.windfarm {
  term 2027-01..2046-12
  terms {
    om_year = 1300000
    escalation = 0.02
  }
}

contract energy.debt_service on entity project.windfarm {
  term 2027-01..2041-12
  terms {
    rate = 0.055
    term_months = 180
    principal = 25000000
  }
}

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.075
  }
}

Verified results

MetricValueTolerance
model.npv-5,306,418.13±1
domain.energy.revenue90,382,400.52±1
domain.energy.ebitda58,795,819.78±1
domain.energy.tax_benefits37,894,379.52±1
domain.energy.debt_service36,768,755.46±1
domain.energy.dscr1.59907±0.0001