pudl is a free, open source data engineering & integration project written in Python and released under MIT. It has 605 GitHub stars, 145 forks and 502 open issues, and was last pushed 2 hours ago. On this registry it ranks #44 of 51 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available.

=============================================================================== 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 Report

readme truncated — read the full docs on github

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 605 GitHub stars.