Build your own zero-emission electricity supply


This tool calculates the cost of meeting a constant electricity demand from a combination of wind power, solar power and storage for different regions of the world.

First choose your location to determine the weather data for the wind and solar generation. Then choose your cost and technology assumptions to find the solution with least cost. Storage options are batteries and hydrogen from electrolysis of water.

Fun things to try out:

  • remove technologies with the checkboxes, e.g. hydrogen gas storage or wind, and see system costs rise
  • set solar or battery costs very low, to simulate breakthroughs in manufacturing

See also this Twitter thread for an overview of the model's features and capabilities.

This is a toy model with a strongly simplified setup. Please read the warnings below.

Step 1: Select location and weather year

Select from map above.
Only years from 2011 to 2013 inclusive are available (until we get a bigger hard-drive).
If exponent is 0 generators are distributed evenly across the region, if it is 1 they are distributed proportional to capacity factor, if it is x they are distributed proportional to (capacity factor)^x.

Step 2: Fetch available wind and solar output

Warning: It takes about 4 seconds to fetch the available wind and solar output (longer for custom selections).

  Status: Waiting for job

Step 3: Choose technologies, costs and other assumptions

Demand should be large enough for utility-scale assets but small enough to neglect land availability constraints.
Individual cost assumptions can be changed below under "advanced assumption settings".

Choose which technologies should be included:

n-hourly, n<3 is very slow, big n solves faster (n=25 or n=49 give fast and relatively accurate results).
Default assumption from Danish Energy Agency, 2019; includes grid connection costs.
Default assumption from Danish Energy Agency, 2019; cost for DC capacity, assumes panel:inverter output ratio of 1.35.
Default assumption from Danish Energy Agency, 2019.
Default assumption from Danish Energy Agency, 2019; power costs include e.g. inverter.
Default assumption from Welder et al 2018 assumes salt caverns in suitable underground salt deposits. For aboveground steel talks, replace with 11 EUR/kWh.
Default assumption from Danish Energy Agency, 2019.
Default assumption from Danish Energy Agency, 2019.
Default assumption from Danish Energy Agency, 2019; assumption taken from that for natural gas CCGT.
Default assumption from Danish Energy Agency, 2019; assumption taken from that for natural gas CCGT.
Default assumption is based on open cycle natural gas turbine (OCGT).
Default assumption is based on new nuclear EPR reactor in Europe.

Step 4: Solve and wait for results

  Ready in around 10 seconds, status: Waiting for job


Average system cost [EUR/MWh]:

Cost is per unit of energy delivered. For comparison, household electricity rates (including taxes and grid charges) averaged 211 EUR/MWh in the European Union in 2018 & 132 USD/MWh in the United States in 2019

Dispatch over a year to meet the constant demand (electricity demand is the black line; you can zoom and pan to see the details; negative values correspond to storage consuming electricity):

Asset Capacity Cap Ftr used [%] Cap Ftr avail [%] Curtlmt [%] LCOE/S [EUR/MWh] Rel Mkt Value [%]
Solar MW
Wind MW
Battery power MW /
Battery energy MWh
Hydrogen electrolyser MW
Hydrogen turbine MW
Hydrogen energy MWh
Dispatchable1 MW
Dispatchable2 MW
Cap Ftr = Capacity Factor, used is after curtailment, avail is available before curtailment, Curtlmt = Curtailment, LCOE/S = Levelised Cost of Electricity/Storage per energy used, Rel Mkt Value = Relative Market Value (market revenue averaged over dispatch divided by average market price)

Background and warnings

