Build a quote
Methodology · engine 3.0.0 · reviewed 2026-09-25

Every equation behind the result

MicrogridModeler is a chronological techno-economic screening engine. This page publishes the implemented models, dispatch rules, the limits of the sizing search, the data sources, what the test harness checks, and the model boundaries.

Commercial quote: energy and cash-flow boundaries

The Quote Studio (commercial-quote-3.0) uses nominal dollars and an unlevered project comparison, with a separate customer loan or lease view. The Modeler equations follow below.

Quote Studio equations
QuantityImplemented model
Whole-site LCOE(net initial investment + PV(remaining grid bills + fuel + O&M + replacements)) / PV(served site kWh)
Utility-only LCOEPV(utility-only bills) / PV(the same served site kWh), at the same 5, 10, 15 or 20-year horizon
DER-only LCOEPV(net investment + fuel + O&M + replacements) / PV(onsite-origin energy delivered to load + renewable exports); storage counted once on delivery, grid-origin discharge excluded
TimingYear 1 uses entered prices. Operating cash flows occur at t = year; replacement purchases occur at t = year − 1. Discount factor = (1 + nominal discount rate)^(−t); default 7.0 % nominal.
Battery efficiencyCharge efficiency = discharge efficiency = √(battery round-trip efficiency) × PCS efficiency. Initial SOC = physical depth-of-discharge floor every year; operating reserve must be charged.
Battery agingRemaining capacity fraction = max(0, 1 − annual fade × age − cycle fade × cumulative discharged equivalent cycles / 1,000).
Gas HHV input (MMBtu/hour)[(half-load heat rate − full-load heat rate) × online rated kW + (2 × full-load heat rate − half-load heat rate) × output kW] / 1,000,000; zero when off.
Customer cash flowAvoided utility bill − remaining grid bill − fuel − customer O&M/replacements − loan or lease payments − lease buyout.

Solar and wind meet demand first. Staged natural gas and diesel fleets support economic, peak-period and backup-only operation. Optional generator charging and off-peak grid charging obey battery power, reserve and conversion limits. Stored energy is traced by origin, so grid-charged discharge is not labelled renewable. Monthly bills include charging imports. Dispatch is a chronological rule set, not optimized unit commitment. Separate outage studies start from the preceding modeled SOC and honour critical-load and fuel limits; they do not earn an assumed monetary reliability credit.

Each year is dispatched again with load growth, resource degradation and battery capacity fade. Replacement budgeting is annual: calendar life, full-equivalent discharge cycles or generator hours trigger costs at the next year boundary. Within-year replacement timing and downtime are outside this approximation.

Flat or weekday TOU energy rates, uniform or twelve monthly demand rates, fixed charges and exports are explicit. Complete 15-, 30- and 60-minute meter years can be imported with annual energy preserved; the hourly dispatch and billing model can understate subhourly demand. The two reference cases carry cited tariffs: Hawaiian Electric Schedule J (URDB, effective 2026-03-01) and Xcel Energy Minnesota General Service A14 (URDB, effective 2025-01-01), each with its listed simplifications. Solar defaults to a synthetic profile scaled to an editable annual yield; optional PVWatts provides a modeled typical year. No tax credit, deduction, salvage value or underwriting approval is assumed.

Open the Quote Studio · SAM levelized-cost reference

Direct answer. The engine runs an hourly, chronological energy balance for every year of the project, carries battery state of charge forward, records generator surplus and renewable curtailment explicitly, rejects designs that violate supported constraints, and keeps the Pareto-efficient alternatives. With historical weather attached, it re-dispatches the fixed design and up to 18 sizing finalists across every year, applies a feasible-year probability gate and ranks passing finalists by P90 high lifecycle cost.
Step 1

Inputs

Site, 8,760-hour load, component sizes, costs, operating limits and project horizon

Step 2

Resource

Hourly weather from NLR PVWatts/NSRDB, a historical or uploaded year, or a calibrated synthetic year labelled as an offline estimate, converted by one PVWatts v8-equivalent chain

Step 3

Dispatch

Every hour closes an explicit energy balance and carries battery state of charge forward

Step 4

Feasibility

