You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "How to account for carbon emissions caused by the manufacturing of IT devices"
4
+
date: 2025-07-18T08:49:15+00:00
5
+
weight: 540
6
+
toc: true
7
+
---
8
+
9
+
Embodied carbon refers to the greenhouse gas emissions generated throughout the entire lifecycle of IT hardware — from raw material extraction and manufacturing through transportation and disposal — as opposed to operational carbon from running the device. For many IT devices like smartphones, laptops, etc., embodied carbon represents 50-80% of total lifecycle emissions.
10
+
11
+
## Data Sources
12
+
13
+
Embodied carbon data comes from Life Cycle Assessment (LCA) studies that analyze the complete environmental impact of devices from cradle to grave. These studies quantify emissions from:
14
+
15
+
- Raw material extraction
16
+
- Manufacturing processes
17
+
- Transportation
18
+
- End-of-life disposal
19
+
20
+
You can get data from available databases or directly from the manufacturer.
21
+
22
+
Example sources:
23
+
24
+
- Databases:
25
+
-[Boavizta Database](https://dataviz.boavizta.org/serversimpact) - Open database for IT emissions
See also Green Software Foundation's webpage [Datasets](https://sci-guide.greensoftware.foundation/M/Datasets).
32
+
33
+
## Relevance for the Green Metrics Tool
34
+
35
+
Embodied carbon is a key component of the [Software Carbon Intensity (SCI)]({{< relref "sci" >}}) metric. The Green Metrics Tool incorporates embodied carbon to provide a complete picture of software's environmental impact by:
36
+
37
+
-**Proportional allocation**: Calculating how much embodied carbon should be attributed to each measurement run based on its duration and the device's expected lifetime
38
+
-**Hardware accountability**: Ensuring that the environmental cost of hardware is fairly distributed across all software running on it
39
+
-**Complete carbon accounting**: Adding embodied carbon to operational carbon to reflect the true environmental impact of software execution
40
+
-**Comparative analysis**: Enabling fair comparison between different software implementations by including the full lifecycle impact of the hardware they run on
41
+
42
+
The tool displays embodied carbon emissions for every measurement run, making it visible how hardware choices affect the overall carbon footprint of software.
43
+
44
+
### Configuration
45
+
46
+
You can configure the embodied carbon parameters as part of the [SCI]({{< relref "sci" >}}) configuration in `config.yml`:
description: "How to account for carbon emissions caused by grid-supplied power"
4
+
date: 2025-07-18T08:49:15+00:00
5
+
weight: 520
6
+
toc: true
7
+
---
8
+
9
+
Grid carbon intensity refers to the amount of carbon dioxide equivalent (CO₂e) emissions produced per kilowatt-hour (kWh) of electricity consumed from the power grid. This metric reflects the mix of energy sources (coal, gas, renewables, nuclear) used to generate electricity in a specific location and time.
10
+
11
+
We have described the conversion from energy to carbon emissions also on our website: [CO₂ Formulas - From kWh to CO₂e](https://www.green-coding.io/co2-formulas/#from-kwh-to-co2e)
12
+
13
+
## Data Sources
14
+
15
+
Grid carbon intensity data is available from government agencies, energy databases, and specialized services that track regional electricity carbon intensities.
16
+
17
+
Examples of available databases and services can be found on the Green Software Foundation's webpage (Grid Carbon Intensity: https://sci-guide.greensoftware.foundation/I/) and on the Green Software Landscape (https://landscape.bundesverband-green-software.de/?group=measurement&view-mode=grid&category=Databases) by the Bundesverband Green Software.
18
+
19
+
## Relevance for the Green Metrics Tool
20
+
21
+
Grid carbon intensity is the **I** parameter in the [Software Carbon Intensity (SCI)]({{< relref "sci" >}}) metric. The Green Metrics Tool uses grid carbon intensity to transform the measured energy consumption into carbon emissions based on local grid characteristics.
22
+
23
+
### Configuration
24
+
25
+
You can configure the grid carbon intensity as part of the [SCI]({{< relref "sci" >}}) configuration in `config.yml`:
26
+
27
+
```yml
28
+
sci:
29
+
I: 334# Grid carbon intensity in gCO2e/kWh (example value for Germany 2024)
30
+
```
31
+
32
+
GMT calculates the operational carbon emissions by multiplying measured energy consumption by the grid carbon intensity value.
33
+
34
+
### Static vs Dynamic Values
35
+
36
+
The Green Metrics Tool uses **static** grid carbon intensity values rather than dynamic real-time data. This design choice ensures **reproducible measurements** (results remain consistent across different measurement times) and **fair comparisons** (measurements on the same machine with the same configuration use the same baseline for carbon intensity).
37
+
38
+
You should set the grid carbon intensity to represent the typical or average value for your location.
description: "How to estimate the carbon emissions of network transfer"
4
+
date: 2025-07-18T08:49:15+00:00
5
+
weight: 530
6
+
toc: true
7
+
---
8
+
9
+
Network carbon intensity measures the amount of carbon dioxide equivalent (CO₂e) emissions generated per unit of data transferred across network infrastructure.
10
+
Since carbon emissions from network transfers cannot be directly measured, they must be estimated. Network carbon intensity is calculated using two factors:
The network carbon intensity methodology and data sources used by the Green Metrics Tool are documented in detail on our [CO₂ Formulas page](https://www.green-coding.io/CO2-formulas/#gigabytes-to-kwh).
18
+
19
+
## Relevance for the Green Metrics Tool
20
+
21
+
The Green Metrics Tool aims to provide not just the energy consumption of the device, but also an estimated value for the carbon emissions resulting from network data transfer. To achieve this, it uses the network carbon intensity approach.
22
+
23
+
Although network emissions are not officially part of the [Software Carbon Intensity (SCI)]({{< relref "sci" >}}) specification, the Green Metrics Tool includes them to offer a more complete view of your software’s carbon footprint.
24
+
25
+
### Measurement Approach
26
+
27
+
The Green Metrics Tool aggregates all network traffic from all containers and estimate CO₂ emissions using the [CO₂-Formula](https://www.green-coding.io/CO2-formulas). This approach assumes that all traffic is with external services. However, if your containers only communicate with each other and run on a single machine in production, the calculated emissions will significantly overstate the actual CO₂ impact.
28
+
29
+
We made this design choice because, during benchmarking, we can't predict how your containers will be orchestrated in production. They might all run on one machine (resulting in zero network emissions), be distributed within a data center (with minimal emissions), or be spread globally (incurring the highest emissions). Since the Green Metrics Tool is meant to provide a baseline for optimization, we chose to report based on the worst-case scenario.
30
+
31
+
### Configuration
32
+
33
+
You can configure the network energy intensity as part of the [SCI]({{< relref "sci" >}}) configuration in `config.yml`:
34
+
35
+
```yml
36
+
sci:
37
+
N: 0.001875# unit: kWh/GB
38
+
```
39
+
40
+
GMT calculates the network carbon intensity as:
41
+
42
+
```plain
43
+
network_data_transfer × N × I
44
+
```
45
+
46
+
The factor *I* is described in [Grid Carbon Intensity]({{< relref "grid-carbon-intensity" >}}).
Copy file name to clipboardExpand all lines: content/en/docs/measuring/carbon/sci.md
+5-8Lines changed: 5 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
---
2
-
title: "SCI (Green Software Foundation)"
2
+
title: "Software Carbon Intensity (SCI)"
3
3
description: "How to measure the Green Software Foundation's SCI metric with the Green Metrics Tool"
4
4
date: 2023-08-04T08:49:15+00:00
5
-
weight: 442
5
+
weight: 550
6
6
toc: true
7
7
---
8
8
@@ -53,18 +53,15 @@ If you have an API or similar the output might not happen on the CLI directly, b
53
53
54
54
An [example configuration](https://github.com/green-coding-solutions/green-metrics-tool/blob/main/config.yml.example) for the `config.yml` is provided when the Green Metrics Tool is installed.
55
55
The values for the respective variables have to be either defined to best knowledge (like lifetime for instance) and / or
from official databases (like [Embodied Carbon →]({{< relref "embodied-carbon" >}}) and [Grid Carbon Intensity →]({{< relref "grid-carbon-intensity" >}})). See the respective documentation page for possible sources.
60
57
61
58
Example:
62
59
```yml
63
60
sci:
64
61
EL: 4 # means 4 years of usage
65
62
RS: 1 # means we use 1/1 = 100% of the machine. Bare metal. No virtualization
66
63
TE: 181000 # Example value for a laptop taken from https://dataviz.boavizta.org/terminalimpact. Value is in g
67
-
I: 436 # The number 436 that comes as default is for Germany from 2022. Value in gCO2e/kWh
64
+
I: 334 # The number 334 that comes as default is for Germany from 2024. Value in gCO2e/kWh
68
65
```
69
66
70
67
## Display
@@ -84,7 +81,7 @@ The [SCI formula](https://sci-guide.greensoftware.foundation/) is specified by t
84
81
The components of the SCI are attributed by the GMT as follows:
85
82
86
83
- *E*: The energy of the total machine + the energy of the network.
87
-
- A *PSU Energy* provider must be activated to populate this value with the machine energy like [PSU Energy XGBoost]({{< relref "metric-providers/psu-energy-xgboost-machine" >}}), [PSU Energy MCP]({{< relref "metric-providers/psu-energy-ac-mcp-machine" >}}) etc.
84
+
- A *PSU Energy* provider must be activated to populate this value with the machine energy like [PSU Energy XGBoost]({{< relref "../metric-providers/psu-energy-xgboost-machine" >}}), [PSU Energy MCP]({{< relref "../metric-providers/psu-energy-ac-mcp-machine" >}}), etc.
88
85
- If none is activated machine energy will be excluded from the SCI.
89
86
- A *Network IO* provider must be activated to populate this value with the network energy.
90
87
- If none is activated network energy will be excluded from the SCI.
Copy file name to clipboardExpand all lines: content/en/docs/measuring/metric-providers/network-io-cgroup-container.md
+3-16Lines changed: 3 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,25 +58,12 @@ After having entered the namespace the provider reads from `/proc/net/dev` and:
58
58
- sums up the `r_bytes` and `t_bytes` of all other interfaces
59
59
- does NOT count dropped packets (we assume since most of the traffic is internal, that a dropped received packet shows up in another interface as sent anyway and a dropped sent packet does not attribute much to the energy consumption).
60
60
61
-
####Attribution of network traffic
61
+
### Attribution of network traffic
62
62
63
63
Currently all incoming and outgoing traffic is attributed to every container that sends or receives it.
64
64
65
65
This may lead to unexpected results when you process the results, but is a design decision.
66
66
67
-
In our [Green Metrics Dashboard](https://metrics.green-coding.io) we simply accumulate all the network traffic of all containers and then
68
-
apply the [CO2-Formula](https://www.green-coding.io/co2-formulas) on top.
69
-
70
-
This however assumes that all traffic is with external services. If your containers are however only
71
-
communicating with each other and are in production all on one machine, this number will not
72
-
represent the real CO2 emissions, but is rather greatly overstating them.
73
-
74
-
This design decision was made cause we cannot know during benchmarking how your containers
75
-
would be orchestrated in production.
76
-
They can very well be all on one machine (which would have zero network emissions), but they also could be distributed in an internal network
77
-
of a datacenter (which would have only marginal network CO2 emissions) or really distributed globally (which would then have the maximum of CO2 emissions).
78
-
79
-
Since our reporters should give you an optimization baseline we opted for the worst-case scenario to report in our Dashboard.
80
-
81
-
When processing the metrics you own you may well use a different approach given your knowledge of the network topology.
67
+
In our [Green Metrics Dashboard](https://metrics.green-coding.io) we simply accumulate all the network traffic of all containers and calculate CO2 emissions by applying the [CO2-Formula](https://www.green-coding.io/co2-formulas) on top.
82
68
69
+
The page [Network Carbon Intensity →]({{< relref "../carbon/network-carbon-intensity" >}}) provides more information and discusses the advantages and disadvantages of this approach.
Copy file name to clipboardExpand all lines: content/en/docs/measuring/usage-scenario.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -145,7 +145,7 @@ services:
145
145
+ Make sure to also set `log-stdout` to `true`. Format specification is documented below in section [Read-notes-stdout format specification →]({{< relref "#read-notes-stdout-format-specification" >}}).
146
146
- `read-sci-stdout:`**[bool]** *(optional)*
147
147
+ Enables the reading of ticks for the unit of work (*R*) required to calculate the SCI metric.
148
-
+ Please see [SCI (Green Software Foundation) →]({{< relref "sci" >}}) for more information.
148
+
+ Please see [Software Carbon Intensity (SCI) →]({{< relref "carbon/sci" >}}) for more information.
149
149
- `docker-run-args:`**[list]** *(optional)*
150
150
+ A list of string that should be added to the `docker run` command of that container.
151
151
+ The argument needs to be listed in the `user.capabilities` json under `measurement:orchestrators:docker:allow-args`. The string in the `user.capabilities` can be a regex. Opening this up could be a potential security issue!
@@ -221,7 +221,7 @@ flow:
221
221
+ Make sure to also set `log-stdout` to `true`. Format specification is documented below in section [Read-notes-stdout format specification →]({{< relref "#read-notes-stdout-format-specification" >}}).
222
222
- `read-sci-stdout:`**[bool]** *(optional)*
223
223
+ Enables the reading of ticks for the unit of work (*R*) required to calculate the SCI metric.
224
-
+ Please see [SCI (Green Software Foundation) →]({{< relref "sci" >}}) for more information.
224
+
+ Please see [Software Carbon Intensity (SCI) →]({{< relref "carbon/sci" >}}) for more information.
0 commit comments