{
  "asset_id": "PITCH-SOLAR-50MW",
  "technology": "solar",
  "base_case_irr_pct": 8.5,
  "capital_eur_m": 42.0,
  "annual_volume_mwh": 80000,
  "correlation": 0.30,
  "board_risk_aversion": 1.0,
  "option_pts": 0.5,
  "hurdle_rate_pct": 7.5,

  "price_stack": {
    "subsidy_share": 0.0,
    "subsidy_floor_eur_mwh": 0.0,
    "ppa_share": 0.70,
    "ppa_floor_eur_mwh": 0.0,
    "ppa_cap_eur_mwh": 9999.0,
    "merchant_share": 0.30
  },

  "market_scenarios": {
    "upside": { "baseload_eur_mwh": 85, "capture_factor": 0.88, "curtailment_uncomp_pct": 0.02, "prob": 0.20 },
    "base":   { "baseload_eur_mwh": 65, "capture_factor": 0.82, "curtailment_uncomp_pct": 0.04, "prob": 0.50 },
    "stress": { "baseload_eur_mwh": 45, "capture_factor": 0.72, "curtailment_uncomp_pct": 0.09, "prob": 0.30 }
  },

  "_comment": "Illustrative/synthetic — this is the exact file behind the pitch.html worked example. 70% pay-as-produced PPA carries NO floor (ppa_floor_eur_mwh=0), so it behaves like merchant exposure once captured price drops — mirroring a 'conditional grid, no floor' asset. Drop this file into upload.html or run `python3 drr.py pitch_example.priced.json` to reproduce the numbers on the pitch page exactly."
}