Unmet load, renewable fraction, excess energy and operating reserve are checked as constraints

Step 5

Economics

Each project year is re-dispatched; nominal cash flows are discounted at the nominal rate

Step 6

Resilience and evidence

Grid outages and component failures and repairs are scored; inputs, provenance, outputs and a fingerprint travel together

PV conversion chain

One chain converts every irradiance source (PVWatts weather, historical NSRDB years, uploaded files and the synthetic year) to AC output, so the same array means the same thing everywhere. Given PVWatts’ own weather, it reproduces PVWatts 8.5.0 within ±0.5 % a year and ±2 % a month in the test harness.

PV conversion chain
QuantityImplemented model
Sun positionSpencer (1971) declination and equation of time; cos θz = sin φ sin δ + cos φ cos δ cos ω; refraction corrected
TranspositionPerez (1990) anisotropic sky, all-sites coefficients; isotropic diffuse for zenith 87.5–90° (PVWatts)
Cover and spectrumDeSoto cover transmittance with anti-reflective glass; King/DeSoto air-mass modifier
Row self-shadingPVWatts v8 geometry at ground-coverage ratio 0.4, fixed open-rack arrays only
Cell temperatureNOCT model with PVWatts wind factor 0.51; installed NOCT 45 °C open rack, 49 °C roof
ModuleBilinear table of the PVWatts v8 “Standard” CEC single-diode module; γ = −0.37 %/°C
DC lossesderate = 1 − DC losses (inverter excluded); PVWatts Table 6 defaults total 14.08 %
InverterSandia model at 96 % nominal efficiency; AC output clipped at 1 / (DC/AC ratio) per kW DC (default 1.2)
Dual-axis tracking keeps the plane normal to the sun (angle of incidence 0). An uploaded plane-of-array series skips transposition and cover. A legacy latitude-preset generator (Hottel clear sky, Erbs split, isotropic sky) remains only for a site with no climatology; it is labelled uncalibrated because it missed PVWatts by −40 % to +18 %.

Calibrated synthetic weather

When no site dataset is used (the 20 reference cases, the offline fallback), the engine generates a weather year from the NASA POWER monthly climatology for the site (bundled on a 2° grid, 2001–2020 means). It is an estimate and is labelled as one.

Synthetic weather generator (mgm-weather-v2)
QuantityImplemented model
Clear skyIneichen–Perez (2002), monthly Linke turbidity solved so clear-sky GHI matches NASA POWER
Daily clear-sky indexBeta distribution on [0.02, 1.05], dispersion r = −0.8718x̄² + 0.8361x̄ + 0.3373
Day-to-day persistenceGaussian-copula AR(1), lag-1 correlation 0.29 (fitted to NSRDB typical years at 20 sites)
Monthly energyEach month is rescaled so its GHI equals the site climatology exactly
Beam/diffuse splitDISC (Maxwell 1987)
Temperature, wind, albedoMonthly NASA POWER means with a diurnal wave; monthly albedo includes seasonal snow

Resource accuracy: offline synthetic vs PVWatts and PVGIS

The offline pipeline (bundled climatology, synthetic year, the chain above; open rack, tilt near latitude, equator-facing, 15 % DC losses) against NLR PVWatts 8.5.0 and JRC PVGIS 5.3 at the same geometry. Calibration sites: 19 of 23 within ±5 % of the closer reference, mean absolute error 2.8 %. Held-out sites, checked against PVWatts only: 8 of 12 within ±5 %, mean 4.6 %. Single months can differ by 10–40 %. The largest misses come from the input data: NASA POWER’s GHI runs about 10 % above both references at Nairobi.

