Published October 15, 2026 | Version v2

Hourly wind and solar generation profiles for U.S. EIA-860 plants (2020–2024) driven by TGW meteorology (1980–2024)

  • 1. Pacific Northwest National Labratory
  • 2. ROR icon Pacific Northwest National Laboratory

Description

Dataset overview

This dataset provides hourly capacity-factor time series for every wind and solar generator in the contiguous United States listed in the U.S. Energy Information Administration (EIA) Form 860 surveys for 2020 through 2024. Generation is computed by running NREL’s reV with PySAM (windpower and pvwattsv5 modules) on plant inventories derived from EIA-860, with each generator forced by the IM3 Thermodynamic Global Warming (TGW) downscaled climate dataset for weather years 1980 through 2024.

For each EIA-860 plant year (the inventory of operating generators in a given vintage of EIA-860), 45 annual CSVs provide the hourly capacity factor of every generator under each historical weather year from 1980 to 2024. The data is intended to be aggregated at flexible scales — for example, to balancing authority (BA) level, or to nodes within a production cost model — supporting reliability assessments, long-horizon resource adequacy studies, and analyses of inter-annual variability, seasonality, and extreme weather events.

Citation

If you use this dataset, please cite it via the accompanying CITATION.cf or with the citation below:

McGrath, C., Bracken, C., Burleyson, C., & Voisin, N. (2026). Hourly wind and solar generation profiles for U.S. EIA-860 plants (2020–2024) driven by TGW meteorology (1980–2024) (v1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.20518257

License

Creative Commons Attribution 4.0 International (CC BY 4.0).

Dataset Structure

.
├── CITATION.cff
├── README.md
├── configs/
│   ├── eia_solar_configs_<infrastructure_year>.csv   # 2020–2024
│   └── eia_wind_configs_<infrastructure_year>.csv    # 2020–2024
├── solar/
│   └── <infrastructure_year>/                           # 2020–2024
│       └── solar_gen_cf_<weather_year>.csv     # 1980–2024 (45 files)
└── wind/
    └── <infrastructure_year>/                           # 2020–2024
        └── wind_gen_cf_<weather_year>.csv      # 1980–2024 (45 files)

Two indices are crossed:

  • Plant year (2020–2024) — the EIA-860 vintage that defines which generators exist, their capacities, and their characteristics.
  • Weather year (1980–2024) — the TGW historical weather year used to drive the generation model.

Holding the plant year fixed and varying the weather year yields a counterfactual time series of “what this fleet would have produced under each historical year of weather.”

File Formats

Plant configuration files (configs/)

One CSV per plant year and technology, derived from EIA-860 (and, for wind, the U.S. Wind Turbine Database and a curated power-curve database). Each row corresponds to a single generator within a plant.

Solar (eia_solar_configs_<year>.csv) columns include:

Column Description
plant_id_eia EIA plant ID
plant_id_gen_id_eia Combined <plant_id>.<generator_id> — joins to generation column names
plant_name_eia EIA plant name
generator_id EIA generator ID within the plant
operating_year Plant year (EIA-860 vintage)
state, county, lat, lon Location
ba, nerc_region Balancing authority and NERC region
system_capacity DC capacity (kW) used by pvwattsv5
azimuth, tilt, module_type, array_type, losses PySAM pvwattsv5 parameters
report_date, generator_operating_date Reporting and commissioning dates

Wind (eia_wind_configs_<year>.csv) columns include:

Column Description
plant_id_eia EIA plant ID
plant_id_gen_id_eia Combined <plant_id>.<generator_id> — joins to generation column names
plant_name_eia, generator_id, operating_year Plant identity
state, county, city, lat, lon Location
ba, nerc_region, iso_rto_code Power-system region
predominant_turbine_manufacturer, predominant_turbine_model Turbine type
system_capacity Plant capacity (kW) used by PySAM windpower
t_rated_power_kw, turbines_num Per-turbine rated power and count
wind_turbine_rotor_diameter, wind_turbine_hub_ht Rotor and hub geometry
wind_turbine_powercurve_windspeeds, wind_turbine_powercurve_powerout Stringified power-curve arrays
wind_farm_xCoordinates, wind_farm_yCoordinates Stringified turbine layout
cut_in_speed, cut_out_speed, wind_quality_class Operating bounds
power_curve_source, model_matched, manufacturer_matched Provenance flags

The combined plant_id_gen_id_eia field matches the column headers in the generation CSVs, enabling a join from a generation column back to its plant configuration.

Generation files (wind/, solar/)

Each annual CSV holds 8,760 hourly rows (the leap day is dropped on leap years for consistency across years).

Column Description
datetime UTC datetime, hour ending. First row is YYYY-01-01 01:00:00+00:00; last row is YYYY-12-31 00:00:00+00:00 of the following calendar instant.
<plant_id>.<generator_id> (wind), <plant_id>_<generator_id> (solar) Hourly capacity factor in the range [0, 1] for that generator

To convert capacity factor to absolute output (kW), multiply each value by the matching generator’s system_capacity from the configuration file.

Methods

The processing pipeline mirrors the structure documented in the foresight-gen repository, adapted to use TGW rather than HRRR as the weather forcing. At a glance:

  1. Plant configuration generation. EIA-860 plant inventories for 2020–2024 are processed in R, joined to PUDL records and (for wind) the U.S. Wind Turbine Database and a curated power-curve database, to produce one row per generator with all parameters required by reV.

  2. Weather preprocessing. TGW hourly fields are extracted at each plant location. For solar, GHI, temperature, and pressure are pulled directly and DNI is estimated using the DISC model. For wind, vertical profiles of wind speed are interpolated to fixed heights (20, 80, 110, 140, 200 m) using PCHIP interpolation, then sampled to each generator’s hub height.

  3. Generation. reV is run plant-by-plant with PySAM pvwattsv5 for solar and PySAM windpower for wind, using the per-generator parameters in the plant configuration files. Results are written as one annual CSV per (plant year, weather year, technology).

  4. Postprocessing. Generator-level profiles are passed through with minor cleanup; capacity factors are bounded to [0, 1].

Provenance

Notes and Caveats

  • Capacity factors are dimensionless in [0, 1]. To get power, multiply by system_capacity from the matching configuration file (kW for both technologies).
  • Datetimes are in UTC. Convert to local time with the plant’s longitude if alignment with regional load is needed.
  • The leap day (Feb 29) is omitted in leap years so every annual file has exactly 8,760 rows.
  • Some EIA plants are split into multiple “logical generators” (e.g., combinations of turbine models or array sub-blocks) to capture the heterogeneity inside a single plant. The plant_id_gen_id_eia field uniquely identifies each logical generator and joins to the column names in the generation CSVs.
  • A generator that is operational in plant year N but not in plant year N–1 will appear in the N fleet but not the N–1 fleet. Per-fleet files therefore have different column counts.
  • This dataset replaces an earlier internal version that incorrectly included raw (non-CF) wind values and incomplete solar coverage; both issues are resolved here.

Acknowledgments

This work was supported by the FORESIGHT project, an internal investment by Pacific Northwest National Laboratory (PNNL). PNNL is operated for the U.S. Department of Energy by Battelle Memorial Institute under Contract No. DE-AC05-76RL01830.

Related Resources

Files

configs.zip

Files (15.4 GB)

Name Size
md5:2e701d6ca8c9d591333fdc19ddb578ba
1.8 kB Download
md5:5af16fc5d1e0250fd934a34da227ebc7
2.9 MB Preview Download
md5:5cb4853c0126acbd5ccdb718cf545caf
224 Bytes Preview Download
md5:cb8c9a6eb565aa6085efd6d6e46442c2
12.5 kB Preview Download
md5:dd7582feaa6bf5b0988a903f01a5eafb
9.0 GB Preview Download
md5:9f4c86b5a16116c5d3c58fc79cbeea96
6.4 GB Preview Download

Additional details

Related works

Is variant form of
Dataset: 10.5281/zenodo.7901614 (DOI)