pudl is a free, open source data engineering & integration project written in Python and released under MIT. It has 612 GitHub stars, 151 forks and 502 open issues, and was last pushed 15 hours ago. On this registry it ranks #45 of 53 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available. It gained 2 stars over the last 30 tracked days.

What is pudl?

PUDL (the Public Utility Data Liberation Project, pronounced "puddle") is an open-source Python data processing pipeline that turns US government energy data published as spreadsheets, CSV files, and databases into a unified, analysis-ready resource for climate advocates, researchers, policymakers, journalists, and small businesses.

What it is

PUDL is an ETL project maintained as a Python codebase under the MIT licence. It lives in the data engineering and integration space: the pipeline ingests raw US energy data released by federal agencies, including EIA-860, EIA-923, and EPA sources such as CEMS, and converts those heterogeneous files into a single coherent dataset. It is published by Catalyst Cooperative, tracked with a Zenodo DOI for citation, and described by its maintainers as actively developed.

The concrete problem it solves is data preparation cost. Hundreds of gigabytes of valuable energy data are published by US government agencies, but that material is difficult to work with in programmatic form, arriving as spreadsheets, CSV files, and databases with inconsistent structures. PUDL replaces the manual, per-source cleaning and joining work that each analyst would otherwise repeat from scratch, so users spend their time on novel analysis rather than on reconciling file formats and identifiers.

Key capabilities

  • An open-source ETL pipeline that ingests original government spreadsheets, CSV files, and databases and emits a unified resource.
  • Coverage spanning EIA-860 and EIA-923 datasets alongside EPA and CEMS emissions material, as reflected in the project's topic list.
  • Subjects addressed across the pipeline include coal, electricity, emissions, and energy system analysis.
  • Continuous integration through pytest workflows, coverage reporting on Codecov, and pre-commit CI hooks.
  • Documentation published at docs.catalyst.coop/pudl/en/latest, with a docs build workflow on every push to main.
  • Distribution channels beyond the repository: a dataset on Kaggle, an entry in the AWS Open Data Registry, and a citable Zenodo DOI at 10.5281/zenodo.3404014.
  • Scheduled office hours for one-on-one conversations with the maintainers, plus an Open Collective donation channel.

Who users are and how they work

  • Researchers use the unified output to skip source-by-source data wrangling and move directly to analysis.
  • Climate advocates and grassroots organizers gain access to energy data that would otherwise require commercial licensing or substantial in-house engineering.
  • Journalists use the pipeline for reporting that depends on consistent plant-level, generator-level, and emissions figures.
  • Policymakers and their analysts work from a common derived dataset rather than from individually reconciled agency releases.
  • Small businesses that cannot fund commercial data subscriptions use the pipeline, documentation, and published Kaggle dataset instead.

Getting started

The README excerpt does not spell out a single install command, so the practical entry points are the documentation at docs.catalyst.coop/pudl/en/latest and the pre-built dataset published on Kaggle and in the AWS Open Data Registry. Users who want the pipeline itself should follow the documentation site, which is the deployment and usage reference maintained by the project.

How it compares

No comparable or competing products are named in the available facts, so PUDL stands alone in this registry entry. There is no paid product list available to contrast against on licence, hosting, or cost model.

When to use it — and when not to

A self-hoster must operate a Python pipeline that reads large volumes of government source files and produces a unified database, and is therefore taking on a data engineering workload rather than a small script; the README excerpt does not document a hosted turnkey service beyond the published Kaggle and AWS Open Data Registry copies. Anyone who only needs a handful of figures for a one-off question should likely pull the published dataset instead of running the full pipeline. The honest weakness is backlog: 502 open issues and a README excerpt that is long on badges and framing but thin on concrete installation instructions, which means new users depend on the external docs site and on asking questions during the project's office hours.

project readme (upstream, from github) — read inline

=============================================================================== The Public Utility Data Liberation Project (PUDL)

.. readme-intro

