Build your own zero-emission electricity supply


This tool calculates the cost of meeting constant electricity demand from a combination of wind power, solar power and storage (using batteries and electrolysed hydrogen) 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.

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

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.

  Status: Waiting for job

Step 3: Choose technologies, costs and other assumptions

Demand is large enough for utility-scale assets but small enough to neglect land 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; includes grid connection costs.
Default assumption from Danish Energy Agency; cost assumes panel:inverter output ratio of 1.35.
Default assumption from Danish Energy Agency.
Default assumption from Danish Energy Agency; power costs include e.g. inverter.
Default assumption from Welder et al 2018; costs assume salt caverns in suitable underground salt deposits. For aboveground steel talks, replace with 11 EUR/kWh.
Default assumption from Danish Energy Agency.
Default assumption from Danish Energy Agency.
Default assumption from Danish Energy Agency; assumption taken from that for natural gas CCGT.
Default assumption from Danish Energy Agency; 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 20 seconds, status: Waiting for job


Baseload demand: MW

Asset Capacity Cap Ftr used [%] Cap Ftr avail [%] Curtlmt [%] 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

Average system cost [EUR/MWh]:


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. Additional storage technologies include redox flow batteries, compressed air energy storage, etc. Other options include demand-side management.
  2. No import or export capacities with other countries are assumed, so each country must meet the baseload profile by itself. Existing and planned transmission grid connections between countries can reduce costs by up to 20% by smoothing wind over a larger 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 electrified heating with thermal storage), 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.
  5. 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.
  6. 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.
  7. 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 country to reduce the costs of providing a baseload profile.
  8. The time series for wind and solar generation are based on 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).
  9. The costs for hydrogen storage assume hydrogen gas is stored underground. The costs for underground hydrogen storage are taken from Table 3 of this NREL study, using the most expensive option ("rock caverns created by excavating comparatively impervious rock formations"). Where salt deposits exist, salt caverns may be cheaper. Studies on salt deposit availability are available for most countries, see e.g. this map for Europe.
  10. Costs for the electricity grid inside each country 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 90%. Fixed Operation and Maintenance (FOM) costs are set at 3% of the investment cost of the asset per year.

The sources for most of the assumptions can be found in this table.

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

This tool is built only with free software and open data; the code for it can be downloaded from the GitHub repository whobs-server. In particular, 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

  • Real electricity demand profiles
  • Comparison to today's electricity prices
  • Other demand sectors (transport, heating and industry)
  • Demand-side management

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.

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.