EcoPigs Methodology v3 — the Measured-Carbon Model (EMCM)

Measured.
Not approximated.

EcoPigs measures the energy a page uses from real browser CPU-time — not a bytes guess — then converts it to carbon using live grid data. Version 3 adds the EcoPigs Measured-Carbon Model (EMCM): every headline figure now comes with a 90% confidence range and an honesty tier, and — once you install the badge — is calibrated against your site's real visitors.

The EcoPigs Measured-Carbon Model (EMCM)

v2.0 changed how we measure a single scan: real CPU-time from the browser instead of a bytes guess (the detail below still stands — it is the engine underneath). v3 changes what number we report. Instead of a single bare figure, EMCM produces a calibrated estimate with a 90% confidence range and an honesty tier, so the figure never claims more certainty than it has.

Every figure carries a range and a tier

We never show a bare gram number. Each headline figure is shown as a median with its 90% range (for example, 0.012 g, range 0.009–0.016 g) and one of three tiers:

Modelled

A cold first-visit estimate. No real-visit data yet — the figure leans on our fitted population priors.

Measured

The scan estimate, calibrated against the measured population.

Measured (real visits)

Calibrated against your own real visitors via the EcoPigs badge — the truest figure, on the correct basis.

Measured energy, modelled conversion

This is the honest heart of EMCM. We measure the work a page does — CPU-time from the browser, bytes on the wire — but browsers do not expose actual joules, so energy is estimated from that work using device power profiles, then converted to carbon using grid intensity. That conversion carries a coefficient-and-grid floor of uncertainty that does not shrink with more visits. More real visits pin down your average traffic; they do not make the coefficients exact. So the ~±30% range is correct and stays — we will never render it tighter than the data supports.

The ladder: free scan → install the badge

A free scan gives you an estimate — a cold, first-visit number with no caching and no return visitors (the conservative end). Installing the EcoPigs badge turns that into a measurement of your real visitors' actual footprint. The grade letter often barely changes — but the reportable figure can move by around 2.5x once caching and return visits are counted, which is exactly why a site doing a CDP, SECR, or B Corp disclosure needs the badge, not just the scan.

A note on the EcoPigs Web Carbon Index. Where we benchmark a site against others, the comparison is always like-for-like (e.g. "cleaner than X% of measured WordPress sites, n=118") and always shows its sample size. Our dataset is the deepest measured set we know of — not a census of the web — so we never claim "cleaner than X% of the internet."

How thin-data sites are calibrated (empirical-Bayes)

The scientific core of EMCM is an empirical-Bayes shrinkage estimator on log-emissions — the mechanism SWD and CO2.js categorically lack. A site with rich real-visit data gets a tight estimate centred on its own measurement. A site with thin or no data borrows strength from a class prior — the corpus pattern for sites sharing its sector, tech stack and hosting region — and its interval honestly widens. Where a class is thin, the prior pools up a hierarchy (sector × stack × region → stack × region → region → global) to the most specific level with enough sites. This is what a single-number estimator cannot do: it cannot know when it is guessing. EMCM does, and says so in the width of the interval. Full derivation in the EMCM technical methodology.

The dataset behind the priors

The priors are fitted on real measurement: around 1,130 graded sites and 16,000+ measurements over 10 continuous months (Aug 2025 – Jun 2026), with a clean measured-tier subset of 218 sites across 13 countries. We are precise about its shape — it is deep, not broad: the measured set is concentrated (heavily UK and WordPress, mostly one account). So the priors are tight where the data is rich and honestly wide elsewhere, and any benchmark we publish is scoped to a like-for-like cohort with its sample size shown. We say "deepest," never "largest" or "the web."

Reproducible by design

Every published figure must be reconstructable from its inputs. A machine-readable methodology and a per-score reproducibility trace are live at api.ecopigs.co.uk/api/v4/methodology: for any measured site, the trace returns the inputs, the exact coefficients used (each with its source and citation flag), which grid fallback fired per segment, the calibration state, and the output median and interval — so any EcoPigs number can be audited end to end.

Your score vs your system footprint (v3.1)