Annual specific yield, kWh per kWp, offline model against PVWatts and PVGIS
SiteSetModel kWh/kWpPVWattsPVGISError vs closer
Phoenix, AZ33.45°, -112.07° · tilt 33°calibration1,8081,7671,725+2.3 % PVWatts
Seattle, WA47.61°, -122.33° · tilt 48°calibration1,1191,0571,088+2.8 % PVGIS
Miami, FL25.76°, -80.19° · tilt 26°calibration1,5231,5341,439−0.7 % PVWatts
Minneapolis, MN44.98°, -93.27° · tilt 45°calibration1,3091,3431,352−2.6 % PVWatts
Honolulu, HI21.31°, -157.86° · tilt 21°calibration1,7001,6011,678+1.3 % PVGIS
Anchorage, AK61.22°, -149.90° · tilt 60°calibration879882932−0.3 % PVWatts
Nairobi, Kenya-1.29°, 36.82° · tilt 5°calibration1,5571,4221,424+9.3 % PVGIS
Sydney, Australia-33.87°, 151.21° · tilt 34°calibration1,4621,4911,471−0.6 % PVGIS
Denver, CO39.74°, -104.99° · tilt 40°calibration1,6071,6161,721−0.5 % PVWatts
Boston, MA42.36°, -71.06° · tilt 42°calibration1,2401,3151,310−5.3 % PVGIS
London, UK51.51°, -0.13° · tilt 52°calibration979858948+3.3 % PVGIS
Singapore1.35°, 103.82° · tilt 5°calibration1,2841,2261,303−1.4 % PVGIS
Houston, TX29.76°, -95.37° · tilt 30°calibration1,3941,4051,320−0.8 % PVWatts
Atlanta, GA33.75°, -84.39° · tilt 34°calibration1,3591,3951,362−0.2 % PVGIS
Johannesburg, South Africa-26.20°, 28.05° · tilt 26°calibration1,7211,7321,634−0.6 % PVWatts
Santiago, Chile-33.45°, -70.67° · tilt 33°calibration1,623—1,727−6.0 % PVGIS
Perth, Australia-31.95°, 115.86° · tilt 32°calibration1,6781,6631,595+0.9 % PVWatts
Fairbanks, AK64.84°, -147.72° · tilt 60°calibration9699201,017−4.7 % PVGIS
Tromsø, Norway69.65°, 18.96° · tilt 60°calibration663603677−2.1 % PVGIS
Cairo, Egypt30.04°, 31.24° · tilt 30°calibration1,7781,7361,715+2.4 % PVWatts
New Delhi, India28.61°, 77.21° · tilt 29°calibration1,4441,4191,528+1.8 % PVWatts
Kyrgyzstan (41 N, 74 E)41.00°, 74.00° · tilt 41°calibration1,510—1,708−11.6 % PVGIS
Afghanistan (31 N, 65 E)31.00°, 65.00° · tilt 31°calibration1,856—1,800+3.1 % PVGIS
Albuquerque35.08°, -106.65° · tilt 35°held-out1,7801,797—−0.9 % PVWatts
Chicago41.88°, -87.63° · tilt 42°held-out1,2151,293—−6.0 % PVWatts
Mexico City19.43°, -99.13° · tilt 19°held-out1,6241,688—−3.8 % PVWatts
Bogota4.71°, -74.07° · tilt 5°held-out1,2651,320—−4.1 % PVWatts
Madrid40.42°, -3.70° · tilt 40°held-out1,4961,470—+1.8 % PVWatts
Cape Town-33.92°, 18.42° · tilt 34°held-out1,6951,630—+4.0 % PVWatts
Tokyo35.68°, 139.69° · tilt 36°held-out1,1921,274—−6.4 % PVWatts
Lagos6.52°, 3.38° · tilt 7°held-out1,2731,242—+2.5 % PVWatts
Reykjavik64.15°, -21.94° · tilt 60°held-out714692—+3.1 % PVWatts
Manila14.60°, 120.98° · tilt 15°held-out1,3751,277—+7.7 % PVWatts
Lima-12.05°, -77.04° · tilt 12°held-out1,4971,347—+11.1 % PVWatts
Riyadh24.71°, 46.68° · tilt 25°held-out1,8101,743—+3.9 % PVWatts

Reference yields: tools/fixtures/resource (PVWatts fetched 2026-09-24/25; PVGIS PVcalc 2005–2023, 18.9 % total loss). Gated by npm run validate:resource.

P50/P90 and historical years

