Renewables Vision: Free global renewable capacity factors

Mark Hammondon July 2, 2026

Capacity factors are the fraction of total capacity produced by a generator, and are a big bottleneck in building and using energy systems models. A 1 kW Solar panel will only produce some fraction of that kilowatt depending on the incoming sunlight.

These capacity factors are calculated from weather or climate data like ERA5 (a historical record), CMIP6 (future climate projections), or short-term forecasts (for example, the IFS).

It is hard for non-specialists to access these huge datasets and process them into renewable capacity factors efficiently. That's why we're providing Renewables Vision inside our free Convexity web app, to provide solar and wind capacity factors globally from 1940 to the present day, derived from the ERA5 reanalysis dataset. You can read more about our datasets on the Modelverse data page.

Customers on our Pro plan and above can access this data programmatically, pulling the same capacity factor datasets directly with code.

Get capacity factors in the web app

The quickest way to get data is the Convexity web app. On the map, select the Renewables Vision icon on the toolbar, click any location, select wind or solar and the year, and view your data straight away:

You can also access the data via the Timeseries Editor for a particular asset in a model, to automatically set the capacity factor for a generator at the model timestamps and at its mapped location.

Get capacity factors programmatically

If you have a paid Convexity license, you can access capacity factors programmatically using our flexible backend library pyconvexity. For example, here's how you pull hourly solar and wind capacity factors for a couple of specific generator types at a location:

import pyconvexity as px

# Connect to the capacity-factor API for a single historical weather year.
cf = px.BayesianApiCFProvider(
    api_key="YOUR_API_KEY",
    hist_start_year=2024,
    hist_end_year=2024,
)

# A location to query: latitude, longitude, technology, and turbine/panel type.
lat, lon = 37.4, -6.0
solar_asset = (lat, lon, "solar", "Generic_Solar")
wind_asset = (lat, lon, "wind", "Enercon_E82_3000kW")

# Warm the cache for both assets in one round-trip before reading them.
cf.prefetch([solar_asset, wind_asset])

# Pull the hourly capacity factors for the whole year (8,760 values each).
solar = cf.get_cf(lat, lon, 2024, "solar", "Generic_Solar")
wind = cf.get_cf(lat, lon, 2024, "wind", "Enercon_E82_3000kW")

Solar and wind over one week

Hourly capacity factor at Seville, Spain, 2024-06-17 to 2024-06-23

  • Solar PV
  • Wind
Real hourly capacity factors for a solar panel and a 3 MW Enercon E82 wind turbine, from the Renewables Vision API (based on ERA5 weather data). Solar rises and falls with the sun each day, while wind is intermittent and often picks up as solar drops off.

You can use this to run larger data fetches, like an ensemble of 50 historical weather years of capacity factors at a single location:

Fifty weather years of solar

Daily-mean solar capacity factor at Seville, Spain, one faint line per historical year

  • 50 weather years (1974–2023)
  • Median (p50)
  • p25 / p75
Real solar capacity factors across 50 historical years (19742023) from the Renewables Vision API (based on ERA5 weather data), at daily resolution and overlaid by day of year. The faint cloud is the climatological envelope; the solid line is the median across years and the grey lines the 25th and 75th percentiles — their gap is the year-to-year variability an ensemble captures.

The programmatic API can also give you data for an area instead of a single location, like the five days of wind capacity factors shown in this map of the UK and Ireland:

Wind moving across Ireland & Great Britain

Hourly wind capacity factor,

Animation — data pending
Real hourly wind capacity factors for a 3 MW Enercon E82 turbine across a square grid over Ireland and Great Britain, from the Renewables Vision API (based on ERA5 weather data). Watch weather systems sweep the resource across the region hour by hour.

Speed of access

The usual route for getting capacity factors like this has been to download climate or weather NetCDF (.nc) "cutouts" from an archive like ECMWF, and process them into capacity factors. These bulk files can take hours to request, transfer, and wrangle before you can read a single timeseries.

The recently developed Zarr file format can instead serve large multi-dimensional datasets much faster from the cloud. We use the fantastic resources of Earthmover to read climate data efficiently and convert it in our API into capacity factors. The Earthmover marketplace was an inspiration for our own Modelverse site, showing the power of a unified and browseable format to serve models and data.

The three datasets plotted in this post were generated with a single call to our API for each:

  • One point, one year of hourly data: 2 seconds
  • One point, 50 years of daily data: 8 seconds
  • The UK and Ireland region over 5 days: 60 seconds

This compares to hours queueing and downloading NetCDF datasets.

Methods

Detailed methodology is available in our product documentation. The overall process is:

  • Take climate data from ERA5 without bias correction for a uniform global product
  • Apply simple models of wind power curves and solar capacity functions
  • Process into the desired time and spatial resolutions

There are very useful existing services for doing this like renewables.ninja and atlite. We see the advantages of Renewables Vision as being:

  • Rapid delivery of both long timeseries and large areas
  • Immediate integration into energy systems models in Convexity

For more detailed questions, please get in touch at contact@bayesian.energy.

Ready to start?

Renewables Vision is free. Explore the data or jump straight into Convexity.