Skip to main content

Electric Emissions & Cost Optimizer (EECO)

Build Status Documentation Code Coverage Zenodo DOI

A package for calculating electricity-related emissions and costs for optimization problem formulation and other computational analyses.

Useful Commands

  1. pip install -e . (or pip install -e .[test] for development)

This will install your package in editable mode.

  1. pytest eeco/tests --cov=eeco --cov-report=html

Produces an HTML test coverage report for the entire project which can be found at htmlcov/index.html.

  1. docs/make html

This will generate an HTML version of the documentation which can be found at _build/html/index.html.

  1. flake8 eeco --count --verbose --show-source --statistics

This will lint the code and share all the style errors it finds.

  1. black eeco

This will reformat the code according to strict style guidelines.

Documentation

The documentation for this package is hosted on GitHub Pages.

Attribution

If you found this package useful, we encourage you to cite the papers below depending on which portion of the code you use.

See the metadata in CITATION.cff, on Zenodo, or the following BibTeX format to cite the Python package in its entirety:

@software{chapin_2025_17102024,
  author={Chapin, Fletcher T. and
          Rao, Akshay K. and
          Sakthivelu, Adhithyan and
          Wettermark, Daly and
          Musabandesu, Erin and
          Jaminet, Anne and
          Dudchenko, Alexander V. and
          Mauter, Meagan S.},
  title={Electric Emissions \& Cost Optimizer (EECO)},
  month=sep,
  year=2025,
  publisher={Zenodo},
  version={v0.1.0},
  doi={10.5281/zenodo.17102025},
  url={https://doi.org/10.5281/zenodo.17102025}
}

Citing costs.py

The development of costs.py was the culmination of two papers from the WE3Lab.

The convex formulation of tariff costs for optimizing flexible loads was originally developed for a case study of flexible wastewater treatment plant operation published in Environmental Science & Technology:

Bolorinos, J., Mauter, M. S., & Rajagopal, R. Integrated energy flexibility management at wastewater treatment facilities. Environ. Sci. Technol. 57, 18362-18371. (2023). DOI: 10.1021/acs.est.3c00365

In BibTeX format:

@article{bolorinos2023integrated,
  title={Integrated energy flexibility management at wastewater treatment facilities},
  author={Bolorinos, Jose and Mauter, Meagan S and Rajagopal, Ram},
  journal={Environmental Science \& Technology},
  volume={57},
  number={46},
  pages={18362--18371},
  year={2023},
  publisher={ACS Publications},
  url={https://doi.org/10.1021/acs.est.3c00365}
}

The tariff data format was published in the following data descriptor in Nature Scientific Data:

Chapin, F.T., Bolorinos, J. & Mauter, M.S. Electricity and natural gas tariffs at United States wastewater treatment plants. Sci Data 11, 113 (2024). DOI: 10.1038/s41597-023-02886-6

In BibTeX format:

@Article{Chapin2024,
author={Chapin, Fletcher T and Bolorinos, Jose and Mauter, Meagan S.},
title={Electricity and natural gas tariffs at United States wastewater treatment plants},
journal={Scientific Data},
year={2024},
month={Jan},
day={23},
volume={11},
number={1},
pages={113},
issn={2052-4463},
doi={10.1038/s41597-023-02886-6},
url={https://doi.org/10.1038/s41597-023-02886-6}
}

Citing emissions.py

The emissions optimization code was originally developed for co-optimizing costs and emissions at a wastewater treatment plant and published in Environmental Science & Technology:

Chapin, F.T., Wettermark, D., Bolorinos, J. & Mauter, M.S. Load-shifting strategies for cost-effective emission reductions at wastewater facilities Environ. Sci. Technol. 59, 2285-2294 (2025). DOI: 10.1021/acs.est.4c09773

In BibTeX format:

@article{chapin2025load,
  title={Load-Shifting Strategies for Cost-Effective Emission Reductions at Wastewater Facilities},
  author={Chapin, Fletcher T and Wettermark, Daly and Bolorinos, Jose and Mauter, Meagan S},
  journal={Environmental Science \& Technology},
  volume={59},
  number={4},
  pages={2285--2294},
  year={2025},
  publisher={ACS Publications},
  url={https://pubs.acs.org/doi/10.1021/acs.est.4c09773}
}

Citing metrics.py

The flexibility metrics come from the following Nature Water paper:

Rao, A. K., Bolorinos, J., Musabandesu, E., Chapin, F. T., & Mauter, M. S. Valuing energy flexibility from water systems. Nat. Water 2, 1028-1037 (2024). DOI: 10.1038/s44221-024-00316-4

In BibTeX format:

@article{rao2024valuing,
  title={Valuing energy flexibility from water systems},
  author={Rao, Akshay K and Bolorinos, Jose and Musabandesu, Erin and Chapin, Fletcher T and Mauter, Meagan S},
  journal={Nature Water},
  volume={2},
  number={10},
  pages={1028--1037},
  year={2024},
  publisher={Nature Publishing Group UK London},
  url={https://doi.org/10.1038/s44221-024-00316-4}
}

Metadata

Release files for eeco 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eeco 0.4.0
File Size Uploaded
eeco-0.4.0.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for eeco 0.4.0
File Interpreter ABI Platform
eeco-0.4.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 1.6 MB

Release files / eeco-0.4.0.tar.gz

Download URL eeco-0.4.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
4279c63d88bcc5450883b5dad341a633c01f8ab1ee2d9a7ad1e1b9093a4e0892
BLAKE2b-256 checksum
How to use checksums
86cb0f81b46237442762fdddbe4a518297fdb1dafb5f169118a10f99f41e78d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / eeco-0.4.0-py2.py3-none-any.whl

Download URL eeco-0.4.0-py2.py3-none-any.whl
Size 56.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5899f6e83464e8b4257c8d2b739fa7d73c8a46e2120cd6ba708ed8db340e7ed3
BLAKE2b-256 checksum
How to use checksums
8b7fbcba5b4cc1eb8a5fef52b3f08c3326d742e4632841933d1cb39e5c5e9313
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page