DOI: 10.5281/zenodo.17925629
title: Public Utility Data Liberation Project (PUDL) Data Release

description: v2025.12.1 (2025-12-13)

This is a monthly release primarily intended to update the generatores reporting in EIA-860M, with some other minor improvements coming along for the ride. These include another new EIA Form 176 natural gas disposition table, and experimental access to the FERC XBRL derived databases using DuckDB. Details below.



Note: there was a misconfiguration in the build for v2025.12.0 that prevented it from deploying.




Enhancements








We are experimenting with distributing the XBRL-derived databases for FERC Forms 1, 2, 6, 60, and 714 using DuckDB, which (unlike SQLite) can be queried remotely when stored in a cloud bucket. This will also let us provide access to this relatively raw but complete FERC data through the PUDL Data Viewer. Note that the XBRL data only covers 2021 to the present. For links and an access example, see Raw FERC XBRL data converted to DuckDB (EXPERIMENTAL). See PR #4782 for this change, which is mostly implemented in the 1.7.x releases of our FERC XBRL Extractor.






New Data


EIA-176





Thanks to open source contributions from SwitchBox and funding from the NSF POSE program we continue to bring in more EIA natural gas data.





Added core_eia176__yearly_gas_disposition, which contains cleaned company-wide natural gas disposition data from Part 6B of the EIA 176 survey. See #4708 and #4765. Thanks to @MeadBarrel!







Expanded Data Coverage


EIA-860M







Updated EIA-860M with monthly data through October 2025. See #4788.






EIA-861








Added EIA-861 re-released final release data from 2024. See #4826 and PR #4827.






FERC Form 6










Updated to using the latest archive of FERC Form 6 to capture a few late revisions. See PR #4784.







New Data Tests & Validations








Added dbt data validations to check the uniqueness of natural primary keys in tables where some elements of the primary key contain NULL values, preventing them from being used explicitly as primary keys in SQLite. This only covers tables where we had already explicitly identified the natural primary key in our metadata notes. See PR #4811.






Bug Fixes








Improve the retry logic we use when uploading a PUDL data release to Zenodo: Catch common transient error status codes and retry the upload instead of continuing as if nothing had gone wrong. When retrying, restart the upload from the beginning of the file rather than uploading a zero-length file. Previously both types of errors (missing files and zero-length files) were only caught through manual inspection of draft data releases. See issue #4290 and PR #4778.




Remove row with plant ID 68815 and generator ID GAPPV that was erroneously included in the 2024 from the EIA 860 generators data. See #4769 and PR #4824.






Performance Improvements








Reduced peak memory usage for core_eia860m__changelog_generators from 22GB to 16GB. See issue #4686 and PR #4707.






Quality of Life Improvements






Added balancing_authority_code_eia and balancing_authority_name_eia to the set of plant-level attributes that are merged into the denormalized out_eia__monthly_generators and out_eia__yearly_generators tables, as multiple users have requested them. Most recently @sam-hostetter in issue #4772. See #4776.




Decouple the publication of Zenodo data releases from the nightly and release builds by creating a zenodo-data-release GitHub Actions workflow that can create a new archive of a PUDL data release from nightly or stable build outputs. This should reduce the idle capacity and runtime of our nightly build VM significantly, and also allow us to retry Zenodo release uploads when Zenodo flakes out. The nightly and release builds will now trigger the zenodo-data-release workflow using curl and the GitHub API. See issue #4775 and PR #4778.




Disabled the distribution of build outputs to S3/GCS during workflow_dispatch builds since these uploads are pretty robust, they slow down the build, we delete the outputs right after uploading them, and there are egress fees associated with sending the data to S3. Build artifacts are still uploaded to gs://builds.catalyst.coop. See PR #4778.




Reduced the size of our nightly build VM to 8 CPUs & 64GB RAM since that configuration works again after our performance improvements, and it’s cheaper and not that much slower than the bigger VM. See #4778.




Replaced fgd_sorbent_consumption_1000_tons with fgd_sorbent_consumption_tons and changed units, consumption tons, to be rounded to nearest 100 tons in the _core_eia923__yearly_fgd_operation_maintenance table. See issue #4301 and PR #4426.



Other PUDL v2025.12.1 Resources



PUDL v2025.12.1 Data Dictionary

PUDL v2025.12.1 Documentation

PUDL in the AWS Open Data Registry

PUDL v2025.12.1 in a free, public AWS S3 bucket: s3://pudl.catalyst.coop/v2025.12.1/

PUDL v2025.12.1 in a requester-pays GCS bucket: gs://pudl.catalyst.coop/v2025.12.1/

Zenodo archive of the PUDL GitHub repo for this release

PUDL v2025.12.1 release on GitHub

PUDL v2025.12.1 package in the Python Package Index (PyPI)


Contact Us

If you're using PUDL, we would love to hear from you! Even if it's just a note to let us know that you exist, and how you're using the software or data. Here's a bunch of different ways to get in touch:



Follow us on GitHub

Use the PUDL Github issue tracker to let us know about any bugs or data issues you encounter

GitHub Discussions is where we provide user support.

Watch our GitHub Project to see what we're working on.

Email us at hello@catalyst.coop for private communications.

On Mastodon: @CatalystCoop@mastodon.energy

On BlueSky: @catalyst.coop

On Twitter: @CatalystCoop

Connect with us on LinkedIn

Play with our data and notebooks on Kaggle

Combine our data with ML models on HuggingFace

Learn more about us on our website: https://catalyst.coop

Subscribe to our announcements list for email updates.