Published February 4, 2026 | Version v1
Dataset Open

ReEDS: Electricity demand profiles 2025

  • 1. ROR icon National Renewable Energy Laboratory
  • 2. Evolved Energy Research, LLC

Description

This record provides modeled hourly state-level electricity demand profiles for the contiguous United States (U.S.), produced by Evolved Energy Research (EER) using the EnergyPathways model and used in the Regional Energy Deployment System (ReEDS) model.

Additional details are provided in the ReEDS documentation.

Demand assumptions

Demand profiles represent gross end-use load (i.e., distributed generation is not subtracted) in hour-ending format, in units of [MWh/h].

Profiles are generated bottom-up using sectoral electricity demand assumptions described in the EER 2024 Annual Decarbonization Perspective (ADP) and corresponding Technical Documentation. The ReEDS User Guide provides a lookup table between the scenario naming used in the ADP and ReEDS, and the ReEDS documentation provides a high-level description of the scenarios.

Temporal resolution

Demand profiles are defined for 7 model years (2021, 2025, 2030, 2035, 2040, 2045, 2050); for each model year, 15 weather years (2007–2013 + 2016–2023) of bottom-up hourly profiles are provided. "Model" years define the sectoral mix of demand-site technologies and "weather" years define the temperature and calendar days (weekdays / weekends / holidays); both impact the hourly profiles. All profiles are at hourly resolution in U.S. Central Standard Time (UTC–06:00). For leap years, the final day of the weather year (December 31) is dropped, such that each weather year contains 8760 hours.

File structure

Modeled electricity demand profiles are saved as hierarchical Data Format (HDF5) files. The following Python function can be used to read a capacity factor .h5 file into a pandas dataframe:

import h5py
import pandas as pd def read_demand_profile(filepath): """ Read a demand profile from `filepath` and return a pandas dataframe. Usage: `df = read_profile('/path/to/filename.h5')` """ encoding = 'utf-8' with h5py.File(filepath, 'r') as f: years = list(f.keys()) first_year = years[0] not_states = ['columns', 'datetime'] states = [i for i in list(f[first_year].keys()) if i not in not_states] dictout = {} for year in years: for state in states: dictout[year,state] = pd.Series(f[year][state][:]) df = pd.concat(dictout, axis=1, names=('year','state')) df.index = pd.to_datetime( pd.Series(f[first_year]['datetime'], name='datetime') .str.decode(encoding) ) return df

Files

Files (382.1 MB)

Name Size Download all
md5:02aa8607339b482dc70af5facd009796
133.0 MB Download
md5:93c3381e19acc9ceedfc0a135d1e6370
131.1 MB Download
md5:385b0f7ef9117390a10ea2ada1c0961b
118.0 MB Download