.. |repo-status| image:: https://img.shields.io/badge/repo%20status-active-success :target: https://www.repostatus.org/#active :alt: Project Status: Active .. |pytest| image:: https://img.shields.io/github/actions/workflow/status/catalyst-cooperative/pudl/pytest.yml?event=merge_group&label=pytest :target: https://github.com/catalyst-cooperative/pudl/actions?query=workflow%3Apytest :alt: PyTest Status .. |codecov| image:: https://img.shields.io/codecov/c/github/catalyst-cooperative/pudl?style=flat&logo=codecov :target: https://codecov.io/gh/catalyst-cooperative/pudl :alt: Codecov Test Coverage .. |docs| image:: https://img.shields.io/github/actions/workflow/status/catalyst-cooperative/pudl/build-deploy-docs.yml?branch=main&event=push&label=docs :target: https://docs.catalyst.coop/pudl/en/latest :alt: Docs Build Status .. |oc| image:: https://img.shields.io/badge/Open%20Collective-donate-3385FF?logo=opencollective&logoColor=white :target: https://opencollective.com/pudl .. |pre-commit-ci| image:: https://results.pre-commit.ci/badge/github/catalyst-cooperative/pudl/main.svg :target: https://results.pre-commit.ci/latest/github/catalyst-cooperative/pudl/main :alt: pre-commit CI .. |zenodo-doi| image:: https://img.shields.io/badge/DOI-10.5281%2Fzenodo.3404014-1682D4?logo=zenodo&logoColor=white :target: https://doi.org/10.5281/zenodo.3404014 :alt: Zenodo DOI .. |office-hours| image:: https://img.shields.io/badge/calend.ly-officehours-darkgreen :target: https://calend.ly/catalyst-cooperative/pudl-office-hours :alt: Schedule a 1-on-1 chat with us about PUDL. .. |mastodon| image:: https://img.shields.io/mastodon/follow/110855618428885893?domain=https%3A%2F%2Fmastodon.energy&style=social&color=%23000000&link=https%3A%2F%2Fmastodon.energy%2F%40catalystcoop :target: https://mastodon.energy/@catalystcoop :alt: Follow Catalyst Cooperative on Mastodon .. |linkedin| image:: https://img.shields.io/badge/LinkedIn-0077B5?style=flat&logo=linkedin&logoColor=white :target: https://linkedin.com/company/catalyst-cooperative/ :alt: Follow Catalyst Cooperative on LinkedIn .. |bluesky| image:: https://img.shields.io/badge/Bluesky-0285FF?logo=bluesky&logoColor=fff&style=flat :target: https://bsky.app/profile/catalyst.coop :alt: Follow @catalyst.coop on BlueSky .. |kaggle| image:: https://img.shields.io/badge/Kaggle-20BEFF?style=flat&logo=Kaggle&logoColor=white :target: https://www.kaggle.com/datasets/catalystcooperative/pudl-project :alt: The PUDL Dataset on Kaggle .. |youtube| image:: https://img.shields.io/badge/YouTube-%23FF0000.svg?logo=YouTube&logoColor=white :target: https://youtube.com/@CatalystCooperative :alt: Catalyst Cooperative on YouTube .. |aws| image:: https://img.shields.io/badge/Amazon_AWS-FF9900?style=flat&logo=amazonaws&logoColor=white :target: https://registry.opendata.aws/catalyst-cooperative-pudl/ :alt: PUDL in the AWS Open Data Registry

|repo-status| |pytest| |codecov| |pre-commit-ci| |docs| |oc| |zenodo-doi| |office-hours| |mastodon| |linkedin| |bluesky| |kaggle| |youtube| |aws|

What is PUDL?

The PUDL __ Project (pronounced puddle) is an open source data processing pipeline that makes US energy data easier to access and use programmatically.

Hundreds of gigabytes of valuable data are published by US government agencies, but it's often difficult to work with. PUDL takes the original spreadsheets, CSV files, and databases and turns them into a unified resource. This allows users to spend more time on novel analysis and less time on data preparation.

The project is focused on serving researchers, activists, journalists, policy makers, and small businesses that might not otherwise be able to afford access to this data from commercial sources and who may not have the time or expertise to do all the data processing themselves from scratch.

We want to make this data accessible and easy to work with for as wide an audience as possible: anyone from a grassroots youth climate organizers working with Google sheets to university researchers with access to scalable cloud computing resources and everyone in between!

PUDL is comprised of three core components:

Raw Data Archives ^^^^^^^^^^^^^^^^^ PUDL archives __ all our raw inputs on Zenodo __ to ensure permanent, versioned access to the data. In the event that an agency changes how it publishes data or deletes old files, the data processing pipeline will still have access to the original inputs. Each of the data inputs may have several different versions archived, and all are assigned a unique DOI (digital object identifier) and made available through Zenodo's REST API. You can read more about the Raw Data Archives in the docs __.

Data Pipeline ^^^^^^^^^^^^^ The data pipeline (this repo) ingests raw data from the archives, cleans and integrates it, and writes the resulting tables to Apache Parquet __ files, with some accompanying metadata stored as JSON. The fully processed data is also packaged into a single DuckDB __ database and, for backwards compatibility, a SQLite __ database. Note that the pudl.sqlite output is deprecated and will no longer be produced starting in 2027 — new work should use the Parquet outputs or pudl.duckdb. Each release of the PUDL software contains a set of DOIs indicating which versions of the raw inputs it processes. This helps ensure that the outputs are replicable. You can read more about our ETL (extract, transform, load) process in the PUDL documentation __.

