Sustainability Architecture Assessment: [Workload or system name]
Assessment of the environmental impact of a software system and of the architecture decisions that reduce it: boundary and functional unit, data sources, a Software Carbon Intensity (SCI) score with its operational and embodied parts, hotspots, levers (region and time shifting, demand shaping, efficiency, hardware lifetime, data), scenarios with recomputed scores, trade-offs with other qualities, targets, monitoring and decisions. The score follows the SCI method of ISO/IEC 21031:2024 (published from the Green Software Foundation SCI specification); levers are mapped to the AWS Well-Architected Sustainability pillar, the Azure Well-Architected sustainable workloads guidance and the Google Cloud Well-Architected Framework sustainability pillar; corporate reporting terms follow the GHG Protocol scopes. Replace every [bracketed] value and every row marked Example. The examples follow an order API running on eight dedicated servers.
Document control
| Field | Value |
|---|
| Document ID | [SAA-001] |
| Workload or system | [Name and ID in the application inventory] |
| Assessment type | [Design-time option comparison / Baseline / Periodic re-assessment] |
| Assessment period | [YYYY-MM-DD to YYYY-MM-DD] |
| Functional unit (R) | [Per API call / per user per month / per transaction / per GB processed] |
| Hosting | [Provider and regions / On-premises data centre] |
| Version | [0.1] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@solution-architect] |
| Approvers/reviewers | [@sustainability-lead], [@finops-lead], [@platform-lead], [@product-owner] |
| Classification | [Internal / Confidential] |
| Last updated | YYYY-MM-DD |
| Related documents | [Architecture description], [FinOps review], [Corporate GHG inventory] |
Approvals
| Role | Name | Decision | Date |
|---|
| Product owner | [@name] | [Approve / Approve with conditions / Reject] | YYYY-MM-DD |
| Sustainability lead | [@name] | [Decision] | YYYY-MM-DD |
| FinOps lead | [@name] | [Decision] | YYYY-MM-DD |
| Architecture board | [@name] | [Decision] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft |
| 1.0 | YYYY-MM-DD | [@name] | Example: Baseline score approved; scenarios B and C accepted for the roadmap |
| 1.1 | YYYY-MM-DD | [@name] | Example: Re-assessment after right-sizing; carbon intensity factor updated to the latest annual value |
Contents
1. Scope, boundary and functional unit
1.1 Purpose and questions
[State why this assessment is done and which decisions it will inform.] Example: Compare three hosting options for the order API before the 2027 platform renewal, and set a carbon intensity target per order that the product team can track release by release.
Questions this assessment answers:
- What is the carbon intensity of the workload per functional unit today?
- Which components and which part (operational or embodied) dominate it?
- Which architecture options reduce it, by how much, and at what cost to reliability, performance and spend?
- Which target and which indicators will the team own?
1.2 Software boundary
| Component group | In boundary | Reason if excluded |
|---|
| Production compute (Example) | Yes | |
| Production storage and backups (Example) | Yes | |
| Networking inside the provider (load balancers, gateways) (Example) | Yes | |
| Data transfer to end users over the internet (Example) | No | No reliable factor available; noted as a limitation |
| End-user devices (Example) | No | Out of the team's control for an API; revisit for the web front end |
| Disaster recovery standby (Example) | Yes | Always-on capacity |
| Non-production environments (Example) | Yes | Run 24 hours a day today |
| CI/CD runners and build caches (Example) | Yes, apportioned | Shared runners; allocation by build minutes |
| Observability (logs, metrics, traces) (Example) | Yes | High retention volumes |
| [Group] | [Yes / No / Apportioned] | [Reason] |
1.3 Functional unit
| Item | Value |
|---|
| Functional unit (R) | Example: One successful order API call |
| Reason | Example: Calls grow with business volume; the product team already tracks them |
| Volume in period | Example: 45,000,000 calls in a 30-day month |
| Source of volume | Example: API gateway metrics, successful responses only |
2. Method and data sources
2.1 SCI method
The SCI score is a rate of carbon emissions per functional unit, not a total. ISO/IEC 21031:2024 and the Green Software Foundation SCI specification express it as:
SCI = ((E x I) + M) per R
E energy consumed by the software in the boundary (kWh)
I location-based carbon intensity of that energy (gCO2e per kWh)
M embodied emissions of the hardware, apportioned to the software (gCO2e)
R functional unit
M = TE x (TiR / EL) x (RR / ToR)
TE total embodied emissions of the hardware
TiR time the hardware is reserved for the software in the period
EL expected lifespan of the hardware
RR resources reserved for the software (for example vCPUs)
ToR total resources of the hardware
The method has five steps, which this template follows: bound the system (section 1.2), choose the functional unit (section 1.3), choose a quantification method per component (section 3), quantify (section 4), and report the score with its boundary and method (section 11). The score is the sum of the scores of its components. Offsets, renewable energy certificates and other market-based instruments do not reduce an SCI score; the score can only fall by using less energy, using lower-carbon energy or using less hardware.
2.2 Relation to corporate reporting
| GHG Protocol scope | What it covers | Where this workload appears |
|---|
| Scope 1 | Direct emissions from owned sources | Example: Diesel generators in the owned data centre |
| Scope 2 | Purchased electricity, heat and cooling | Example: Electricity of the owned data centre (location-based and market-based reported separately) |
| Scope 3 | Other indirect emissions in the value chain | Example: Cloud services (purchased goods and services); embodied emissions of purchased servers (capital goods) |
Keep the SCI score for engineering decisions and leave the corporate inventory to the sustainability team; agree with them which factors both use. The GHG Protocol is revising its Scope 2 guidance (public consultation 2025 to 2026); check ghgprotocol.org for the current status before relying on market-based rules.
2.3 Factors and sources
| Factor | Value | Source and date | Quality |
|---|
| Server average power | Example: 0.2 kW per server at observed utilisation | Power metering on PDUs, 30-day average | Measured |
| PUE of the data centre | Example: 1.2 | Facility report for the last 12 months | Reported |
| Storage and network energy | Example: 150 kWh per month | Model from provider guidance and device datasheets | Modelled |
| Grid carbon intensity (I) | Example: 350 gCO2e per kWh | National grid annual average, location-based, [year] | Published |
| Embodied emissions per server (TE) | Example: 1,200 kgCO2e | Manufacturer product carbon footprint sheet | Published, model-level |
| Expected lifespan (EL) | Example: 4 years (35,040 hours) | Asset refresh policy | Policy |
| Cloud provider emissions data | [Value] | [Provider carbon tool export, method version] | [Provider-calculated] |
| [Factor] | [Value] | [Source, date] | [Measured / Modelled / Reported / Published / Policy] |
3. Component inventory
| Comp ID | Component | Environment | Resources | Average utilisation | Hours in period | Quantification | Owner |
|---|
| CMP-01 (Example) | Order API servers | Production | 8 dedicated servers | 22% CPU | 720 | Measured power | Platform |
| CMP-02 (Example) | Database cluster | Production | Included in CMP-01 for this example | 35% CPU | 720 | Measured power | Data |
| CMP-03 (Example) | Storage and backups | Production | 40 TB | Not applicable | 720 | Modelled | Platform |
| CMP-04 (Example) | DR standby | DR site | Included in CMP-01 (2 of 8 servers) | 3% CPU | 720 | Measured power | Platform |
| CMP-05 (Example) | Test environments | Non-production | Shared virtual hosts, 16 of 64 vCPUs | 9% CPU | 720 | Apportioned | Engineering |
| CMP-06 (Example) | Logs and traces | Production | 30 days hot, 1 year cold | Not applicable | 720 | Modelled | SRE |
| [CMP-nn] | [Component] | [Env] | [Resources] | [%] | [h] | [Method] | [@owner] |
Note: in the worked example below, CMP-02 and CMP-04 run on the eight servers of CMP-01, and CMP-03 and CMP-06 are in the 150 kWh storage and network figure; CMP-05 is shown separately in section 4.3 to illustrate apportioning on shared hardware.
4. SCI baseline calculation
4.1 Operational emissions (E x I)
| Step | Calculation | Result |
|---|
| Server energy | 8 servers x 0.2 kW x 720 h x PUE 1.2 | 1,382.4 kWh (Example) |
| Storage and network energy | From section 2.3 | 150.0 kWh (Example) |
| E | 1,382.4 + 150.0 | 1,532.4 kWh (Example) |
| I | From section 2.3 | 350 gCO2e/kWh (Example) |
| E x I | 1,532.4 x 350 | 536,340 gCO2e (Example) |
4.2 Embodied emissions (M)
| Step | Calculation | Result |
|---|
| Per server | 1,200,000 g x (720 h / 35,040 h) x (1 / 1) | 24,657.53 gCO2e (Example) |
| M for 8 dedicated servers | 8 x 24,657.53 | 197,260.27 gCO2e (Example) |
4.3 Apportioning on shared hardware
Example: The test environments (CMP-05) use 16 of 64 vCPUs on a shared host with TE of 1,500 kgCO2e and EL of 5 years (43,800 hours). For 720 hours: M = 1,500,000 x (720 / 43,800) x (16 / 64) = 6,164.38 gCO2e. Add their energy, apportioned by the same share, to E when they are in the boundary. The worked baseline below covers CMP-01 to CMP-04 and CMP-06 only, so that the arithmetic stays easy to follow.
4.4 Score
| Item | Value |
|---|
| (E x I) + M | 536,340 + 197,260.27 = 733,600.27 gCO2e (Example) |
| R | 45,000,000 calls (Example) |
| SCI | 733,600.27 / 45,000,000 = 0.0163 gCO2e per call, that is 16.30 mgCO2e per call (Example) |
| Share operational | 536,340 / 733,600.27 = 73.1% (Example) |
| Share embodied | 197,260.27 / 733,600.27 = 26.9% (Example) |
Consequences: [state what the numbers mean for the design.] Example: Operational emissions dominate, so region choice and right-sizing are the first levers; once the grid factor falls, embodied emissions will dominate and hardware lifetime and utilisation become the main levers (section 8).
5. Hotspot analysis
| Rank | Component or behaviour | Share of score | Cause | Candidate lever |
|---|
| 1 (Example) | Order API and database servers (6 of the 8 servers, 22% and 35% utilisation) | About 70% | Sized for an annual peak that lasts two weeks | Right-size and autoscale (LEV-02) |
| 2 (Example) | DR standby running hot (2 of the 8 servers, 3% utilisation) | About 23% | Warm standby with full capacity | Smaller pilot-light standby if RTO allows (LEV-05) |
| 3 (Example) | Grid carbon intensity of the current region | Multiplies all operational energy | Region chosen for latency in 2019 | Move to a lower-carbon region (LEV-01) |
| 4 (Example) | Logs kept hot for 30 days | Part of the 7% storage and network share | Default retention | Sample debug logs; shorten hot retention (LEV-06) |
| 5 (Example) | Batch reconciliation at 18:00 | Small, but at peak grid intensity | Historical schedule | Shift to low-intensity hours (LEV-03) |
| [Rank] | [Component] | [%] | [Cause] | [LEV-nn] |
Working for the shares (Example): the eight servers emit 1,382.4 x 350 = 483,840 g operational plus 197,260.27 g embodied, that is 681,100.27 g or 92.8% of 733,600.27 g. Each server carries the same power and embodied factors, so each is 1/8 of that, about 11.6% of the score: the six API and database servers are about 69.6% and the two DR servers about 23.2%. Storage, network and logs together are 150 x 350 = 52,500 g, about 7.2%. Region carbon intensity (rank 3) is not a share: it scales the whole operational 73.1%.
6. Provider framework mapping
| Area | AWS Sustainability pillar best practice area | Azure Well-Architected sustainability guidance | Google Cloud sustainability pillar principle | Findings and levers |
|---|
| Placement | Region selection | Design methodology (region and placement choices) | Use regions that consume low-carbon energy | Example: LEV-01 |
| Demand | Alignment to demand | Cost Optimization and Performance Efficiency recommendations | Optimize resource usage for sustainability | Example: LEV-02, LEV-03 |
| Software | Software and architecture | Performance Efficiency recommendations | Develop energy-efficient software | Example: LEV-04 |
| Data | Data management | Operational Excellence recommendations (telemetry) | Optimize data and storage for sustainability | Example: LEV-06 |
| Hardware | Hardware and services | Reliability recommendations (redundancy sizing) | Optimize AI and ML workloads for energy efficiency, where relevant | Example: LEV-05, LEV-07 |
| Process | Process and culture | Design methodology and governance | Continuously measure and improve; promote a culture of sustainability; align with industry guidelines | Example: Section 11 |
Provider tools to source data, where available: the AWS Customer Carbon Footprint Tool, Carbon optimization in Azure (Microsoft has announced that the Power BI Emissions Impact Dashboard for Azure retires on 31 March 2027, so export its history before then) and Google Cloud Carbon Footprint. Check each tool's current name and method page before use. Each uses its own method and boundary; record the method version and do not mix their outputs with your own factors in one score without saying so.
7. Levers
| Lever ID | Lever | Term changed | Description | First estimate | Constraints |
|---|
| LEV-01 (Example) | Region shift | I | Move the workload to a region whose grid intensity is about 50 gCO2e/kWh | Operational part falls by about 86% | Latency to users; data residency (compliance/data-residency-sovereignty-assessment) |
| LEV-02 (Example) | Right-size and autoscale | E, M | Run 5 servers on average instead of 8 | E and M fall by about 34% and 38% | Peak capacity and scale-out time |
| LEV-03 (Example) | Time shifting | I | Schedule deferrable batch when the grid is cleaner | Small; depends on hourly intensity data | Batch deadlines; need for hourly factors |
| LEV-04 (Example) | Efficient code paths | E | Cache catalogue lookups; remove a redundant serialisation step | To be measured by load test | Engineering effort |
| LEV-05 (Example) | Lighter DR pattern | E, M | Pilot light instead of warm standby | Removes most standby energy | RTO must still be met (architecture/resilience-tiering-ha-dr-design) |
| LEV-06 (Example) | Telemetry and retention | E | Sample debug traces, shorter hot retention, cold tier for audit logs | A few percent | Audit and incident needs |
| LEV-07 (Example) | Extend hardware life | M | Keep servers 6 years instead of 4 | M falls by one third | Support contracts, failure rates, efficiency of newer hardware |
| LEV-08 (Example) | Demand shaping | R, E | Batch small client calls into bulk requests | Fewer calls, less overhead per order; note that R changes meaning if the unit changes | Client changes; keep the same functional unit when comparing |
| [LEV-nn] | [Lever] | [Term] | [Description] | [Estimate] | [Constraints] |
8. Scenarios and recomputed scores
| Scenario | Levers | E (kWh) | E x I (g) | M (g) | SCI (mgCO2e per call) | Change from baseline |
|---|
| Baseline (Example) | None | 1,532.4 | 536,340 | 197,260.27 | 16.30 | |
| A (Example) | LEV-02 (5 servers) | 1,014.0 | 354,900 | 123,287.67 | 10.63 | -34.8% |
| B (Example) | LEV-02 and LEV-01 (I = 50) | 1,014.0 | 50,700 | 123,287.67 | 3.87 | -76.3% |
| C (Example) | B and LEV-07 (EL = 6 years) | 1,014.0 | 50,700 | 82,191.78 | 2.95 | -81.9% |
| [Scenario] | [Levers] | [E] | [ExI] | [M] | [SCI] | [%] |
Working for scenario A: E = 5 x 0.2 x 720 x 1.2 + 150 = 1,014.0 kWh; E x I = 1,014.0 x 350 = 354,900 g; M = 5 x 24,657.53 = 123,287.67 g; SCI = (354,900 + 123,287.67) / 45,000,000 = 10.63 mg per call. Scenario B keeps E and M and changes I: 1,014.0 x 50 = 50,700 g; SCI = 173,987.67 / 45,000,000 = 3.87 mg. Scenario C changes EL to 52,560 hours: M = 5 x 1,200,000 x 720 / 52,560 = 82,191.78 g; SCI = 132,891.78 / 45,000,000 = 2.95 mg.
Consequences: Example: After scenario B, embodied emissions are about 71% of the score (123,287.67 / 173,987.67), so further gains come from utilisation and hardware lifetime, not from more region changes. Moving to a managed or serverless service would transfer M to the provider's shared hardware at a higher utilisation; model it with the provider's data before deciding.
9. Trade-offs with other qualities
| Lever | Reliability | Performance | Security and compliance | Cost | Decision rule |
|---|
| LEV-01 Region shift (Example) | Neutral if the new region has the same zone count | +25 ms latency for users in the home country | Residency review needed | Region prices differ by about 5% | Accept if p95 latency stays within the SLO and residency allows |
| LEV-02 Right-size (Example) | Risk during sudden peaks | Scale-out takes 3 minutes | Neutral | Saves about a third of compute | Accept with pre-scaling for known peaks |
| LEV-05 Lighter DR (Example) | RTO rises from 15 to 60 minutes | Neutral | Neutral | Saves standby cost | Accept only if the tier allows a 60-minute RTO |
| LEV-06 Retention (Example) | Less data for incident analysis | Neutral | Audit logs must remain complete | Saves storage | Keep audit logs; sample debug data only |
| [Lever] | [Effect] | [Effect] | [Effect] | [Effect] | [Rule] |
Cost and carbon usually move together (removing waste reduces both), but not always: a cheaper region can have a higher grid intensity, and commitments bought for three years can lock in oversized capacity. Review these levers together with FinOps Cost Review (ops/finops-cost-review).
10. Targets and indicators
| ID | Indicator | Baseline | Target | Date | Owner |
|---|
| SUS-KPI-01 (Example) | SCI per successful order call | 16.30 mgCO2e | 4.0 mgCO2e | YYYY-MM-DD | Product owner |
| SUS-KPI-02 (Example) | Absolute monthly emissions in boundary | 733.6 kgCO2e | Below 250 kgCO2e | YYYY-MM-DD | Platform lead |
| SUS-KPI-03 (Example) | Average CPU utilisation of production compute | 22% | Above 45% | YYYY-MM-DD | Platform lead |
| SUS-KPI-04 (Example) | Non-production hours running outside working time | 100% | Below 30% | YYYY-MM-DD | Engineering manager |
| SUS-KPI-05 (Example) | Hot log volume per million calls | [Value] | [Value] | YYYY-MM-DD | SRE lead |
| [SUS-KPI-nn] | [Indicator] | [Value] | [Value] | YYYY-MM-DD | [@owner] |
11. Monitoring and reporting
| Item | Decision |
|---|
| Recalculation frequency | Example: Monthly from platform metrics; full review each year or on architecture change |
| Data pipeline | Example: Power and utilisation metrics, request counts and factor table feed a scheduled job that writes the score to the engineering dashboard |
| Factor updates | Example: Grid intensity updated yearly; embodied factors on hardware change; changes logged in the revision history |
| Release gate | Example: A release whose load test shows more than 10% higher energy per call needs a recorded decision |
| Report content | Example: Score, boundary, functional unit, factor table, method per component, changes since last report |
| Audience | Example: Product team, architecture board, sustainability team (input to their Scope 3 estimate) |
| Disclosure | Example: Published internally only; any public claim reviewed by legal and sustainability teams |
| [Item] | [Decision] |
12. Decisions and action plan
12.1 Decisions
| ID | Decision | Scenario | Reason | Date |
|---|
| SAA-DEC-01 (Example) | Right-size order API to 5 servers with autoscaling | A | Largest saving with low risk; also saves cost | YYYY-MM-DD |
| SAA-DEC-02 (Example) | Move to region R2 at the 2027 platform renewal | B | Latency and residency reviews passed | YYYY-MM-DD |
| SAA-DEC-03 (Example) | Rejected: lighter DR pattern | Not used | Tier 1 RTO of 15 minutes cannot be met with pilot light | YYYY-MM-DD |
| [SAA-DEC-nn] | [Decision] | [Scenario] | [Reason] | YYYY-MM-DD |
12.2 Actions
| ID | Action | Owner | Due | Delivers |
|---|
| SAA-ACT-01 (Example) | Configure autoscaling and pre-scaling calendar | [@platform-lead] | YYYY-MM-DD | SAA-DEC-01 |
| SAA-ACT-02 (Example) | Schedule non-production shutdown outside working hours | [@engineering-manager] | YYYY-MM-DD | SUS-KPI-04 |
| SAA-ACT-03 (Example) | Automate monthly score calculation | [@sre-lead] | YYYY-MM-DD | Section 11 |
| [SAA-ACT-nn] | [Action] | [@owner] | YYYY-MM-DD | [Decision or KPI] |
13. Review checklist and traceability
13.1 Review checklist
13.2 Traceability
| Hotspot | Lever | Scenario | Decision | Indicator |
|---|
| Rank 1 (Example) | LEV-02 | A | SAA-DEC-01 | SUS-KPI-01, SUS-KPI-03 |
| Rank 3 (Example) | LEV-01 | B | SAA-DEC-02 | SUS-KPI-01, SUS-KPI-02 |
| Rank 2 (Example) | LEV-05 | Not used | SAA-DEC-03 | Not applicable |
| [Hotspot] | [LEV-nn] | [Scenario] | [SAA-DEC-nn] | [SUS-KPI-nn] |
14. Glossary and references
14.1 Glossary
| Term | Meaning in this document |
|---|
| Carbon intensity (I) | Emissions per unit of electricity for a grid and period, location-based |
| Embodied emissions | Emissions from making, transporting and disposing of hardware |
| Functional unit (R) | The unit by which the software scales and in which the score is expressed |
| Location-based | Using the average emissions of the grid where the energy is consumed |
| Market-based | Using emissions from contracts and certificates an organisation buys |
| PUE | Power usage effectiveness: total facility energy divided by IT equipment energy |
| SCI | Software Carbon Intensity, a rate of emissions per functional unit |
| Time shifting | Running deferrable work when grid intensity is lower |
14.2 References
| Reference | Version or date checked | Use |
|---|
| ISO/IEC 21031:2024, Information technology: Software Carbon Intensity (SCI) specification, iso.org and webstore.iec.ch | Edition 1, March 2024 | Formula terms; method structure only |
| Green Software Foundation, Software Carbon Intensity specification, sci.greensoftware.foundation | Version 1.1.0 web edition | Formula, terms and five-step method |
| AWS Well-Architected Framework, Sustainability pillar, docs.aws.amazon.com | Publication date 2024-11-06 | Best practice area names |
| Microsoft Azure Well-Architected Framework, Sustainable workloads on Azure, learn.microsoft.com | ms.date 2026-06-25 | Pillar relationships |
| Google Cloud Well-Architected Framework, Sustainability pillar, docs.cloud.google.com | Last updated 2026-10-13 | Principle names |
| GHG Protocol Corporate Standard and Scope 3 Standard, ghgprotocol.org | Current editions; Scope 2 revision in progress | Scope terms |
| [Grid intensity data source] | [Year] | Factor I |
| [Hardware carbon footprint sheets] | [Model and date] | Factor TE |
Standard and licence note
Structure aligned with the Software Carbon Intensity method of ISO/IEC 21031:2024: only the formula, the names of its terms and the order of its steps are used, and no text, tables or definitions of the ISO/IEC publication are reproduced; obtain the standard for normative requirements. Based also on the openly published Green Software Foundation SCI specification (cited, not copied), on the area and principle names of the AWS Well-Architected Sustainability pillar, the Azure Well-Architected sustainable workloads guidance and the Google Cloud Well-Architected Framework sustainability pillar, and on the scope terms of the GHG Protocol. AWS, Microsoft Azure and Google Cloud and their products are trademarks of their owners; this template is not affiliated with or endorsed by them. This template is original text written for this collection; all factors and figures are illustrative examples, not benchmarks. Check the current official versions before use. Template licence: MIT.