Nothing here is looked up from a table. Each source gets its own simulated hourly generation trace for a full 8,760-hour year — solar's day/night cycle with drifting cloud cover, wind's mean-reverting gusts and calms, nuclear's near-flat output punctuated by one planned refuelling outage, gas's demand-following daily curve. The capacity factor is then measured directly from that trace, not assumed:
Measured CF = mean(generation trace) / rated power (over the simulated year)
Capital recovery factor: CRF = r(1+r)^n / ((1+r)^n − 1), r = 7%, n = plant lifetime
Annualized capital = capital_cost($/kW) × CRF
LCOE ($/MWh) = (Annualized capital + O&M) / (Measured CF × 8,760 h/yr) × 1000
Because LCOE divides by the measured capacity factor, a source with a low CF is not automatically expensive — it only is if its capital and O&M costs are also high relative to the little energy it delivers. Push solar's capital-cost slider down and watch its bar in the comparison chart drop below gas's, even though solar's measured CF stays far below gas's. That is the real, non-obvious economics: capacity factor and LCOE are entangled, not interchangeable.
| Source | Default capex | Default O&M | Life |
| Solar PV | $900/kW | $15/kW-yr | 25 yr |
| Wind (onshore) | $1,300/kW | $40/kW-yr | 25 yr |
| Nuclear | $6,000/kW | $130/kW-yr | 40 yr |
| Gas (CCGT) | $1,000/kW | $250/kW-yr | 30 yr |
- Weather variability widens the day-to-day swing in cloud cover / gust strength (solar, wind); nuclear and gas are largely insulated from it, matching how dispatchable and near-baseload plants behave.
- Reset & reseed year draws a brand-new random 8,760-hour trace for all four sources at once, so the comparison bar chart always reflects a freshly measured year, not a cached one.