Uncertainty budget. P90 = P50 × (1 − 1.2816σ), with σ the root-sum-square of year-to-year variability (the site’s NASA POWER 2001–2025 annual GHI coefficient of variation), a resource-dataset term (NSRDB or PVGIS 4.1 %, NASA POWER or calibrated synthetic 6 %, user data 5 %, legacy presets 20 %) and 3 % for model and losses. The 10-year P90 divides only the year-to-year term by √10. The curve shows 40 quantiles of that distribution, not 40 simulated years. It is a planning screen, not a lender-grade study.
Historical-year gate. The importer accepts normalized PV production, plane-of-array irradiance, or complete GHI + DNI + DHI records, including NSRDB historical years. Each year must contain exactly 8,760 unique non-leap hours after explicit leap-day removal; missing, duplicate and invalid rows are rejected without interpolation. The fixed design and up to 18 optimizer finalists are evaluated over every year; a finalist must meet the selected pass probability, then P90 high NPC selects among passing designs. NSRDB is satellite-derived and modeled, not ground-measured.

Utility tariffs and bill reconstruction

Simple-rate screening or full OpenEI URDB rate structures, priced against the same hourly grid exchange.

Simple builder

Fast scenario setup

Flat or weekday TOU energy, monthly demand, fixed charge, net metering or a custom export credit, and explicit import/export limits.

URDB import

Complex rate fidelity

Weekday/weekend schedules, graduated energy tiers, monthly and TOU demand tiers, fixed and minimum charges, and export rules, following REopt’s URDB semantics.

Rate-selection boundary. A location lookup seeds a utility average (EIA-861 2024, adjusted by the EIA state price trend through July 2026, labelled as an estimate), not a tariff. Import and verify the customer’s applicable tariff. Demand ratchets across months and coincident-peak charges are outside the bill engine. Net-metering credits are capped at energy charges by default.

8,760-hour dispatch, storage and fuel

Renewables serve load first, then storage; the battery follows explicit power and energy bounds; the generator fleet closes the remaining deficit.

Dispatch, storage and fuel
QuantityImplemented model
Battery chargeEₜ₊₁ = min(Emax, Eₜ + Pcharge·ηcharge·Δt)
Battery dischargeEₜ₊₁ = max(Emin, Eₜ − Pdischarge·Δt/ηdischarge)
Efficiency splitηcharge = ηdischarge = √(DC round-trip) × converter efficiency (defaults 0.975 and 0.96)
Battery aging (Modeler)REopt.jl LFP state of health: calendar and cycle fade, replacement at 80 % (augmentation optional)
Generator minimum outputPgen ≥ 0.30 × rated kW for each online unit
Fuel curve, per online unitF [L/h] = F₀·Ponline + F₁·Pout; datasheet size classes, e.g. 75–300 kW: F₀ 0.0335 L/h per kW, F₁ 0.2448 L/kWh
Hourly balanceLoad + charge + curtailment = PV + wind + discharge + generator + grid import − grid export + unmet
Renewable fractionRenewable energy serving load / total served load; battery discharge is attributed by charging origin
Load-following

Battery first, perfect 24-hour foresight

The generator starts only for a real deficit. Once committed, it can stay on and bank energy until the battery covers the next 24 hours of net deficit, using the modeled year’s own load and renewable output: a perfect forecast, so an upper bound on a real controller.

Cycle-charging

NPS favour-diesel policy

When the generator is needed, committed units run at rated power; load is served first, usable surplus charges storage, and any remainder is recorded as dumped generator energy.

Diesel-first

NPS legacy policy

Renewables serve load first, then diesel precedes the battery. The generator does not start solely to charge storage; unavoidable minimum-load surplus can still be stored.

SOC-maintaining

NPS maximum-reserve policy

Diesel protects the battery’s maximum SOC and storage discharges only after renewable and generator capacity. Sub-minimum operation is allowed and reported as wet-stacking.

Grid-connected. Rule-based chronological dispatch, not an optimizer. Time-of-use hours come from the tariff’s next 24 hours; demand-charge targets are set each midnight from the day’s load and renewable forecast and ratchet up with the month’s peak. When time-of-use arbitrage competes for battery energy, the month’s peak tip is still shaved down to the level one full discharge can cover. By default both use perfect forecasts of the modeled year (the day ahead and the month’s peak); "persistence" mode uses yesterday’s profile and the previous month instead. Perfect-forecast results are an upper bound on what a real controller achieves; choose the persistence forecast for a realistic range. A backup reserve is never discharged in normal operation and is released in outages. The generator start-up delay applies to outage and disturbance islanding, not to normal dispatch.

