openpuc_scrapers is an open-source Python package designed to democratize access to public utility commission (PUC) documents across different U.S. states. Too often, important information about state energy policy is hidden away in slow, hard-to-navigate websites. This package provides a unified interface for accessing case records, filings, and associated documents, regardless of state. Built with modular scrapers, standardized data models, and a lightweight design, OpenPUC Scrapers enables researchers, policymakers, and advocates to efficiently access regulatory information.
So far, openpuc_scrapers has coverage for the following state commissions.
| State | PUC | Status |
|---|---|---|
| MA | Department of Public Utilities | ✅ Available |
| NY | Department of Public Service | 🚧 Coming soon |
| CA | Public Utilities Commission | 🚧 Coming soon |
| MI | Public Service Commission | 🚧 Coming soon |
| IL | Commerce Commission | 🚧 Coming soon |
We welcome anyone interested in contributing an interface for a new PUC! Please create a new issue for each PUC you want to add and follow the steps for contributing in the docs.
This project includes a Nix flake for reproducible development environments:
- Install Nix if you haven't already
- Enable flakes by adding to your
~/.config/nix/nix.conf:experimental-features = nix-command flakes - Enter the development environment:
nix develop
This will provide all necessary dependencies including:
- Python 3.12
- UV for package management
- Selenium with ChromeDriver and GeckoDriver
- All project dependencies
TODO easy peasy installation using pip
