Skip to main content

e-footprint model

A toolkit for exhaustively modeling the environmental impact of digital services.

The current perimeter is the carbon footprint associated with the fabrication and usage of servers, storage, network (usage only) and end-user devices necessary for the existence of a web digital service. It is also now possible to model the production of edge devices (like video game consoles, smartphones, servers, etc.) and describe the unitary usage by device over its usage phase, to get the environmental footprint of the deployed fleet. Edge devices support hierarchical grouping via EdgeDeviceGroup with per-component unit multiplicity (nb_of_units), enabling complex fleet structures with nested device and sub-group counts.

Other environmental impacts (water, rare earth metals, etc.) will be added soon through an integration with the Boavizta API, and the lifecycle phases of device transportation and end of life are currently considered negligible.

Getting started

Python support policy

e-footprint requires Python >= 3.12, with no cap on 3.x minor versions: it follows a rolling window where "supported" means the latest Python minor versions for which every compiled dependency ships wheels. Today that's 3.12 and 3.13; the next minor is added once its wheels land. The <4.0 bound in requires-python is a major-series guard, not a ceiling on the rolling window.

Installation

Check out INSTALL.md.

Documentation

Here is the link to the e-footprint documentation. There you will find a description of all the e-footprint objects, their parameters, the relationship between the objects and the calculated attributes and their graphs.

Graphical interface

You can explore the model’s graphical interface, which is also open source and found in the Boavizta e-footprint interface repository. Please send an email to e-footprint’s main maintainer, Vincent Villet if you wish to give feedback !

Modeling examples

Checkout our open source e-footprint modeling use cases.

Tutorial

pip install efootprint

You can then run the jupyter notebook tutorial to familiarize yourself with the object logic and generate an object relationship graph and a calculation graph as HTML files in the current folder.

object relationships graph
Object relationships graph: usage patterns in deep blue, user journey in blue, user journey steps in pale blue, jobs in gold, infra hardware in red. Hover over a node to get the numerical values of its environmental and technical attributes. For simplifying the graph the Network and Hardware nodes are not shown.
simple calculation graph
Calculation graph: user inputs in gold, hypothesis in darkred, and intermediate calculations in pale blue. Hover over a node to read the formula.

To launch jupyter:

# Todo once to setup jupyter kernel
poetry run ipython kernel install --user --name=efootprint-kernel
# Start Jupyter server with poetry
poetry run jupyter notebook tutorial.ipynb

Run with Docker

No local Python setup needed: build the image once, write your model script, then run it inside the container.

docker build --build-arg EFOOTPRINT_VERSION=<version> -t efootprint .
docker run --rm -v "$PWD":/work efootprint python /work/build_model.py

The current directory is mounted at /work inside the container, so build_model.py (and any file paths it references, e.g. an output HTML graph) resolves relative to your working directory. See Dockerfile. This image isn't published anywhere yet — build it locally as above.

Dev setup

Check out INSTALL.md.

Code logic

The code has been architectured to separate modeling from optimization from API logic. The goal is to make contribution to the modeling logic as straightforward as possible.

  • Modules that deal with modeling logic are located in efootprint/core.
  • Optimizations (having the model rerun the right calculations whenever an input attribute or a link between objects changes) are dealt with in efootprint/abstract_modeling_classes.
  • All json serialization / deserialization logic, that is essential for making the web interface work, are found in efootprint/api_utils.

Contributing

Check out CONTRIBUTING.md

License

GNU Affero General Public License v3.0

Release files for efootprint 23.0.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 efootprint 23.0.0
File Size Uploaded
efootprint-23.0.0.tar.gz 337.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for efootprint 23.0.0
File Interpreter ABI Platform
efootprint-23.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 745.2 kB

Release files / efootprint-23.0.0.tar.gz

Download URL efootprint-23.0.0.tar.gz
Size 337.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cf5990b02f293c8c61a1a8bf3f93a706089c34fccc159e93c62da8380f6cbaef
BLAKE2b-256 checksum
How to use checksums
93ea55cd4b474c4885e0eca89cb225bd2a8161262a4d4f349484ff4b76f7feda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Release files / efootprint-23.0.0-py3-none-any.whl

Download URL efootprint-23.0.0-py3-none-any.whl
Size 407.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12d560eb6b8dd5b4c3d8492a5c4e43bd9a2b026537cbeea8aa27963f4fbf6251
BLAKE2b-256 checksum
How to use checksums
8fb74bcbfdbf79b0f912057ec757479bf1e1a34698caa6c1367d5310471aebf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Release history Release notifications | RSS feed

This release

23.0.0 This release

2 release files

22.3.1

2 release files

22.2.1

2 release files

22.2.0

2 release files

22.0.1

2 release files

22.0.0

2 release files

21.1.6

2 release files

21.1.2

2 release files

21.1.1

2 release files

21.1.0

2 release files

21.0.1

2 release files

20.1.0

2 release files

20.0.2

2 release files

20.0.1

2 release files

20.0.0

2 release files

19.0.2

2 release files

19.0.1

2 release files

19.0.0

2 release files

18.0.0

2 release files

17.1.0

2 release files

17.0.2

2 release files

17.0.1

2 release files

17.0.0

2 release files

16.0.4

2 release files

16.0.3

2 release files

16.0.2

2 release files

16.0.1

2 release files

16.0.0

2 release files

14.3.0

2 release files

14.2.2

2 release files

14.2.1

2 release files

14.2.0

2 release files

14.1.0

2 release files

14.0.4

2 release files

14.0.3

2 release files

14.0.2

2 release files

13.0.1

2 release files

13.0.0

2 release files

12.0.0

2 release files

11.2.4

2 release files

11.2.3

2 release files

11.2.2

2 release files

11.2.1

2 release files

11.0.0

2 release files

10.1.9

2 release files

10.1.8

2 release files

10.1.7

2 release files

10.1.1

2 release files

10.1.0

2 release files

10.0.9

2 release files

10.0.5

2 release files

10.0.4

2 release files

10.0.3

2 release files

10.0.1

2 release files

10.0.0

2 release files

9.1.5

2 release files

9.1.4

2 release files

9.1.3

2 release files

9.1.2

2 release files

9.1.1

2 release files

9.1.0

2 release files

9.0.3

2 release files

9.0.2

2 release files

9.0.1

2 release files

9.0.0

2 release files

8.2.1

2 release files

8.2.0

2 release files

8.1.0

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.1.0

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.0.0

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

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