Data Warehouse ^^^^^^^^^^^^^^ The Parquet, DuckDB, SQLite, and JSON outputs from the data pipeline, sometimes called "PUDL outputs", are updated each night by an automated build process, and periodically archived so that users can access the data without having to install and run our data processing system. These outputs contain hundreds of tables and comprise a small file-based data warehouse that can be used for a variety of energy system analyses. Learn more about how to access the PUDL data __.

What data is available?

PUDL currently integrates data from:

  • EIA Form 176 (work in progress):
    • Source Docs __
    • PUDL Docs __
  • EIA Form 191 (work in progress):
    • Source Docs __
    • PUDL Docs __
  • EIA Form 860:
    • Source Docs __
    • PUDL Docs __
  • EIA Form 860m:
    • Source Docs __
  • EIA Form 861:
    • Source Docs __
    • PUDL Docs __
  • EIA Form 923:
    • Source Docs __
    • PUDL Docs __
  • EIA Form 930:
    • Source Docs __
    • PUDL Docs __
  • EIA Annual Energy Outlook (AEO) (a few tables):
    • Source Docs __
    • PUDL Docs __
  • EPA Continuous Emissions Monitoring System (CEMS):
    • Source Docs __
    • PUDL Docs __
  • FERC Form 1 (dozens of fully processed tables, plus raw data converted to SQLite):
    • Source Docs __
    • PUDL Docs __
  • FERC Form 714 (a few fully processed tables):
    • Source Docs __
    • PUDL Docs __
  • FERC Electric Quarterly Reports (EQR):
    • Source Docs __
    • PUDL Docs __
  • FERC Form 2 (raw data converted to SQLite):
    • Source Docs __
  • FERC Form 6 (raw data converted to SQLite):
    • Source Docs __
  • FERC Form 60 (raw data converted to SQLite):
    • Source Docs __
  • PHMSA Natural Gas Annual Reports:
    • Source Docs __
    • PUDL Docs __
  • USDA Rural Utilities Service Form 7 (via FOIA requests):
    • Source Docs __
    • PUDL Docs __
  • USDA Rural Utilities Service Form 12 (via FOIA requests):
    • Source Docs __
    • PUDL Docs __
  • SEC Form 10-K (Exhibit 21 Parent & Subsidiary Relationships)**:
    • Source Docs __
    • PUDL Docs __
  • NREL Annual Technology Baseline (ATB) for Electricity:
    • Source Docs __
    • PUDL Docs __
  • GridPath Resource Adequacy Toolkit (partial):
    • Source Docs __
    • PUDL Docs __
  • Vibrant Clean Energy Resource Adequacy Renewable Energy:
    • Source Docs __
    • PUDL Docs __
  • US Census Demographic Profile 1 Geodatabase:
    • Source Docs __
    • PUDL Docs __

High Priority Target Datasets

If you're interested in any of these datasets, we'd love to integrate them into PUDL. Get in touch!

  • Additional fully processed FERC Form 1 tables, e.g. Transmission & Distribution assets
  • Additional high value EIA AEO tables
  • EIA Thermoelectric Water Usage __
  • FERC Form 2 __ (Annual Report of Major Natural Gas Companies)
  • MHSA Mines __

How do I access the data?

For details on how to access PUDL data, see the data access documentation __. A quick summary:

  • PUDL Data Viewer __ provides search, live preview, and CSV export for our processed data. Currently it doesn't provide access to the raw FERC data, but we are working on adding the FERC databases ASAP.
  • Kaggle __ provides easy Jupyter notebook access to the PUDL data, updated weekly: https://www.kaggle.com/datasets/catalystcooperative/pudl-project
  • Cloud storage __ is populated by our nightly data builds, and is free to access thanks to the AWS Open Data Registry __.
  • Zenodo __ provides stable long-term access to our versioned data releases with a citeable DOI: https://doi.org/10.5281/zenodo.3653158
  • The PUDL Development Environment __ lets you run the PUDL data processing pipeline locally.

Organizations using PUDL

.. _pudl_orgs_start:

This is a partial list of organizations that have used PUDL in their work. If your organization uses PUDL we'd love to list you here! Please open a pull request or email us at hello@catalyst.coop __!

  • RMI __ via both their Utility Transition Hub __ and Optimus financial modeling tool __
  • The ZERO Lab at Princeton University __
  • PyPSA-USA __ an open source power systems model.
  • Energy Innovation __
  • The PowerGenome Project __
  • Singularity Energy __
  • The Open Grid Emissions Initiative __
  • SwitchBox __
  • Vote Solar __
  • The Deployment Gap Model Education Fund __