This is a toy model with a strongly simplified setup. Please read the warnings before interpreting the results. In particular:

  1. Electricity systems with zero direct CO2 emissions can be built more cheaply by using additional technology options. The examples here are simply a toy model to put an upper bound on the costs for a very simple setup. Additional generation technologies which may reduce costs include using existing hydroelectric generators, biomass from sustainable resources (such as waste and agricultural/forestry residues), offshore wind, concentrating solar thermal, geothermal, ocean energy, nuclear and fossil/biomass plants with CCS. Two additional dispatchable technologies are provided under "advanced assumption settings". Additional storage technologies include redox flow batteries, compressed air energy storage, etc. Other options include allowing demand to adapt to renewable profiles (demand-side management).
  2. No import or export capacities with other regions are assumed, so each region must meet the baseload profile by itself. Existing and planned transmission grid connections between regions can reduce costs by up to 20% by smoothing wind over a continent-sized area (see e.g. this paper or this one).
  3. Including energy demand sectors other than electricity, like transport, heating and non-electric industrial demand can offer additional flexibility (e.g. load-shifting by battery electric vehicles and thermal storage for electrified heating), see e.g. this paper or this one.
  4. Costs here are for completely decarbonised electricity systems. Reaching lower levels of decarbonisation is much cheaper and doesn't necessarily require any storage at all. A non-zero carbon dioxide emission target and options for fossil-fuelled generators can be set under "advanced assumption settings".
  5. The time series for wind and solar generation are based on weather data from the European Centre for Medium-Range Weather Forecasts (ECMWF) ERA5 reanalysis dataset. Reanalysis datasets are generated by fitting numerical weather simulations to real measured data. In regions where real measurements are sparse, reanalysis data may deviate from observed weather patterns. In addition, reanalysis datasets may not always capture clouds accurately, so for PV generation it is advisable to include satellite observations in calculations, such as the CMSAF SARAH II dataset (available only for Europe and Africa). Weather data is converted to power generation using the atlite library. No further corrections are applied, except a 7% linear scaling down of solar generation time series to fit measured European capacity factors for 2011-2013.
  6. The wind profiles used here are converted from wind speed time series assuming an existing wind turbine model (Vestas V112 3MW with a hub height of 80m). Newer and future turbines will have higher capacity factors because e.g. they're taller, capturing wind energy where resources are better.
  7. Solar profiles are calculated assuming that panels in the northern hemisphere face south, and that panels in the southern hemisphere face north, with a slope of 35 degrees against the horizontal in both cases.
  8. Because the wind and solar profiles are computed using a fixed distribution of power plants, there is no possibility to optimise the distribution of power plants within each region to reduce the costs of providing a baseload profile.
  9. The costs for hydrogen storage (0.7 EUR/kWh) assume hydrogen gas is stored in salt caverns in suitable underground salt deposits based on assumptions from Welder et al 2018. These costs are higher than assumed in e.g. Table 3 of NREL 2009 (0.49 USD/kWh) using the most expensive option ("rock caverns created by excavating comparatively impervious rock formations"). Studies on salt deposit availability are available for most countries, see e.g. this map for Europe or Figure 2 of NREL 2009 for the United States. Where suitable salt deposits are not available, hydrogen can be stored in aboveground steel tanks for 11 EUR/kWh.
  10. Costs for the electricity grid inside each region and costs for ancillary services are not included.

To see an animation of a 95% decarbonised European electricity system, including more renewable energy technologies and cross-border transmission connections, see:

PyPSA-Eur-30 animation

Here asset lifetimes are all assumed to be 25 years, with the exception of batteries (15 years) and hydrogen electrolysers (20 years). Battery charging and discharging efficiencies are both 95%. Fixed Operation and Maintenance (FOM) costs are set at 3% of the investment cost of the asset per year.

Fuel cells could be used instead of combined or open cycle turbines for hydrogen to power. Fuel cells are less mature than turbines, but have better chances of cost reduction and efficiency improvement.

To avoid long job times, the default here is to run only for a single weather year sampled at most every 3 hours. You can find solved versions run against every hour over 31 weather years here at the WHOBS repository.

Only free software and open data

The graphical user interface, weather processing and optimisation model construction and post-processing are all built with free software and open data only. The commercial optimisation solver Gurobi is used for its high performance on this website, but it can also be replaced with an open source solver such as CLP if performance is not required. The code for all parts except the solver can be downloaded from the GitHub repository whobs-server. It uses the Python for Power System Analysis (PyPSA) energy optimisation framework, open weather data from the European Centre for Medium-Range Weather Forecasts (ECMWF) ERA5 reanalysis dataset, the atlite library for converting weather data to generation profiles, the Clp solver, D3.js for graphics, Mapbox, Leaflet and Natural Earth for maps, and free software for the server infrastructure (GNU/Linux, nginx, Flask, gunicorn, Redis).

New functionality coming soon

See the GitHub issue tracker.

Problems/comments/feedback/help out

If you encounter any problems please use the GitHub issue tracker. It would be helpful to note the jobid and any other error messages from your browser's JavaScript console (find the console via your browser's "Developer Tools").

If you want to help out and contribute improvements, please submit a pull request!

Any other feedback and comments can be sent to Tom Brown.

Contributors and thanks

We thank also all the developers of the other free software on which depends.

We thank Gurobi for providing a fully featured commercial licence for the optimisation solver in order to enhance the performance of this website.

Privacy statement

No personal information is stored on the server. There are no cookies.

Simulation assumptions and results for each job are stored on the server for statistical purposes.