Certificate ID: GSF-SCI-2026-00003

Active
SCI Self-Certification badge

tapflow (open-source project)

tapflow
vv0.18.0

Self-certified compliant with ISO/IEC 21031:2024

Software Carbon Intensity (SCI)

Issued: November 3, 2026

Expires: November 3, 2027

About the Software

tapflow streams iOS simulators and Android emulators to a browser, so a whole team can run mobile QA without installing a mobile development environment. It is TypeScript on Node.js: a relay process serves the dashboard and brokers sessions over WebSocket, and an agent process runs on an Apple Silicon Mac next to the simulators it controls, encoding the screen as H.264. It is MIT licensed and self-hosted — it runs on hardware the operator already owns, such as a desk Mac, a LAN host, or a machine behind a tunnel. No cloud service is involved.

SCI Score

3.79 gCO2eq per QA session-hour

Organization

tapflow (open-source project)

Measurement Period

August 3, 2026 – August 3, 2026

Issued

November 3, 2026

Software Boundary

Included Components

Component Description Justification
Agent host1x MacBook Pro 14-inch (M2 Pro, 32 GB, macOS 26.5.2). Energy and embodied carbon both counted.
Relay processNode.js. Serves the dashboard from the built `public/` directory and brokers the session. Runs on the agent host.
iOS agent processNode.js. Controls the simulator and encodes the screen as H.264. Runs on the agent host.
iOS simulatorOne simulator instance, started and controlled by the agent.

Excluded Components

Component Description Rationale for Exclusion
The viewer's browser and the machine running itAn end-user device. The operator of a tapflow instance does not own, provision, or control the testers' laptops, and tapflow imposes no requirement on them beyond a browser.
Network transport between host and viewerThe path is chosen by the operator — a LAN, a Tailscale tunnel, or a reverse proxy they already run. tapflow ships no network infrastructure of its own, so there is no component here under our operational control to measure.
CI/CD runners and developer machinesThese run while tapflow is being built, not while a deployed instance serves a QA session. The functional unit is a session-hour on a running instance, so development compute falls outside the system being measured.
Build artifact storageUploaded builds are written to the operator's own filesystem on the agent host, whose embodied carbon is already allocated above. Counting the storage again would double-count the same hardware.

Shared Infrastructure

The agent host is shared rather than dedicated: tapflow runs up to four concurrent simulator slots on one Mac. Embodied carbon is therefore allocated at one quarter of the host — see Section 6. Energy in Section 5 is not divided this way. Section 7 explains the pairing and gives the score under each basis.

Functional Unit

Unit

One QA session-hour — one tester streaming one simulator for one hour.

Total During Period

1 QA session-hour.

Justification

tapflow's energy cost tracks how long a session is held open and how much interaction happens inside it. It does not track builds uploaded or accounts registered. A live session is single-occupancy by design, so one session-hour maps one-to-one onto the work delivered.

Counting Method

R = 1. The score comes from one controlled benchmark session, timed directly, not from aggregated production telemetry.

SCI Calculation

E x I = 0.005725 kWh x 417.3 gCO2eq/kWh = 2.389 gCO2eq
M = 1.404 gCO2eq
R = 1 QA session-hour

SCI = (E x I + M) / R = (2.389 + 1.404) / 1 = 3.79 gCO2eq per QA session-hour

Energy (E)

Total Energy

0.005725 kWh

Power Usage Effectiveness (PUE)

N/A. The host is a desk or office machine, not a data-centre tenant. There is no facility overhead to apportion.

Component Energy Method
Agent host, whole machine0.005725Idle wall power 4.21 W from the Apple Product Environmental Report power table for the 14-inch MacBook Pro (M2 Pro), January 2023, at 100 V. Active increment 5.05 W wall: 4.52 W measured at the SoC, divided by the 89.5% adapter efficiency printed in the same table.

Carbon Intensity (I)

Value

417.3 gCO2eq/kWh

Location

Republic of Korea.

Approach

Location-based.

Data Source

Republic of Korea national grid emission factor, consumption-side combined, 2023 factor, confirmed by the national greenhouse gas statistics committee on 2025-12-17. Combustion-based, not lifecycle. The generation-side figure for the same year is 384.4 gCO2eq/kWh; it is a different quantity and is not used here.