Component disturbance, repair and resilience

Seeded fleet-unit failures, repair-driven capacity restoration, and the four resilience measures implemented in NPS Microgrid Planner v3.1, adapted under its MIT license.

Resilience measures
QuantityImplemented model
Stochastic component failureFailedᵢ ~ Bernoulli(passet), independently for each exposed fleet unit
Stochastic repair timeTrepair,ᵢ ~ Exponential(mean = MTTRasset); deterministic mode uses Trepair = MTTR
Hourly availabilityAasset(t) = [Nunits − Σᵢ 1(Trepair,ᵢ > t)] / Nunits
Load satisfactionS(t) = min(1, Psupplied(t) / Pcritical-load(t))
Invulnerability–recoveryRIR = 0.5 · S(tevent) + 0.5 · [Σ Eserved / Σ Ecritical-load]
Average demand performanceRD = (1/T) · Σt min(1, Psupplied(t)/Pdemand(t))
Average peak-demand performanceRP = (1/T) · Σt min(1, Psupplied(t)/Pannual-peak)
Median-demand performanceRM = average S(t) over hours with demand above the annual median
Shift methodsRlocal/global = average R over sampled disturbance start times in the local/full-year window
Outage survival follows REopt’s outage simulator per start hour (serving from the battery before the generator, where REopt starts the generator first) and reports a survival curve and mean unserved energy. Fixed, local-shift and global-shift disturbance results include all four NPS measures, P95 energy not served, probability of fully serving the event, recovery time and the seeds.

Sizing search and lifecycle economics

A transparent sampled search with a bounded guarantee, then a cash-flow model built from the dispatch. Federal credits come from a dated rules table (policy as of 2026-09-24) and apply only after you confirm eligibility.

Sizing and economics
QuantityImplemented model
RatesDiscount and escalation rates are nominal; real rate = (1 + nominal)/(1 + inflation) − 1 is shown alongside
Net present costNPC = capex + Σₜ nominal costₜ/(1 + d)ᵗ + PV(value of lost load) − PV(salvage) − PV(credits)
Cash NPCThe same without the value-of-lost-load penalty (compared with REopt)
Levelized costLCOE = PV(costs excluding value of lost load) / Σₜ servedₜ/(1 + dreal)ᵗ
Generator overhaulEvery overhaul interval of run hours costs 25 % of installed cost; replacement after two overhauls
Sizing objectivemin NPC(x), subject to dispatch balance, SOC and power bounds, and user feasibility limits
Sampled-search guaranteex* = arg min NPC(x) over the feasible candidates actually evaluated
Risk-adjusted objectiveNPCrisk = E[NPCscenario] + λ · (max NPCscenario − E[NPCscenario]), λ = 0.5
Pareto decision setKeep x when no feasible y is no worse in NPC, capex, fuel and renewable share and strictly better in one
What “deterministic” means here. Identical inputs evaluate the same candidates, produce the same hourly series and return the same recommendation and Pareto set. The coarse grid (up to 7 PV × 7 battery × 5 generator × 5 wind points) is exhaustive; the four cheapest feasible basins are refined jointly in the Modeler and all four dispatch policies are co-optimized. Robust mode screens 12 finalists under expected, +10 % load, −15 % renewables and combined-downside cases and requires feasibility in all of them. When diesel is allowed off-grid, the grid always contains a generator of at least 1.1 × peak, so a 0 %-unmet candidate exists. This finite search is not a continuous-variable optimum; the reported gap is only the NPC spread among the best neighbours.

What the test harness checks

Every command below runs in continuous integration on each change. The list says what each one does and does not test.