v3.1 adds a second, clearly-separated figure: an Estimated System Footprint, shown beneath the score — never replacing it. The two are a hierarchy, not rivals:

  • Your score & grade — what you can actually move (operational + transfer). This stays the headline and the graded number; it is unchanged.
  • Estimated System Footprint — the fuller picture, adding a fair time-share allocation of the visitor's device-manufacturing carbon. It is a bigger number (around 10× the score), with a wide band and low confidence.

Two honesty points make this work. First, it is context, not a "truer" number — it is fuller-boundary, not more honest than the score. Second, the device-manufacturing share is an allocation of hardware that exists regardless of this visit (the device owner's Scope 3) — informational, not additive to a corporate carbon inventory. Why keep it out of the grade? A grade must respond to action, and device-manufacturing-by-time is driven by session length and device mix, which a developer cannot move (grading on it would perversely reward bounce rate) — the same principle that keeps Scope 3 separate from Scope 1. For now the session's active time is assumed, not measured, so the figure is tier modelled-assumed-active-time with a deliberately wide band; when real active-session measurement lands (§ the roadmap), the band tightens and the tier flips to measured. In one line: your score is what you can move; your system footprint is the whole picture, including the device life this visit rents — shown honestly, with its uncertainty.

1. The Measurement Engine: What Changed and Why

For over a decade, the web carbon industry has measured the wrong thing.

Every tool out there -- Website Carbon Calculator, Ecograder, Beacon, CO2.js -- rests on one idea: device energy scales with bytes sent. Multiply bytes by a constant. Call it a carbon score. Publish it as fact.

It is not fact. It never was. It was the best proxy when these tools were built. Credit to them -- it moved the talk forward when nothing else existed. But over time, a proxy became a standard. Agencies cite it in green reports. Standards bodies use it in guides. The industry treats it as real data when it is, at best, a rough guess -- and often a wildly wrong one.

Using bytes to guess device energy is like using a banana to measure a football pitch. You get a number. It does not tell you much.

Here is why: a 2MB page of compressed images and a 2MB page of heavy JavaScript look the same to a bytes model. They are not the same. The JS page forces the CPU to parse and run code for seconds. The image page decodes in moments on the GPU. These are very different energy profiles. No amount of tuning a bytes constant will tell them apart.

EcoPigs v2.0 replaces the proxy with real data.

On every scan, we open a Chrome DevTools Protocol (CDP) session. We capture real CPU time, layout work, and render steps from the V8 and Blink engines. We turn those into energy using device power profiles from hardware specs, research papers, and tested benchmarks. The result is a carbon score based on what the page actually did, not what a formula guessed from file size.

We tested this on our own site first. ebbb.io is a light, fast static site -- the kind the bytes-proxy should handle well. On desktop, the proxy guessed 12x too high. Across all device types, 71x too high. On mobile: 320x too high.

That is not a tuning problem. It is a method problem. It has sat at the heart of web carbon scoring for a decade. v2.0 fixes it.

2. Why We Built Something New

The web carbon industry has a data problem. Every tool -- Website Carbon Calculator, Ecograder, Beacon, CO2.js -- rests on one idea: device energy scales with bytes sent.

bytes transferred x energy intensity (kWh/GB) = device energy

SWD v4 gives user devices 0.080 kWh/GB of energy (Malmodin et al. 2023). This is a proxy, not a reading. A 2MB image page and a 2MB JavaScript page score the same, even though the JS page makes the CPU work far harder. In our tests, a light page used 12x less device energy than the proxy said it would.

EcoPigs v2.0 replaces that proxy with real browser data. On each scan, we capture CPU time, layout work, and render steps from the engine itself. We convert those into energy using device power profiles from hardware specs and research papers. The result is a carbon score based on what the browser did, not what we guessed from the file size.

Every other tool runs a version of the same formula with the same data. They will always agree on the same site. But agreement is not accuracy. EcoPigs gives a different number because it measures something different: what the browser did, not what a formula said it should do.

3. The Five-Score System

EcoPigs shows five carbon scores. Each adds one layer of detail. This clarity helps you see what drives your number and how different inputs change it.

Grid Intensity Values Used

ScoreGrid IntensityValueSource
BaselineGlobal average (fixed)473 gCO2e/kWhEmber 2024 data (via Global Electricity Review 2025)
TraditionalSWD v4 default494 gCO2e/kWhCO2.js / Sustainable Web Design Model built-in
LiveHosting country (live)VariesNational Grid ESO API (UK), ENTSO-E (EU), Ember fallback
BEAMHosting country (live)VariesSame as Live
MeasuredPer-segmentVariesDC=hosting country, Network=global 473, Device=global 473

Baseline

A raw score for fair comparison. Uses a fixed global grid average (473 gCO2e/kWh, Ember 2024) with no green hosting offset. Every site is judged on the same terms. Use this to compare against others.

Traditional

What other tools would show. Uses SWD v4 via CO2.js with its defaults (494 gCO2e/kWh grid, 75/25 new/return visitor split). Green hosting is passed to CO2.js, which applies its own offset. This matches Website Carbon Calculator. We include it so you can compare with the industry standard.

Live

Real-time carbon using your hosting country's live grid data, refreshed every 30 minutes. Green hosting offsets applied. This is your main working score -- our best estimate of what your site emits right now.

BEAM (Behavioural Energy Adaptive Model)

Tweaks the live score based on how users really behave. The BEAM model uses smooth curves for resource type, session data, and engagement signals from the EcoPigs RUM pixel, plus device type factors. The combined factor usually falls between 0.7x and 1.3x.

FactorRangeDerivation
Duration (sigmoid)0.35 - 1.00.35 + 0.65 / (1 + e^(-0.08 x (t - 30)))
Scroll depth (linear)0.5 - 1.00.5 + 0.5 x clamp(d/100, 0, 1)
Engagement (tanh)~0.7 - 1.31.0 + 0.3 x tanh(2 x (r - 0.15))
Bounce rate (linear)0.6 - 1.0max(0.6, 1.0 - 0.4 x b/100)
Confidence (linear)0.8 - 1.0max(0.8, 0.8 + 0.2 x c/100)
Device type0.61 - 1.95Device x screen x network factors combined
Combined (all)0.054 - 2.54Theoretical extremes; practical range ~0.7-1.3
BEAM requires real user data. The BEAM score is only calculated when at least 100 RUM sessions have been recorded for the domain. Without RUM data, the BEAM score is unavailable. No floor or ceiling clamp is applied -- the curves are self-bounding by design.

Measured feeds EMCM

Swaps the bytes-proxy for real CPU data from Chrome DevTools Protocol. Uses per-segment grid splitting -- separate grid values for the data centre, network, and user device -- because these three parts draw from three different power grids. Embodied energy (from making hardware) still uses the bytes-proxy, as it cannot be read at runtime. In v3 this measured figure is the input the EMCM calibrates — against population priors, or against your real visitors once the badge is installed — to produce the headline number and its 90% range.

4. Measured Device Energy: How It Works

On every scan, our tool opens a CDP session and turns on performance tracking. After the page loads, we pull metrics straight from the V8 JavaScript engine and the Blink renderer:

What CDP Measures (main thread only)

ScriptDuration

Seconds of JavaScript execution (V8 engine)

LayoutDuration

Seconds of layout/reflow work (Blink engine)

RecalcStyleDuration

Seconds of CSS style recalculation

These are real seconds of main-thread CPU work. They show what the chip actually did, not what we guessed from file size. Web Workers, Service Workers, and off-thread compositing are not included (see Limits).

Conversion to Energy

Energy (Wh) = (duration in seconds x power in watts) / 3600

Three energy parts are worked out:

1. CPU energy (directly measured via CDP)

(ScriptDuration + LayoutDuration + RecalcStyleDuration) x CPU watts / 3600

2. GPU energy (estimated)

estimated compositing duration x GPU watts / 3600

CDP has no direct GPU time metric. We estimate compositing as 30% of (LayoutDuration + RecalcStyleDuration). GPU energy is usually less than 5% of total device energy for normal pages.

3. Screen energy (calculated attribution)

page load duration x screen watts / 3600

The screen draws power for the full page load time. We also give an "incremental" figure that removes the idle baseline the device would use anyway.

Comparison with Bytes-Proxy

For ebbb.io (a light static site, 838 KB transfer, 0.22s script time, scanned as desktop via Puppeteer):

ProfileMeasured OperationalSWD v4 ProxyRatio
Desktop PC (measured)5.1 mWh64 mWh12x overestimate
Laptop (projected)0.9 mWh64 mWh71x overestimate
Mobile (projected)0.2 mWh64 mWh320x overestimate
Weighted avg (projected)0.9 mWh64 mWh71x overestimate

Real data also shows the real difference. Two pages with the same byte size but different CPU loads get the same proxy score. Measured data shows the true gap:

  • A 2 MB page with 0.1s script execution: ~5 mWh on desktop (screen-dominated)
  • A 2 MB page with 3.0s script execution: ~25 mWh on desktop (CPU-dominated)
  • The proxy gives both ~156 mWh
Important caveats: Only the desktop row is directly measured. Laptop, mobile, and weighted rows are projections. The 0.080 kWh/GB proxy is an attributional average designed as a macro-level allocation model, not a per-page-view measurement tool. ebbb.io is a lightweight page -- for JavaScript-heavy SPAs, the gap narrows considerably.

5. Per-Segment Grid Splitting

v1.0 used one grid value for all three segments. That is handy but not correct. Your server in London, the cables across the Atlantic, and the visitor's laptop in Berlin draw from three different grids with different carbon levels.

SegmentGrid UsedRationale
Data CentreHosting country (live)Server energy comes from the local grid
NetworkGlobal average (473 gCO2e/kWh)Network infrastructure spans many countries
User DeviceGlobal average (473 gCO2e/kWh)Visitors are worldwide; individual location unknown
When visitor location is known (e.g., from analytics data), the user device segment can use the visitor's local grid instead.

6. Core Scientific Principles

The core equation stays the same:

Energy Consumed (kWh) x Grid Carbon Intensity (gCO2e/kWh) = CO2e Emissions (g)

We track carbon across three segments and two emission types:

Operational Energy Intensity (kWh per GB transferred)

Data Centres

The energy required to host and serve data.

0.057 kWh/GB

IEA 2024

Networks

The energy used to send data across the global network.

0.059 kWh/GB

IEA 2022 / Malmodin 2023

User Devices

The energy the user's device draws. In v2.0 the running portion is replaced by real CDP data.

0.080 kWh/GB (proxy) / CDP measured

Malmodin 2023 / CDP

Total Operational: 0.196 kWh/GB

In the Measured score, the 0.080 kWh/GB user device proxy is replaced by CDP-instrumented energy for the operational portion.

Embodied Emissions

We include the carbon locked in the making of the hardware that runs the web. This is turned into an energy-like rate (0.106 kWh/GB) using the global grid average.

SegmentIntensity
Data Centres0.012 kWh/GB
Networks0.013 kWh/GB
User Devices0.081 kWh/GB
Total0.106 kWh/GB

How Server-Side Energy Is Estimated

EcoPigs does not read server CPU or memory use directly. Server energy is estimated as bytes sent x 0.057 kWh/GB. This is the same method used by SWD v4 and all other tools. Future versions may add server-side tracking where possible.

7. Updated Data Sources (February 2026)

What Changed from v1.0

Data Pointv1.0v2.0ChangeSource
Data centre global energy290 TWh415 TWh+43%IEA 2024 "Energy and AI"
Global grid intensity494 gCO2e/kWh473 gCO2e/kWh-4.3%Ember Global Electricity Review 2025
UK electricity factor0.207 kgCO2e/kWh0.177 kgCO2e/kWh-14.5%DEFRA 2025
DC operational intensity0.055 kWh/GB0.057 kWh/GB+3.6%IEA 2024 recalculation
Country reference grids16 countries24 countries+8Ember 2024 data
Note on Ember data: The Ember Global Electricity Review 2025 reports country-level carbon intensity data for the year 2024. Throughout this document, "Ember 2024 data" refers to the 2024 calendar year data published in the 2025 report. The data centre energy increase reflects the rapid growth of AI training and inference workloads. The grid intensity decrease reflects continued global renewable energy deployment.

8. Live Grid Tracking

A key difference is that EcoPigs uses live, local grid data. A fixed global average (494 gCO2e/kWh in the SWD model) can be far off. A site hosted in the UK has a very different impact than one in a coal-heavy region.

EcoPigs shows grid carbon and energy mix but does not say which source is "better." A low-carbon grid may run on nuclear, hydro, wind, or a blend. The choice between low-carbon and renewable power is a value call we leave to you. We give the data. You decide what it means for your hosting.

Our Data Integration

Data Sources

United Kingdom National Grid ESO Carbon Intensity API Live, 30-minute intervals
United States EPA eGRID Regional, annual
European Union ENTSO-E Transparency Platform Live data
Canada Government of Canada GHG Emission Factors Annual
Global Fallback Ember Global Electricity Review 2025 (2024 data) Annual averages

Country Reference Values (Ember 2024 data, via Global Electricity Review 2025)

Sweden 10
Norway 14
Switzerland 30
France 56
Brazil 85
Austria 90
Canada 120
Spain 150
UK 200
Ireland 265
Netherlands 285
Italy 295
Germany 350
UAE 340
USA 370
Australia 470
China 530
India 620
Poland 680
South Africa 830
Country values are rounded to the nearest 5-10 gCO2e/kWh from Ember's published data. They serve as static fallbacks when live grid data is unavailable. For UK domains, the National Grid ESO API provides live data (typically 120-200 gCO2e/kWh in 2026) which supersedes the 200 reference value.
Limitations: Where hosting location cannot be reliably determined (CDNs, multi-region deployments, edge caches), we apply a conservative regional fallback and flag the confidence level in the report.

9. Conservative Baseline Assumptions

Our baseline uses cautious, upper-bound values:

100% New Visitors

No cached assets are assumed. Our scanner uses a fresh browser profile with an empty cache for every scan.

100% Data Transfer

We account for the full payload of the page for every view.

10,000 Annual Page Views

A flat standardised reference point for comparison. Where real analytics data is available, actual traffic figures are used instead.

Wire Bytes, Not Decoded

All byte-based calculations use compressed on-the-wire transfer sizes via CDP Network.loadingFinished events. Using decoded sizes would overstate data centre and network energy by 3-5x for text-heavy sites with good compression.

This aligns with the GHG Protocol Corporate Standard (complete, clear, consistent, accurate, cautious) and follows ISO 14064-1 methods. EcoPigs reports have not been checked or verified against either standard by a third party.

Real-World Estimates: EcoPigs reports both a conservative audit baseline and an optional "real-world" estimate where analytics and caching assumptions are provided by the client.

10. Green Hosting: A Nuanced Approach

When a host is verified as "Green," we apply a 0.2 factor (an 80% cut) only to the Data Centre segment.

Green hosting does not reduce:

  • Energy used by global network infrastructure
  • Energy consumed by the end-user's device
  • Embodied emissions from hardware manufacturing

This detail lowers the risk of over-counting the green hosting benefit. A green-hosted site still has network, device, and hardware-making emissions.

11. EcoPigs vs Website Carbon Calculator -- Key Differences

Website Carbon Calculator (WCC) uses the Sustainable Web Design Model v4. EcoPigs v2.0 uses Chrome DevTools Protocol (CDP) instrumentation. Here is how they differ in practice.

11.1 What Is Actually Being Measured

ComponentWCC (SWDM v4)EcoPigs (CDP)
MethodBytes transferred x energy intensity coefficientDirect CPU energy via Chrome DevTools Protocol
Device energyEstimated: bytes x 0.080 kWh/GBMeasured: (scriptDuration + layoutDuration + recalcStyleDuration) x device wattage
Server energyFolded into bytes coefficientEstimated separately: TTFB x 2.1 W/vCPU (Cloud Carbon Footprint AWS average at 50% utilisation; ~0.1% of total)
Network energybytes x 0.059 kWh/GBbytes x 0.059 kWh/GB (same -- only legitimate bytes-based component)
Embodied energybytes x 0.106 kWh/GBModelled (bytes-proxy) -- typically ~77% of the total, so it dominates the credible interval (see EMCM)

11.2 Component Breakdown Visibility

WCC returns one number. EcoPigs returns a per-component decomposition stored in the database:

Stored Per Scan

  • device_energy_kwh -- measured CPU work x power profile
  • server_energy_kwh -- TTFB x 3.5W
  • network_energy_kwh -- bytes x 0.059
  • total_energy_kwh -- sum of all three

Raw CDP Signals

  • cpu_task_duration_seconds
  • script_duration_seconds
  • layout_duration_seconds

This is the diagnostic differentiator -- you can tell a JS-heavy 1 MB page apart from a media-heavy 1 MB page. WCC cannot.

11.3 Grid Intensity

AspectWCCEcoPigs
Grid sourceSingle global average baked inDetected per-site via IP geolocation
Live dataNoYes for GBR/EU (live feeds), static reference for USA/CAN/etc with is_live_grid boolean
Per-segment gridsNoOptional (DC=hosting country, network=global, device=global)

11.4 Magnitude of Result

On the same site, EcoPigs CDP measurement is consistently 5-13x lower than WCC bytes-based estimates:

SiteWCC (bytes)EcoPigs (CDP)Ratio
oynk.co.uk0.011g0.001g11x
gov.uk0.013g0.001g13x
bbc.co.uk0.120g0.013g9x
amazon.co.uk0.431g0.014g31x
northamptoncollege.ac.uk0.759g0.144g5x

The reason: WCC inflates the device-side estimate via bytes x 0.080 kWh/GB, which assumes every byte transferred drives proportional CPU work. CDP shows that is wildly wrong for heavy-asset, light-CPU sites. Amazon's homepage is fat with images and video assets but the CPU executes very little of it on first paint.

11.5 Grading

AspectWCCEcoPigs
ThresholdsSWDM v4 July 2025 (A+ <0.040g, F ≥0.360g)Identical thresholds -- deliberately aligned with WCC
Why same?--Strategic decision: do not compete on grading, compete on measurement accuracy. The grade exists for client legibility; the diagnostic is the differentiator.

11.6 Hosting Status

AspectWCCEcoPigs
Green hosting checkYes (Green Web Foundation)Yes (same source)
Effect on gradeReduces emissions by green factorStored as data field, does not modify grade
Why?--Server energy is 0.1% of total per CDP measurement -- hosting status is statistically insignificant to the final figure. Capping based on hosting would apply policy judgement to a noise-level component, and would peg grades to REC accounting which we have publicly criticised as unreliable.

11.7 Methodology Auditability

AspectWCCEcoPigs
Stored measurement methodNomeasurement_method = 'cdp-cpu' flag on every new row, 'bytes_swdm' on legacy. Filterable.
Per-page CDP raw dataNoAll CPU durations, energy components, hosting metadata stored per scan
Independent recalculationNeed original bytesCan recalculate from stored components without re-scanning

11.8 Population Characteristics

From our 558-site CDP dataset:

Metricbytes_swdmcdp-cpu
Median grams/visit0.426g0.016g
Mean grams/visit0.659g0.051g
Energy sharebytes-allocatedNetwork 95.8%, Device 4.2%, Server 0.1%

The CDP data tells you something WCC structurally cannot: network transfer dominates the actual carbon cost of a page visit. Device CPU is small; server processing is noise. This reframes optimisation priorities from "shrink JS bundles" toward "reduce transferred bytes" -- the same conclusion WCC reaches but for a defensible measured reason rather than because it is the only thing the model knows about.

11.9 The Honest Summary

EcoPigs and WCC will give you the same letter grade for any site that is well-optimised on both fronts (small bytes + light CPU). They will diverge -- sometimes dramatically -- for sites that are heavy on one axis but not the other. EcoPigs tells you which axis. WCC just gives you a single number.

EcoPigs also stores enough detail per scan that a third party can audit the calculation. WCC does not.

Note on SWD v4 configurability: The CO2.js library supports custom grid intensities and visitor ratios. The values shown above are the defaults used by Website Carbon Calculator and most public-facing tools. Our Traditional score uses these same defaults for comparability.

12. Scope and Boundaries

Included

  • Page payload and all transferred resources (wire/compressed bytes via CDP)
  • Data centre energy (estimated via bytes x 0.057 kWh/GB)
  • Client-side main-thread rendering, scripting, and style recalculation (instrumented via CDP)
  • Client-side GPU compositing energy (estimated from layout/style metrics)
  • Client-side screen-on energy during page load
  • Network transmission energy (estimated via bytes x 0.059 kWh/GB)
  • Embodied emissions across all three segments (bytes-proxy)
  • Green hosting verification and adjustment

Not Included

  • Server-side CPU/memory measurement (estimated only)
  • Web Worker and Service Worker execution
  • Off-main-thread compositing and paint operations
  • Email campaigns (separate analysis available)
  • Video streaming (separate methodology required)
  • Third-party API calls beyond the page load
  • AI/ML inference workloads on the server side
  • User interaction energy beyond initial page load

13. Versioning and Comparability

v2.0 uses the Ember 2024 global average (473 gCO2e/kWh) for Baseline. v1.0 used 494. The grade bands (A+ to F) are the same, so grades still compare across versions. But raw gCO2e values from v2.0 will be a bit lower than v1.0 for the same page due to the updated grid value.

Grade Thresholds

Grades come from total emissions per view (gCO2e). In v3 we deliberately align our grade bands with the Website Carbon Calculator / Sustainable Web Design v4 Digital Carbon Ratings (July 2025), so a grade is comparable across tools — we compete on measurement accuracy, not on grading. (The earlier HTTP-Archive-percentile bands are deprecated.)

GradeThreshold (gCO2e per view)
A+< 0.040
A< 0.080
B< 0.146
C< 0.210
D< 0.279
E< 0.360
F≥ 0.360

Source: Sustainable Web Design v4 Digital Carbon Ratings (July 2025), sustainablewebdesign.org/digital-carbon-ratings.

Every report shows which method version was used. When you compare reports over time:

  • Grade comparisons are valid across v1.0 and v2.0 (same thresholds)
  • Absolute gCO2e values should be compared within the same methodology version, or with awareness of the 4.3% reduction
  • The Traditional score uses the SWD v4 built-in grid (494) and provides the closest comparison to v1.0 values

The measured score adds to the other four. It does not replace them. You can track your traditional score (for industry benchmarks) and your measured score (for accuracy) at the same time — and in v3 the measured score feeds the EMCM calibrated figure with its 90% range and tier.

14. Device Power Profiles

v2.0 adds four device power profiles. These turn measured CPU time, estimated GPU compositing, and screen-on time into energy numbers.

Source types: Values come from Academic (peer-reviewed papers), Manufacturer (published specs), and Community (repeatable tests by hardware testers -- not peer-reviewed but consistent and reproducible).

Desktop PC

External monitor, integrated GPU

ComponentPowerSources
CPU (active browsing)20WIntel i5-13600K/14600K: 14-24W RAPL-measured during browsing. AMD Ryzen 7800X3D: ~20W browsing.
GPU (estimated compositing)2WGPU+GMCH subsystem: 2.2-2.9W during web browsing (Microsoft IE team, 2011). Intel UHD 770 peak 12W; web compositing ~15-20% of peak.
Screen22W24" IPS LCD at 50-70% brightness: 18-25W range (EnergyStar display database).
System idle40WTypical office PC idle: 30-50W plus monitor. Used for incremental energy calculation only.

Academic References

  1. Carroll, A. & Heiser, G. (2010). An Analysis of Power Consumption in a Smartphone. USENIX ATC.
  2. Mahesri, A. & Vardhan, V. (2004). Power Consumption Breakdown on a Modern Laptop. PACS.
  3. Microsoft IE Team (2011). Browser Power Consumption: Leading the Industry.
  4. Torchbox (2024). How Much Power Do Web Assets Use? M1 MacBook powermetrics measurements.
  5. arXiv:2205.11399 (2022). Energy Efficiency of Web Browsers in the Android Ecosystem.
  6. arXiv:2401.15985 (2024). Dissecting software-based measurement of CPU energy consumption.
  7. Stanford/Boneh (2012). Who Killed My Battery? WWW 2012.
  8. ASE 2020. Energy Wars -- Chrome vs Firefox. RAPL-based browser energy comparison.

15. Relatable Metrics

Grams of carbon are hard to picture. We turn emissions into everyday examples so teams can share their impact clearly. All conversions use DEFRA 2025 UK grid data (0.177 kgCO2e/kWh) where it applies.

MetricValueDerivationSource
Tree absorption60 g CO2e/day22 kg/year / 365 daysUSDA Forest Service / EPA
Kettle boil20 g CO2e0.11 kWh x 177 gCO2e/kWhThermodynamic calculation
Car mile265 g CO2eDEFRA 2025 avg passenger vehicleDESNZ/DEFRA 2025
Smartphone charge3 g CO2e0.018 kWh x 177 gCO2e/kWh15 Wh battery / 0.85 efficiency
LED bulb hour2 g CO2e0.01 kWh x 177 gCO2e/kWh10W LED equivalent

These metrics are provided at both per-visit and annual (x10,000 page views) granularity. All relatable metrics use the same source constants defined in constants/carbonMethodology.mjs, ensuring consistency across all outputs.

16. Limitations

Being open about limits makes the method stronger, not weaker.

Measurement Scope

Main thread only

CDP Performance.getMetrics() captures main-thread CPU work. Web Workers, Service Workers, and off-main-thread paint/compositing operations are not included. For pages that offload significant computation to workers, measured CPU energy will be understated.

Desktop scan only

All scans run via Puppeteer using a desktop Chrome viewport (1920x1080). Mobile and laptop energy projections apply device-specific power profiles to the same desktop-captured durations. True mobile energy measurement would require on-device instrumentation.

Single page load

We measure the initial page load only. SPAs that load additional JavaScript during navigation will not have subsequent route changes captured.

Energy Estimation

GPU energy is estimated, not measured

We estimate compositing time as 30% of (LayoutDuration + RecalcStyleDuration). GPU energy is typically <5% of total device energy, so the impact on accuracy is limited.

Screen energy is attributed, not incremental

We attribute the screen's full power draw for the duration of the page load. Our API provides both "total" and "incremental" (subtracting idle baseline) figures.

Device power profiles are representative, not universal

A "20W desktop CPU" represents mid-range x86 processors. Apple Silicon desktops draw 0.1-1.5W for the same work. The traffic-weighted average mitigates this for population-level estimates.

Methodology

Embodied energy uses bytes-proxy

CDP cannot measure the manufacturing energy embedded in the user's device. The embodied portion (0.081 kWh/GB) still uses the standard bytes-proxy for all scores.

Server energy uses bytes-proxy

Data centre energy is estimated from bytes transferred x 0.057 kWh/GB. This does not distinguish between computationally intensive server-rendered pages and static file serving.

BEAM requires RUM data

The BEAM score is only calculated when ≥100 RUM sessions have been recorded. This prevents the model from generating scores based on default assumptions rather than observed behaviour.

17. References

Primary Research

  • International Energy Agency (2024). Energy and AI. Updated data centre energy consumption to 415 TWh.
  • International Energy Agency (2022). Data Centres and Data Transmission Networks.
  • Malmodin, J. & Lunden, D. (2023). The energy and carbon footprint of the global ICT and E&M sectors 2010-2022. Telecommunications Policy.
  • ITU (2024). Facts and Figures 2024. Global data transfer volumes.
  • Ember (2025). Global Electricity Review. Country-level grid carbon intensity data for 2024. Source of 473 gCO2e/kWh global average.

Standards and Frameworks

  • GHG Protocol. Corporate Accounting and Reporting Standard.
  • ISO 14064-1:2018. Greenhouse gases -- Specification with guidance.
  • SBTi. Science Based Targets initiative -- ICT Sector Guidance.

Government Data

  • DEFRA (2025). UK Government GHG Conversion Factors. Electricity factor: 0.177 kgCO2e/kWh.
  • National Grid ESO. Carbon Intensity API. carbonintensity.org.uk.
  • U.S. EPA. Emissions & Generation Resource Integrated Database (eGRID).
  • ENTSO-E. Transparency Platform. transparency.entsoe.eu.

Hardware Specifications

  • Intel. ARK Product Specifications -- i5-12400. Package power and RAPL measurements.
  • Qualcomm. Snapdragon 8 Gen 2 Product Brief. Big core cluster power consumption.
  • EnergyStar. Display Product Database. Typical panel power consumption.

Industry Models (for comparison)

  • The Green Web Foundation. CO2.js -- Sustainable Web Design Model v4. Uses 0.080 kWh/GB operational + 0.081 kWh/GB embodied for user device segment. 494 gCO2e/kWh default global grid.
  • Fershad Irani (2024). Exploring the Sustainable Web Design Model v4.

Run a Review Using EcoPigs v3 (EMCM)

See how your site scores with our science-backed method and real browser data — a calibrated figure with its honest range, free.