.. _pudl_orgs_end:

Contributing to PUDL

Find PUDL useful? Want to help make it better? There are lots of ways to help!

  • Check out our contribution guide __ including our Code of Conduct __.
  • You can file a bug report, make a feature request, or ask questions in the Github issue tracker __.
  • Feel free to fork the project and make a pull request with new code, better documentation, or example notebooks.
  • Hire us to do some custom analysis __ and allow us to integrate the resulting code into PUDL.

PUDL Sustainers

.. _pudl_sustainers_start:

The PUDL Sustainers provide ongoing financial support to ensure the open data keeps flowing, and the project is sustainable long term. They're also involved in our quarterly planning process. To learn more see the PUDL Project page on Open Collective __.

Gigawatt Tier (≥$25,000/year) ⚡⚡⚡ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

RMI __


.. image:: docs/images/logos/RMI.png
   :width: 500
   :target: https://rmi.org
   :alt: RMI

`GridLab `__

.. image:: docs/images/logos/GridLab.png :width: 500 :target: https://gridlab.org :alt: GridLab

Megawatt Tier (≥$5,000/year) ⚡⚡ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Become our first Megawatt tier sustainer __!

Kilowatt Tier (≥$1,000/year) ⚡ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Singularity Energy __

.. image:: docs/images/logos/Singularity.png
   :width: 300
   :target: https://singularity.energy
   :alt: Singularity Energy

.. _pudl_sustainers_end:

Major Grant Funders
-------------------

.. _pudl_grants_start:

`The Alfred P. Sloan Foundation `__
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: docs/images/logos/Sloan.png
   :height: 150
   :target: https://sloan.org/programs/research/energy-and-environment/
   :alt: Alfred P. Sloan Foundation Energy and Environment Program

The PUDL Project has been supported by four grants from the `Alfred P. Sloan
Foundation's Energy and Environment Program
`__, in 2019, 2021, 2024,
and 2026.

`The National Science Foundation `__
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: docs/images/logos/NSF.png
   :height: 150
   :target: https://new.nsf.gov/funding/opportunities/pathways-enable-open-source-ecosystems-pose
   :alt: National Science Foundation Pathways to Enable Open Source Ecosystems (POSE)

The PUDL Project was awarded a grant from the National Science Foundation's `Pathways
to Enable Open Source Ecosystems (POSE) program
`__
(`award 2346139 `__) in
2024.

.. _pudl_grants_end:

Licensing
---------

In general, our code, data, and other work are permissively licensed for use by anybody,
for any purpose, so long as you give us credit for the work we've done.

* The PUDL software is released under
  `the MIT License `__.
* The PUDL data and documentation are published under the
  `Creative Commons Attribution License v4.0 `__
  (CC-BY-4.0).

Contact Us
----------

* For bug reports, feature requests, and other software or data issues please make a
  `GitHub Issue `__.
* For more general support, questions, or other conversations around the project
  that might be of interest to others, check out the
  `GitHub Discussions `__
* If you'd like to get occasional updates about the project
  `sign up for our email list `__.
* Want to schedule a time to chat with us one-on-one about your PUDL use case, ideas
  for improvement, or get some personalized support? Join us for
  `Office Hours `__
* `Follow us here on GitHub `__
* Follow us on Mastodon: `@CatalystCoop@mastodon.energy `__
* Follow us on BlueSky:  `@catalyst.coop `__
* `Follow us on LinkedIn `__
* `Follow us on HuggingFace `__
* `Follow us on Kaggle `__
* `Follow us on YouTube `__
* `Join our Slack `__
* More info on our website: https://catalyst.coop
* Email us if you'd like to hire us to provide customized data extraction and analysis:
  `hello@catalyst.coop `__

About Catalyst Cooperative
--------------------------

`Catalyst Cooperative `__ is a small group of data wranglers
and policy wonks organized as a worker-owned cooperative consultancy. Our goal is a
more just, livable, and sustainable world. We integrate public data and perform
custom analyses to inform public policy
(`Hire us! `__). Our focus is primarily on
mitigating climate change and improving electric utility regulation in the United
States.

Frequently asked questions

Is pudl free to use?

pudl is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pudl do?

The Public Utility Data Liberation Project provides analysis-ready energy system data to climate advocates, researchers, policymakers, and journalists.

What is pudl written in?

pudl is primarily written in Python. Its source is publicly available at https://github.com/catalyst-cooperative/pudl, and it has 612 GitHub stars.