Validation commands and their scope
CommandScope
npm run validateAll 20 reference cases: energy balance under 0.1 % of load, SOC bounds, plausible NPC and LCOE; NPC reconciles with the cash flow on 3 cases
npm run validate:optimizerThe sizing search finds a 0 %-unmet design on all 20 reference cases (off-grid, four strategies, two seeds); API, worker and schema checks
npm run validate:resourceConversion chain vs PVWatts 8.5.0 hourly at Phoenix, Sydney and Anchorage (annual within ±0.5 %, months within ±2 %); three live PVWatts configurations within 0.3 %; the offline table below
npm run validate:dispatch, validate:econ, validate:commercialDispatch rules, fuel curves, interval import, nominal economics, incentives, Quote Studio finance and reports
npm run validate:npsInvariants of the NPS-derived controllers and resilience scores (balance, bounds, seed reproducibility); it does not compare against Microgrid Planner outputs
npm run validate:reoptProject-to-REopt scenario mapping and units; no REopt results are compared
Not yet tested. No REopt result is committed as a reference, so REopt parity is not claimed; the in-app REopt cross-check lets you compare a case yourself. The 20 reference cases are synthetic regression anchors, not measured projects.

Assumptions and model boundaries

These statements are part of the result.

Chronology. One 8,760-hour resource and load shape is re-dispatched for every project year. PV degradation and load growth change the hourly magnitudes; the weather year repeats.
Single-bus boundary. The engine closes an energy balance at one bus. It is not AC power flow, protection coordination, cable sizing or a transient stability study.
Generator model. Linear per-unit fuel curves from datasheet size classes, a 30 % minimum load per online unit, staged multi-unit fleets, operating reserve and optional minimum up/down time. Nonlinear manufacturer curves are not modeled.
Battery model. Usable energy, separate charge and discharge power, efficiencies, SOC limits and REopt.jl LFP fade. Cell voltage, temperature and rainflow counting are out of scope.
Disturbance model. Independent Bernoulli failures and exponential repairs around the entered mean. Correlated or network-topology failures are not modeled.
Economics. Nominal ledger at a nominal discount rate (Modeler default 8 %, inflation 2 %). Every default cost is dated and sourced in the assumptions registry. NPC includes the value of lost load ($5/kWh default); LCOE excludes it.

Data sources

Only sources the code calls or bundles are listed. Satellite and model products are described as what they are.