Embodied Emissions (M)

Total Allocated

1.404 gCO2eq

Methodology

SCI time-share and capacity-share allocation (M = TE x (1 / 35,040 h) x (1 / 4 slots)), using Apple's published lifecycle data for the reference device.

Component Allocated Source
Agent host — MacBook Pro 14-inch (M2 Pro, 512 GB)1.404Apple Product Environmental Report, 14-inch MacBook Pro (M2 Pro), January 2023.

Methodology

Approach

Hybrid. The active increment is measured. Idle wall power, embodied carbon, and grid intensity come from published figures.

Description

- Power was sampled in three states on one host — no session, session open with a static screen, session open with continuous scrolling — using `powermetrics --samplers cpu_power`, 60 one-second samples per state, reading `Combined Power (CPU + GPU + ANE)`. The difference between the first and third states gives the cost of active use: +4.52 W at the SoC.

Assumptions and Limitations

Assumption or Limitation Justification or Mitigation
The active increment applies to 30% of a session-hour.A QA session is mostly spent looking at the screen, with interaction in bursts. The static state is indistinguishable from idle, so only the interacting fraction carries the increment. 30% is a conservative estimate of that fraction for interactive manual testing.
Embodied carbon is allocated over four years and four concurrent simulator slots.Four years matches the first-owner service life Apple uses in the report the TE figure comes from. Four slots is tapflow's documented concurrency on one host.
TE is derived from stage shares, not read from a numeric table.The report prints only a total and percentages. Each "<1%" stage is counted as a full 1%, which errs upward. The resulting range is stated in Section 6: SCI 3.75 to 3.80.
No per-process energy split is available.`powermetrics` reports combined SoC power for the whole machine. The measurement resolves the session increment by differencing states instead, which is the quantity the score depends on.
Single-day, single-host benchmark.This is one controlled session on 2026-08-03, not an aggregate over an extended production period. It is not represented as reflective of broader production usage.
The increment is an upper bound.The viewer's browser decoded the stream on the same Mac during the benchmark. In normal use the browser runs on the tester's own machine and the agent host only encodes. Sixty seconds of continuous scrolling is also harsher than real QA.
The score was measured on v0.18.0; the current release is v0.27.1.The measurement has not been repeated against the current release. Nothing here should be read as a claim that the figure has been re-verified for it.
Energy and embodied carbon are allocated on different utilisation bases.Energy charges the host's full idle draw (4.21 W) to one session. That matches the benchmark, which ran one session on the host. Embodied carbon is allocated by capacity, one quarter of the host, because tapflow's documented concurrency is four slots per host. Applied on one basis, the score would be about 8.0 gCO2eq per session-hour on a dedicated host (2.389 + 1.404 x 4) and about 2.5 with all four slots in use ((4.21 / 4 + 5.05 x 0.30) Wh x 0.4173 gCO2eq/Wh + 1.404). The certified 3.79 sits between those two bounds.
A second host was modelled but is not the certified figure.The same calculation for a Mac mini M4 host gives 2.50 gCO2eq per session-hour (O 2.30, M 0.198, TE 27.8 kg of a 32 kg life-cycle total). It is disclosed here rather than certified because it would transfer the active increment from the M2 Pro machine it was measured on to a different chip. The embodied share differs sharply between the two: 37% of the score on the laptop, 7.9% on the desktop.

Self-Certification Statement

This certificate confirms that tapflow (open-source project) has self-certified conformity with ISO/IEC 21031:2024 (Software Carbon Intensity) and provided complete disclosure information verified by the Green Software Foundation.

  • Self-certification: tapflow (open-source project) declares that this SCI calculation conforms to ISO/IEC 21031:2024 requirements
  • Disclosure verification: GSF verified that all required disclosure elements were provided with sufficient detail for community review

This is not third-party certification or accredited conformity assessment. The disclosed information enables peer review and community validation of conformity claims.

View Full Disclosure

Ready to Build Sustainable Software?

Take the next step in your green software journey. Get certified, access exclusive resources, and join thousands of practitioners making a real impact on our planet's future.