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.1

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.1
File Size Uploaded
eeco-0.4.1.tar.gz 1.5 MB Details

Built distribution (wheel)

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

Total release size: 1.6 MB

Release files / eeco-0.4.1.tar.gz

Download URL eeco-0.4.1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
870b5214768f94011f7bce1d3dfacd9e7b7c4eaa439383ce12555e48934a463f
BLAKE2b-256 checksum
How to use checksums
2f23009ce15a173b86588485755c1d6757bab40477406feca8b1f20a14df63c4
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 Oct 6, 2026.

Transparency log

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

Download URL eeco-0.4.1-py2.py3-none-any.whl
Size 59.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
fd035d9abf618031fd425c8cd3c30c9937f19ee4f7b94db8fe3ddbbfa77c88ee
BLAKE2b-256 checksum
How to use checksums
206f5a5ec8e5d3e59641830cb894e6ae08f4804282aa532a4ed6f26748bbcfcb
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 Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

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