Data sources in use
SourceWhat it isUsed for · vintage
PVWatts v8National Laboratory of the Rockies (NLR, formerly NREL)Modeled typical meteorological year from the NSRDB Physical Solar Model (satellite-derived), run through PVWattsPrimary hourly solar resource for the modeler, calculators and quotes. Station-specific, reported per run (e.g. "NSRDB PSM V3 GOES tmy-2020", "NSRDB PSM V4 Polar tmy-2023").
NSRDB GOES Aggregated PSM v4National Laboratory of the Rockies (NLR, formerly NREL)Satellite-derived hourly irradiance for specific historical years (modeled, not ground-measured)Historical weather-year risk (P90 lifecycle cost, feasible-year probability). Years 1998–2025.
Solar Resource Data v1National Laboratory of the Rockies (NLR, formerly NREL)Monthly averages of the SUNY satellite solar radiation model (Perez et al. 2002) — a satellite-model average, not a measurementMonthly irradiance on the Solar Resource calculator. 1998–2009 average ("Perez-SUNY/NREL, 2012").
WIND Toolkit (SAM .srw download)National Laboratory of the Rockies (NLR, formerly NREL)WRF mesoscale model hindcast (modeled, not measured) of hourly wind, temperature and pressureSite wind series for continental-US sites, when the service is healthy. Years 2007–2014 (REopt uses 2012).
NASA POWER climatology (bundled grid)NASA Langley Research Center, POWER project (resampled by MicrogridModeler)Monthly means of satellite irradiance and reanalysis meteorology, resampled to a 2° land gridOffline calibrated synthetic weather, site climate/albedo/elevation defaults, P50/P90 interannual variability, default wind speed. POWER v10.0.0, 2001–2020 monthly means; interannual GHI CoV 2001–2025.
Calibrated synthetic weatherMicrogridModelerSynthetic weather year generated from a monthly climatology (a model, labelled as an estimate)Solar and weather for the 20 reference cases (on the site and through the API benchmarkKey); labelled as an offline estimate. mgm-weather-v2 (2026-09-24); validated against PVWatts/PVGIS at 23 sites.
Zippopotam.usZippopotam.usPostal-code to place-name and coordinate lookupLocating a site from a postal code. Live service.
PVGIS 5.3 TMYEuropean Commission Joint Research Centre (JRC)Typical meteorological year from satellite (PVGIS-SARAH3) or reanalysis (PVGIS-ERA5) dataSecond solar source where PVWatts has no coverage or is unavailable. Reported per run, e.g. "PVGIS-SARAH3 TMY 2005–2023".
NASA POWER hourlyNASA Langley Research Center, POWER projectSatellite (CERES SYN1deg, 1°) irradiance and MERRA-2 reanalysis meteorology — regional estimates, not site measurementsThird solar source (typical-year rescaled) and the wind series outside WIND Toolkit coverage. One complete year (default 2025).
GeoNames citiesGeoNames.org, CC BY 4.0Gazetteer of populated places: names, English and national-language alternate names, first-level regions, coordinates and populationOffline place-name search in the location picker (type a city, get its coordinates). cities5000 export of 2026-09-25 (hashes in public/data/places/v1/meta.json).
Natural Earth 1:110m countriesNatural Earth, public domainGeneralised country outlines at 1:110 million scaleThe click-to-pick world map, and naming the country of a clicked or pasted coordinate. Version 5.1.2.
Time-zone boundaries (tz-lookup)timezone-boundary-builder via @photostructure/tz-lookup (CC0-1.0)Compressed IANA time-zone polygons, bundled offlineSite IANA time zone → standard UTC offset and DST calendar. Package 11.7.0.
Utility average rates (EIA-861 2024 via NLR/OEDI ZIP look-up) with EIA state trendU.S. Energy Information Administration; NLR/OEDI; U.S. Census Bureau (ZCTA points)Annual utility average revenue per kWh (revenue ÷ sales), not a tariff; adjusted by the EIA Electric Power Monthly state price trend and labelled as an estimateDefault electricity rates in the calculators, city pages and the Modeler location lookup. EIA-861 2024 final data; OEDI ZIP look-up (2024) published 2025-11-10; EIA Electric Power Monthly through July 2026.
OpenEI Utility Rate Database (URDB)OpenEI / NLRUtility tariff structures as published in URDB (import a rate JSON; the Quote Studio reference cases cite URDB entries)Complex tariffs in the Modeler (tiers, TOU and demand schedules, fixed and minimum charges); the cited reference tariffs in the Quote Studio. Per imported rate (effective date carried with the rate).
End-Use Load Profiles (ResStock 2025 R1, ComStock 2025 R3)NLR (formerly NREL)Simulated building-stock load profiles; the engine bundles degree-day coefficients fitted to their monthly energy, not the profiles themselvesSeasonal and weather response of the archetype load shapes. ResStock 2025 release 1 and ComStock 2025 release 3, AMY2018 weather.
REopt.jl default costs (ATB 2024 size classes)NLR (formerly NREL), REopt.jlPublished default capital and O&M costs for PV, storage, wind and generatorsEditable cost defaults in the Modeler and Quote Studio (each value is dated in the assumptions registry). REopt.jl commit 97119a8 (2026-09-18); NREL ATB 2024.
EIA fuel pricesU.S. Energy Information AdministrationPublished U.S. average diesel (weekly) and natural gas (monthly) pricesDefault diesel and gas prices (dated; editable). Diesel: week of 2026-09-21; commercial gas: June 2026.
REopt API v3NLR (formerly NREL)Mixed-integer optimization run on NLR serversOptional REopt cross-check of a Modeler project, run only when you press the button. REopt API stable.
Alternative Fuel Stations (AFDC)NLR (formerly NREL), U.S. DOE Alternative Fuels Data CenterStation locations and connector counts as reported to the AFDCThe EV charging station finder. Live service.

Implemented and tested in the engine, not yet reachable from the app: NASA POWER climatology (point API). Results do not use them today.

Methods

Human-readable

Public methodology

HTML and Markdown publish the equations, scope and citations without a login.

Open methodology.md
Machine-readable

Reference-case data

Every synthetic reference case exposes inputs, starting sizes, provenance and computed outputs as JSON.

Open benchmarks.json
Headless

OpenAPI contract

The same simulation by reference-case key or a complete project payload.

Read API docs