Same inputs. Same outputs.
Every number traces to a documented physical or financial model, a dated dataset and, for stochastic studies, a recorded seed. The equations are on the methodology page.
Solar resource
NLR PVWatts/NSRDB weather where it is fetched, or a calibrated synthetic year from the site’s NASA POWER climatology, through one PVWatts v8-equivalent conversion chain.
Load model
Fourteen archetypes with weather response fitted to NLR End-Use Load Profiles, DOE building shapes, or your own 8,760-hour CSV or interval meter data.
Hourly dispatch
8,760-step chronological simulation with four selectable EMS policies, asymmetric storage losses, generator starts, fuel, and wet-stacking evidence.
Lifecycle economics
Explicit annual cash flows for capex, development, contingency, O&M, insurance, fuel, carbon, replacements, incentives, salvage, and decommissioning—with a matched baseline.
Sizing search
Exhaustive coarse grid, multi-start joint refinement, dispatch-policy co-optimization and adverse-scenario robust selection. The guarantee covers the evaluated candidates.
Disturbance resilience
Fleet-unit failures, seeded Monte Carlo repairs, outage survival, and NPS fixed/local/global resilience measures with recovery curves.
One PV chain for every weather source
Perez transposition, DeSoto cover and King spectral modifiers, the PVWatts NOCT cell temperature, the CEC “Standard” module table, itemized DC losses and a Sandia inverter with DC/AC clipping. Given PVWatts’ own weather it reproduces PVWatts 8.5.0 within ±0.5 % a year. Without a site dataset, a synthetic year is calibrated to the site’s NASA POWER climatology and labelled as an offline estimate.
POA = Perez(DNI, DHI, GHI, θ) · τ_cover · M_spectral
P_AC = min(η_inv · P_DC(POA, T_cell) · (1 − L_DC), 1/(DC:AC))Generator fuel & part-load
Each hour, PV serves load first, surplus charges the battery, the battery covers the remaining deficit, and the selected controller allocates the remaining deficit between storage and generation. Fuel follows per-unit curves fitted to generator datasheets by size class, with a 30 % minimum load per online unit; minimum-load surplus is stored or dumped explicitly, and the max-SOC policy reports sub-minimum wet-stacking.
fuel [L/h] = F₀ · P_online + F₁ · P_out
SOC limited by power, converter & usable depthValidation ladder
What the test harness checks on every change, and what it does not check yet.
Reference-case suite
In CI. All 20 synthetic cases: energy balance under 0.1 %, SOC bounds; the sizing search finds a 0 %-unmet design on every case.
Invariant checks
In CI. Dispatch rules, fuel curves, cash-flow reconciliation, incentive rules and the NPS-derived controllers.
External anchoring
In CI. PV chain vs PVWatts 8.5.0; offline yields vs PVWatts/PVGIS at 23 + 12 held-out sites.
Cross-engine · planned
Not yet. No REopt result is committed as a reference; the in-app REopt cross-check lets you compare a case yourself.
Roadmap · as of 2026-09-25
What runs today and what does not. No delivery dates are promised.
Robust multi-stage sizing
Exhaustive coarse search, multi-start joint refinement, policy co-optimization, risk-adjusted scenarios and all-scenario feasibility.
Nominal lifecycle economics
Dated, sourced cost defaults; generator overhauls; a federal incentive rules table applied only after you confirm eligibility.
Component disturbance and repair
Deterministic or seeded fleet failures, exponential repairs, the four NPS resilience measures and REopt-style outage survival.
Mixed-integer optimization core
A MILP formulation for continuous sizing and unit commitment. Today the search is a finite, declared candidate set.
Power flow
Voltage and thermal limits on real feeders. Today the engine is single-bus.
Subhourly dispatch
15-minute peaks and short storage events. Today dispatch and billing are hourly.