ISO/IEC 21031 Software Carbon Intensity
Most carbon accounting answers the question “how much did we emit?” — a total, in tonnes, summed over a year. ISO/IEC 21031 answers a different one: “how efficient is this software per unit of work it does?” That single shift, from total to rate, is what makes the Software Carbon Intensity specification useful to engineers in a way an annual inventory never can be.
SCI is not a carbon footprint. It is a score you can drive down by writing better code, choosing cleaner regions, and running fewer machines — and it is now an international standard.
ISO/IEC 21031:2024 is the international standard for Software Carbon Intensity (SCI): a rate of carbon emissions per functional unit of software, calculated as SCI = ((E × I) + M) per R. It measures efficiency, not total emissions, and complements — not replaces — a GHG Protocol inventory.
What ISO/IEC 21031 is — and what it is not
ISO/IEC 21031:2024 specifies a methodology for calculating the rate of carbon emissions of a software system — its Software Carbon Intensity, or SCI, score. The standard’s stated purpose is to increase the awareness and transparency of an application’s sustainability credentials and to help software practitioners make evidence-based decisions during design, development and deployment that reduce emissions. It formalises, as an ISO/IEC international standard, the SCI specification originally developed by the Green Software Foundation (GSF).
The defining design choice is that SCI is a rate, not a total. Conventional carbon accounting — a GHG inventory under the GHG Protocol Corporate Standard or ISO 14064-1 — produces an absolute figure in tonnes of CO₂e for a reporting period, and lets an organisation offset or net that figure. SCI deliberately does the opposite: it expresses emissions per functional unit of useful work (per user, per API call, per machine-learning training job), and it excludes offsets and market-based measures entirely. The intent is that the only way to lower an SCI score is to make the software genuinely more efficient.
A GHG inventory tells you how much carbon an organisation emitted and lets you offset it; an SCI score tells you how efficiently a piece of software emits per unit of work and refuses to let you offset it. They answer different questions and are not interchangeable — SCI is a complement to an inventory, never a substitute for one.
This is the most common point of confusion, so it is worth stating plainly: an SCI score is not a software carbon footprint. A footprint is a total; SCI is a rate. A software system with a low SCI score that serves billions of requests may emit far more in absolute terms than an inefficient system serving a handful of users. SCI is built to drive efficiency decisions, not to populate the emissions line of a regulatory disclosure.
Provider directory
Need software to run this?
See who does this work. Every listing names the standards it works to, and paid placements are labelled. Including One Click LCA and Terrascope.
Browse 4 carbon software providers →Do this work? A listing is US$390 a year. Get listed →
Provenance, scope and status
The SCI specification began as a Green Software Foundation working-group project, with an initial version piloted in December 2021. After testing and refinement it was submitted through ISO/IEC JTC 1 — the joint technical committee of ISO and IEC responsible for information technology — and published as ISO/IEC 21031:2024, Edition 1, in March 2024 (approved 22 March 2024). It is the first international standard dedicated specifically to software carbon intensity.
| Attribute | Detail |
|---|---|
| Reference number | ISO/IEC 21031:2024 |
| Title | Information technology — Software Carbon Intensity (SCI) specification |
| Edition / status | Edition 1, published; approved 22 March 2024 |
| Developing committee | ISO/IEC JTC 1 (Information technology) |
| Origin | Green Software Foundation SCI specification (piloted December 2021) |
| Nature | Voluntary methodology standard — no regulatory mandate to adopt |
| National adoptions | Issued nationally as BS ISO/IEC 21031:2024 (UK) and SS-EN equivalents in member bodies |
| What it produces | A single SCI score: carbon emissions per functional unit (a rate) |
The standard is voluntary. There is no jurisdiction in which an SCI score is itself a legal reporting requirement, which is why the banner above records “no mandated adoption date”. Its weight comes from adoption: technology organisations, cloud providers and engineering teams use it as the common language for software efficiency, and it is increasingly referenced alongside ESG reporting and IT-service sustainability programmes.
Where SCI sits in the carbon-accounting stack
SCI does not stand alone. It consumes outputs from the scientific and factor layers below it, and it feeds — with reconciliation — into the disclosure layer above it. Understanding those dependencies prevents the most common category error: treating an SCI score as if it were a disclosure-grade emissions figure.
The arrows run both ways in practice. The factor layer feeds I into the SCI equation; the SCI methodology structures the measurement; and the resulting energy and emissions data, once recast onto an average, market-based basis, flow up into a Scope 2 and Scope 3 inventory for disclosure. The reconciliation step is not optional, and it is where most implementation effort goes.
The SCI equation, variable by variable
The entire standard rests on one equation. Everything else — boundary rules, functional-unit selection, granularity guidance — exists to make the four terms in it well-defined and comparable.
The operational energy drawn by the hardware the software runs on, for one functional unit of work. Where the boundary includes a data centre, E must account for facility overhead — cooling and other non-IT load — usually folded in through a Power Usage Effectiveness (PUE) multiplier.
The location-based, region- and time-specific marginal emissions rate of the grid powering the hardware. SCI specifies marginal intensity — the emissions caused by an additional unit of demand — not the grid average. This is a deliberate departure from inventory accounting.
The manufacturing emissions of the hardware, amortised to the share the software is responsible for. The standard expresses this as M = TE × TS × RS: total embodied emissions of the device, multiplied by a time-share (how long the software uses it) and a resource-share (what fraction of the device it uses). M shall not include any market-based measures.
The denominator that turns a total into a rate: per user, per API call, per transaction, per device, per machine-learning job. R is the single most consequential modelling choice — it determines whether two SCI scores can be compared at all, and every term in the equation must scale by the same R.
You will see SCI written three ways. The full form is SCI = ((E × I) + M) per R. Because O = E × I, it collapses to SCI = (O + M) per R. And because the numerator is just total carbon C = O + M, the most compact form is SCI = C per R. All three are the same statement: total carbon caused by the software, divided by the work it does.
Step 1 — Define the software boundary
The standard sets out a four-step procedure: define the boundary, choose the functional unit, quantify the emissions, and report. The boundary comes first because it determines what energy and embodied emissions are even in scope.
Defining the boundary means deciding which software components and supporting systems to include or exclude. The normative rule is that the calculation shall include all supporting infrastructure and systems that significantly contribute to the software’s operation. The specification does not hand you a fixed list — it requires judgement — but it does require that every major exclusion be documented with a reason.
- Compute — servers, virtual machines, containers, serverless functions
- Storage and databases the application depends on
- Networking and data transfer attributable to the software
- Data-centre overhead (cooling, power distribution) via PUE
- End-user devices, where the software’s client runs on them
- Build, test and CI/CD infrastructure that runs continuously
- One-off development activity outside the operational system
- Shared corporate IT not specific to the software
- Components whose contribution is demonstrably immaterial
- Anything the team cannot measure and cannot reasonably estimate
“For every major component you exclude, you must explain why.” An SCI score with a silent, undocumented exclusion is not a compliant score — and more practically, it is not a comparable one. Two teams that draw the boundary differently and do not say so will produce SCI numbers that look comparable and are not. Boundary transparency is what makes the rate meaningful.
Step 2 — Choose the functional unit (R)
R is what makes SCI an intensity rather than a total. It is the unit of work by which the software scales, and the standard requires that the same R apply across every term in the equation. Choosing it well is the difference between a score that guides engineering and a score that misleads.
| Software type | Natural functional unit (R) | What a falling SCI score then means |
|---|---|---|
| Web / SaaS application | Per user, per session, or per request | Each interaction is getting cleaner, independent of traffic growth |
| API or microservice | Per API call | The service emits less per call as it is optimised or rescheduled |
| Machine-learning / AI | Per training job, or per 1,000 inferences | Model or hardware changes reduce carbon per job — see the AI compute calculator |
| Batch / data pipeline | Per record processed, or per pipeline run | The pipeline carries less carbon per unit of data handled |
| Mobile / client app | Per device, or per active user per day | The client footprint per device falls across releases |
The hard part is comparability. Because R is chosen by the reporting team, two SCI scores are only comparable if they share the same functional unit and the same boundary. A score expressed “per API call” cannot be set against one expressed “per user” without conversion. This is the standard’s most-debated limitation: it standardises the equation but not the choice of R, so cross-vendor comparison demands that both parties agree the functional unit in advance.
Step 3 — Quantify operational (O) and embodied (M) emissions
With the boundary and functional unit fixed, the third step quantifies the two halves of the numerator. They behave very differently and are measured in different ways.
Operational emissions — O = E × I
Operational emissions are the variable, demand-driven half. You measure the energy E that the in-boundary hardware draws to perform one functional unit of work, then multiply by the marginal carbon intensity I of the grid powering it. Where a data centre is in scope, E must reflect facility efficiency, which is why PUE belongs in the operational calculation: the IT load is scaled up by the data centre’s PUE to capture cooling and distribution losses. The standard pushes for the highest-granularity data available for both E and I — ideally real measured energy and time-resolved grid intensity rather than annual averages.
Embodied emissions — M = TE × TS × RS
Embodied emissions are the fixed, manufacturing half, amortised down to the software’s fair share. The total embodied emissions of a device (TE) — ideally drawn from the device’s own life-cycle assessment under ISO 14040/14044 — are multiplied by a time-share (TS, the fraction of the device’s useful life the software occupies) and a resource-share (RS, the fraction of the device’s capacity the software uses). The result allocates a slice of the hardware’s birth emissions to each functional unit of work.
First, M shall be expressed in grams of CO₂eq and shall use the most granular embodied data available — device-level LCA where possible. Second, and decisively, M shall not include any market-based measures. You cannot lower embodied emissions by buying certificates. This mirrors the operational side’s use of marginal grid intensity rather than a contractually chosen factor — throughout, SCI measures physical reality, not procurement instruments.
Worked example — a web application’s SCI score
The figures below are illustrative — chosen to show the mechanics, not to represent any real system. They follow the SCI specification’s four steps end to end for a web application running on cloud infrastructure.
Boundary: four virtual machines, a managed database, and object storage. Functional unit R: one user request. The example uses a hypothetical grid intensity and embodied figure for clarity; substitute measured energy and a time-resolved marginal factor in a real calculation.
| Step | Quantity | Value (illustrative) |
|---|---|---|
| Operational energy per day (E) | In-boundary hardware energy, PUE-adjusted | 48 kWh/day |
| Marginal carbon intensity (I) | Location-based marginal grid factor | 300 gCO₂eq/kWh |
| Operational emissions (O = E × I) | 48 × 300 | 14,400 gCO₂eq/day |
| Total embodied (TE), 4-year life | Cloud infrastructure manufacturing emissions | 5,000,000 gCO₂eq |
| Embodied per day (M, amortised) | 5,000,000 ÷ (4 × 365) | 3,424.66 gCO₂eq/day |
| Total carbon per day (O + M) | 14,400 + 3,424.66 | 17,824.66 gCO₂eq/day |
| Functional units per day (R) | User requests served | 100,000 requests/day |
| SCI score | 17,824.66 ÷ 100,000 | 0.1782 gCO₂eq/request |
The score, 0.1782 gCO₂eq per request, is the deliverable. Its value is not in the absolute number but in its movement: shift the workload to a cleaner region and I falls; right-size the virtual machines and E falls; consolidate onto fewer, longer-lived instances and M per request falls. Each is an engineering decision the score makes visible. Note too that operational emissions dominate here — a common pattern for always-on cloud services, and the reason carbon-aware scheduling tends to deliver the largest reductions.
Marginal versus average carbon intensity
The single most technically important — and most contested — choice in the SCI specification is its use of marginal rather than average carbon intensity for the I term. The distinction matters because it is exactly where SCI and a GHG Protocol inventory part company.
Marginal intensity (SCI uses this)
The emissions caused by an additional unit of demand right now — which power plant ramps up when your workload starts. This is a consequential view: it answers “what changes if I run this here, now?” It is the right signal for carbon-aware scheduling and for proving that an optimisation genuinely reduced emissions.
Average intensity (inventories use this)
The mean emissions across all generation on the grid over a period. This is an attributional view: it answers “what is my fair share of the grid’s total emissions?” It is the right basis for a Scope 2 location-based inventory figure, but it is a poor signal for an optimisation decision because it barely moves when you shift load.
Because SCI uses marginal intensity and Scope 2 inventory accounting uses average intensity, an SCI-derived emissions figure cannot be dropped straight into a GHG inventory. The Green Software Foundation’s own guidance is explicit that mapping SCI work into a CSRD or GHG Protocol disclosure requires confirming that average location-based factors — not the marginal factors SCI prefers — were used for the inventory line. Teams that reuse their marginal SCI numbers as inventory inputs introduce a basis mismatch that an assurance provider will flag.
SCI versus GHG Protocol and ISO 14067
SCI is often compared to the GHG Protocol and to product carbon footprinting under ISO 14067. All three quantify carbon, but they answer different questions and obey different rules. The matrix below sets them side by side.
| Dimension | ISO/IEC 21031 (SCI) | GHG Protocol / ISO 14064-1 | ISO 14067 (product footprint) |
|---|---|---|---|
| Output | A rate — carbon per functional unit | A total — tonnes CO₂e per period | A total per product unit (cradle-to-gate/grave) |
| Accounting view | Consequential (marginal) | Attributional (average / market-based) | Attributional (allocated life-cycle) |
| Offsets / market measures | Excluded by design — cannot lower the score | Disclosed separately; targets are gross | Excluded from the footprint itself |
| Grid factor basis | Location-based marginal | Location-based average and market-based both | Average / attributional |
| Primary user | Software engineers, architects, SREs | Sustainability and finance teams | Product and LCA teams |
| Granularity | Per service, per request, real-time | Organisational, annual | Per product / per functional unit |
| Use in regulatory disclosure | Supporting data only — not the disclosed figure | The disclosed figure | Supports product-level claims |
The practical relationship is layered, not competitive. A GHG inventory tells the organisation that cloud and software emissions are material within Scope 2 and Scope 3 but offers little granularity to act on them. SCI supplies that granularity — per service, per request, in near-real time — and gives engineering teams a number they can move. The inventory remains the system of record for disclosure; SCI becomes the system of optimisation beneath it.
SCI and disclosure regimes — CSRD and IFRS S2
As software and cloud emissions grow as a share of corporate footprints, organisations subject to CSRD / ESRS E1 and IFRS S2 increasingly need a defensible methodology for the software portion of their inventory. SCI is the natural source of that engineering data — but it does not, on its own, produce a compliant disclosure.
- Granular, auditable energy-consumption data for software systems
- An efficiency metric and target the transition plan can cite
- A consistent way to track software-emissions reductions over time
- Boundary and methodology documentation the assurance trail can use
- Market-based Scope 2 figures — SCI uses marginal, not contractual, factors
- Scope classification (which emissions are Scope 2 versus Scope 3)
- Organisational reporting boundaries aligned to the financial statements
- An absolute total — SCI is a rate and must be converted to tonnes for disclosure
The GHG Protocol gives corporate-level guidance but lacks the resolution to measure or optimise a specific application. SCI fills that gap downward. The disciplined pattern is to run SCI for engineering decisions on a marginal basis, then maintain a parallel average, location-based and market-based calculation of the same energy data for the inventory and disclosure line. The energy measurements are shared; the carbon-intensity basis differs by purpose.
Edge cases, exclusions and aggregation
Several rules in the specification only matter at the edges, but they are where SCI scores most often go wrong.
Implementation workflow and governance
Operationalising SCI is less about the one-off calculation than about wiring it into the engineering lifecycle so the score updates as the system changes. A workable governance pattern has four stages.
Capture real energy or utilisation telemetry from cloud and on-prem hardware, plus a time-resolved marginal grid-intensity feed. Record the data sources — they are the evidence trail.
Fix the boundary and functional unit, document every exclusion, and compute O and M. Pin the embodied figures to device LCAs where available.
Embed the calculation in CI/CD or observability so the SCI score recomputes on deploy. Treat a regression in the score like a performance regression.
Publish the score, boundary and methodology; in parallel, maintain the average/market-based recast of the same energy data for the inventory and any disclosure line.
The standard’s third normative reporting requirement — disclose the SCI score, the software boundary, and the calculation methodology together — is what makes a published score trustworthy. A bare number with no boundary and no method is not an SCI score in any meaningful sense; the three travel together or not at all.
Tracking an SCI score over time
Because SCI is a rate, the value of measuring it compounds when it is tracked release over release. A falling SCI score against flat or growing traffic is the clearest possible evidence that efficiency work is paying off — the metric isolates efficiency from scale in a way an absolute footprint never can.
| Point | gCO₂eq/request |
|---|---|
| 2024-Q1 | 0.2410 gCO₂eq/request |
| 2024-Q3 | 0.2130 gCO₂eq/request |
| 2025-Q1 | 0.1980 gCO₂eq/request |
| 2025-Q3 | 0.1820 gCO₂eq/request |
| 2026-Q1 | 0.1710 gCO₂eq/request |
The trajectory above is illustrative, but the pattern it shows is the goal of the whole exercise: a score that bends downward as carbon-aware scheduling, region selection, right-sizing and hardware-lifetime extension take effect — each a lever the SCI equation makes legible.
SCI readiness checklist
This checklist covers the gaps between an intuition that “our software uses energy” and a defensible, reportable SCI score. Tick what is already true; the result panel summarises where the measurement stands.
Common measurement errors
Frequently asked questions
ISO/IEC 21031:2024 is the international standard for Software Carbon Intensity, published in March 2024 under ISO/IEC JTC 1 and formalising the Green Software Foundation’s SCI specification. It defines a methodology for calculating an SCI score — the rate of carbon emissions a software system causes per functional unit of work, given by SCI = ((E × I) + M) per R. The score exists to make software efficiency measurable and comparable so that engineering teams can drive it down.
No. A footprint is a total — absolute emissions over a period. SCI is a rate — emissions per functional unit. A high-traffic application can have a low SCI score yet large total emissions, and vice versa. SCI measures efficiency and is meant to be tracked against itself over time and used to guide design decisions, not to report an absolute figure. For the total, you need a GHG inventory under the GHG Protocol or ISO 14064-1.
E is the energy the software’s hardware consumes in kWh. I is the location-based marginal carbon intensity of the grid in gCO₂eq/kWh. The product E × I is the operational emissions, O. M is the embodied (manufacturing) emissions of the hardware, amortised to the software’s share as M = TE × TS × RS — total embodied emissions times a time-share times a resource-share. R is the functional unit by which the software scales — per user, per request, per machine-learning job. The whole expression is the total carbon caused by the software divided by the work it performs.
SCI is built to guide decisions, so it uses a consequential (marginal) view of carbon intensity — the emissions caused by an additional unit of demand, reflecting which generation responds when a workload runs. Marginal intensity moves meaningfully when you shift load to a cleaner time or region, making it the right signal for carbon-aware scheduling. Grid-average intensity, used in Scope 2 location-based inventories, is attributional and barely responds to such decisions. This difference is why an SCI figure cannot be reused directly as an inventory input.
No. The specification states that market-based measures shall not be included in either the operational or the embodied term. Certificates, power purchase agreements and offsets cannot reduce an SCI score. The only ways to lower it are genuine efficiency improvements — using less energy, running on cleaner grids by location and time, or using fewer and longer-lived hardware resources. Procurement instruments belong in market-based Scope 2 accounting, which is a separate calculation.
Not on its own. SCI supplies granular, auditable software energy data and an efficiency metric a transition plan can cite, but a CSRD/ESRS E1 or IFRS S2 disclosure also needs market-based Scope 2 figures, scope classification, organisational reporting boundaries, and an absolute total in tonnes. Because SCI uses marginal rather than average factors and excludes market-based measures, its figures must be recast onto an average, market-based basis before they enter a disclosure. The disciplined approach is to share the underlying energy measurements between the two calculations while keeping the carbon-intensity basis appropriate to each purpose.
Choose the unit of work that best represents how your software scales and that is meaningful to its users — per user, per request, per API call, per transaction, per device, or per machine-learning job. The same R must apply to every term in the equation, and two SCI scores are only comparable if they share the same functional unit and boundary. For aggregate scores across components, each component must use the aggregate’s functional unit, converting where necessary before summation.
When the boundary includes data-centre operations, the energy term E must reflect facility overhead — cooling, power distribution and other non-IT load — which is captured by scaling the IT energy up with the data centre’s Power Usage Effectiveness (PUE). PUE is therefore part of the operational calculation, not a separate variable. Omitting it understates operational emissions, often materially. A lower PUE directly improves the operational half of the SCI score for any workload hosted in that facility.
No. ISO/IEC 21031:2024 is a voluntary methodology standard. No jurisdiction currently requires an SCI score as a legal reporting obligation. Its influence comes from adoption across the technology industry as a common, ISO-recognised way to express and reduce software emissions, and from its growing use as supporting data within ESG and IT-service sustainability programmes.
Turn an SCI score into measured reductions.
GreenCalculus calculators quantify the operational and embodied halves of the SCI equation for cloud, AI and data-centre workloads — with the boundary, functional unit and factor provenance that make a published score defensible.