✓碳溯 Carbon Explorer
Closed testing · not yet publicly listed

GHG inventory tooling for Taiwan SMEs

An emissions inventory where every number cites its source.

Most spreadsheet templates hand you a coefficient and ask you to trust it. Carbon Explorer shows the citation next to the number — the government gazette, the IPCC table, the dataset DOI — because the people who'll eventually audit your report are going to ask for exactly that.

6factor databases, independently verified
8 / 15GHG Protocol Scope 3 categories covered
382individual emission factors seeded
0accounts, servers, or cloud dependencies

Factor ledger

Six sources, each switchable, none hidden.

Factor Management groups every coefficient by where it came from, not by which form uses it. Turn a database off and every picker in the app stops offering it — but activity records already calculated from it keep their original number, because disabling a source should never rewrite history.

Taiwan MOENV gazette環境部公告,現行 — 附表一至四,國家法定係數
43
on by default
IPCC 2006 Guidelinesinternational default values, used where Taiwan has no published figure
14
on by default
Ember Global Electricity Reviewgrid factors for 5 countries outside Taiwan, 2015–2025
218
off by default
UK DEFRA / DESNZ conversion factorsScope 3 upstream fuel, travel, and waste — a globally-traded-commodity proxy
72
on by default
US EPA — USEEIO modelspend-based factors, 26 SME-relevant sectors mapped from 1,016 NAICS codes
26
on by default
Taiwan Product Carbon Footprint DBrecently added, defaults off until a user has reviewed it — same policy as Ember on day one
9
off by default
User-supplieda supplier's own measured factor — treated as a database like any other, fully auditable
0
on by default

Coverage

What's actually implemented, numbered the way the standard numbers it.

Scope 1 and 2 are the base case. For Scope 3, the app covers eight of the GHG Protocol's fifteen categories — the ones an SME with no upstream investment portfolio or franchise network is actually likely to need. The rest simply aren't built yet, and the app doesn't pretend otherwise.

SCOPE 1

Stationary · mobile · fugitive · process

activity-based

Combustion, refrigerant leakage, septic BOD/COD, and industrial process emissions — each with its own official factor table.

SCOPE 2

Purchased electricity

activity-based

Taiwan's official "industrial" grid factor by default, with location-based grid factors for four more countries.

CAT 1

Purchased goods & services

spend-based

TWD spend ÷ annual USD rate × USEEIO cradle-to-gate factor, across 17 SME-relevant sectors.

CAT 2

Capital goods

spend-based

Computers, office furniture, production equipment — same spend-based mechanism as Cat. 1.

CAT 3

Fuel & energy-related (upstream)

derived — zero input

Auto-calculated well-to-tank emissions from the Scope 1 fuel you already logged. Nothing to type in.

CAT 4

Upstream transport & distribution

spend-based

Freight, courier, and forwarding spend, same sector list as Cat. 9.

CAT 5

Waste generated in operations

activity-based

Weight × waste type × treatment method — landfill, incineration, recycling, or composting.

CAT 6

Business travel

activity-based

Sixteen transport modes; distance entered directly or as trips × average length.

CAT 7

Employee commuting

activity-based

Same transport-mode table as business travel, tagged by purpose instead of duplicated.

CAT 9

Downstream transport & distribution

spend-based

Shares its sector list and factors with Cat. 4 — the calculation doesn't care which direction the truck is going.

What we checked, and rejected

A free number is not the same thing as a right number.

Every factor source in the ledger above was chosen after a rejected alternative. That process — not the calculator — is the actual work of building something an auditor will trust.

Rejected · EXIOBASE

The free spend-based dataset only had direct emissions, not supply-chain ones

The plan was EXIOBASE for purchase-category factors. Three free sources were checked; the one usable table (ExioML factor_accounting) turned out to divide each sector's own emissions by its own output — no upstream supply chain included. Using it would have systematically undercounted every purchase. Switched to the EPA's USEEIO model instead, whose "with margins" column is already a full cradle-to-gate figure.

Rejected · IGES grid factors

A free electricity database built for the wrong denominator

IGES publishes free national grid factors, but reading the actual file showed Operating Margin / Build Margin / Combined Margin columns and a "CDM crediting period" field — that's a baseline methodology for individual clean-development projects, not a national annual average. Ember's Global Electricity Review measures the thing a corporate inventory actually needs, so that's what shipped.

Deliberately not used · DEFRA UK electricity

Fuel is a global commodity; a national grid is not

DEFRA's fuel well-to-tank factors are used as a worldwide proxy — burning diesel has roughly the same upstream footprint no matter which country sells it. Its UK electricity generation and transmission-loss factors were left out on purpose: those numbers are tied to the UK's specific power mix and grid losses, and would misrepresent any other country's electricity.

Caught · AR4/AR5 mismatch

A commonly cited refrigerant GWP turned out to be the wrong IPCC assessment report

R-410A's GWP is widely quoted online as 2088. Recomputing it from the IPCC's own AR5 component values gives 1923.5 — 2088 is the older AR4 figure, uncredited, still circulating. The app's refrigerant table is AR5 throughout; mixing report versions inside one inventory is exactly the kind of error a reviewer should be able to catch by following the citation.

How it's built to be used

Offline by default, because the data shouldn't have to leave the building.

No account, no server

Everything lives in a local Room database. Nothing about a company's emissions data touches a network unless the user chooses to export it themselves.

Free summary, paid detail

The boundary table and totals — enough for a first look or an internal report — export for free. Line-item detail with full factor traceability is a one-time unlock, priced at the point people actually need an audit trail.

Real backup, not a side effect

A single JSON file — activity records, equipment, site boundary, custom factors, preferences, even the floor plan photo — restorable on any device, saved wherever the user likes.

Batch import that says what it isn't

The xlsx round-trip is for bulk-editing activity data, not a backup — the app says so in the same screen, rather than let a misleading label cause a surprise later.

Under the hood

Clean architecture, four layers, one direction of dependency.

Compose UI DashboardScreen · ActivityEditScreen · FactorManagementScreen · SettingsScreen ViewModel holds UI state, calls use cases, never talks to Room or DataStore directly Use Cases (domain) CalculateActivityEmissionUseCase · CreateBackupUseCase · ImportActivityRecordsUseCase … Repository interfaces implemented by Room DAOs · DataStore preference stores · Play BillingClient

Domain use cases depend only on repository interfaces — swapping Room for something else, or adding a sync backend later, wouldn't touch a single calculation. It's also why 106 unit tests can exercise the entire calculation layer with in-memory fakes and no Android framework at all.