iz · about
What this is. And what it isn't.
iz is a one-person effort to produce a public, source-cited per-facility emissions
benchmark for Turkish CBAM-scope industry. The deliverable is the bench, the formula,
and the disclosure crawl. The in-browser neural net is a demo (in the separate
iz-lab repo), not the product.
Ahmet Barış Günaydın ·
hi@barisgunaydin.com ·
barisgunaydin.com ·
github.com/abgnydn/iz
01 The formula in one line
tCO₂ = capacity × route-EF × capacity-factor
Capacity is operator-published nameplate (industry registries, KAP filings).
Route-EF depends on what kind of plant it actually is — not just the CBAM
category. Steel splits into BF/BOF (2.0 t/t), EAF (0.25), DRI-EAF (0.4). Aluminum splits
into primary (8.6) vs downstream rolling (0.45) — a 19× spread the EU lumps together.
Fertilizer splits into integrated (0.5), N₂O-controlled (0.05), blender (0.025) — a 20×
spread driven by whether the plant has an N₂O catalyst on its nitric acid line.
Capacity-factor is operator-disclosed production ÷ capacity (non-leaky in
leave-one-plant-out because production tonnage is reported independently of Scope 1), with fallback to
sector mean for facilities lacking disclosure.
02 Evaluation methodology
Leave-one-plant-out (LOPO). The headline is the closed-form formula
capacity × route-EF × cf, evaluated so that no plant sees its own answer: each
plant's route emission-factor is the median implied EF of only the other audit-grade
plants in its route. Aggregate per-plant log-MAE across the 19 validatable
plants is the headline metric (+82.3% reduction vs the EU default). Two plants (BAGFAŞ,
Gübretaş) are the sole plant of their route, so their EF would be their own answer — they are
excluded rather than scored. The in-sample fit (EF fitted on all plants) is +85.7%.
Why log-MAE not cost-savings. A cost-savings metric (EU default − prediction) /
EU default rewards under-prediction. Log-MAE against audited truth penalizes both over-
and under-prediction. We report log-MAE throughout to align vendor incentives with
measurement quality.
Non-leaky cf. Operator integrated reports publish Scope 1 emissions on
one page and production tonnes on a separate page. The capacity factor is derived from
production ÷ capacity, not from emissions. When a facility is held out, its production
tonnage remains available — the held-out emissions don't leak through.
03 What's different from other players
| Player | Approach | Limitation |
| EU CBAM default | capacity × one industry-average EF | Off by 2-10× on most plants; deliberately punitive to push operators to MRV |
| Climate TRACE | Global per-asset bottom-up emissions inventory | Under-reports TR BF/BOF steel by 20-30% (misses captive coal power) |
| Persefoni / CarbonChain / Sweep | Ingest operator-typed data, dashboard it | Trust the operator; garbage in, garbage out |
| GHGSat / Carbon Mapper | Satellite plume detection | Methane-focused; CO₂ plumes hard to see; no CBAM tie-in |
| iz | Hand-curated bench + closed-form formula, cited PDFs | 21 facilities is small; needs operator partnerships to scale to 200+ |
04 Everything is open. There's no commercial tier.
Released under Apache-2.0: the bench (CSV + JSON + source-cited
disclosures), the formula, the leave-one-plant-out evaluation harness,
the paper, the figure-generation scripts, the unit tests, this site (the in-browser
trainer demo is Apache-2.0 too, in the separate iz-lab repo).
Source code at github.com/abgnydn/iz.
iz is a one-person contribution to Turkey's economy, not a SaaS. If every
TR CBAM-scope operator used real per-facility data instead of paying the EU CBAM default,
on the order of ~€700M/year (order-of-magnitude) could stay in Turkey
instead of going to the EU treasury (CBAM at €85/tCO₂, with rough sector EU-export shares).
Larger figures we have floated (€1.5–2bn/year) are an illustrative, unvalidated
extrapolation, not a validated estimate. That's the entire
point. Charging for the bench would defeat it.
No fundraising, no NDA, no upsell. The only ask is to cite the bench if you publish on it
(CITATION.cff)
and to submit corrections back when you spot them. Operator and verifier
workflow instructions are at /use.
Per-facility deliverables (v0.4): every bench row has a
deep-linkable detail page at /bench/{id}/ with audit-grade Scope 1,
the formula leave-one-plant-out prediction with conformal CI, EU CBAM default delta, Beirle 2023
NOx cross-match where available, and the EnMAP scene index. Each page also
exposes a printable single-page audit summary at
/bench/{id}/audit-summary/ that an operator's sustainability officer
can hand to their EU-accredited verifier. Corrections go through the
claim-your-facility form on the bench page.
05 Honest limitations
- n is small, and 2 plants can't be validated at all. BAGFAŞ (N₂O-controlled fertilizer) and Gübretaş (blender) are each the sole plant of their route, so leave-one-plant-out has no in-route training counterpart for them. They are excluded from the headline, leaving n=19 validatable plants of 21 audit-grade. Seed variance across 5 outer × 3 inner runs is ±0.3% (model reproducibility only); the honest publication figure is the +82.3% leave-one-plant-out reduction on n=19.
- "Audit-grade" is three tiers, not one. 4 facilities are ISO 14064-1 third-party verified (Habaş, Batısöke, Bursa, Afyon); 8 carry TSRS-compliant limited assurance from a KGK-registered firm; 9 are operator IARs Big4-audited overall but without GHG-specific verification. 4 + 8 + 9 = 21. The bench browser shows the exact tier per row; the headline number does not weight by tier.
- 6 of 21 strong labels are allocated, not directly disclosed. Akçansa per-plant Scope 1 is split from the group total by disclosed clinker share. Toros Mersin/Samsun/Ceyhan are split from the 842k group total by nameplate capacity — Mersin (NH₃+urea) is likely more process-heavy than the capacity-share allocation reflects. We mark these "allocated" provenance and flag them in the bench notes.
- Capacity values in
tr_facilities.csv are unaudited. Two corrections we made mid-development: Akçansa Çanakkale 4.5M → 6M (then back to 5.5M cement per 2025 IAR), Erdemir Ereğli 6M → 4M crude steel. Other facilities may have similar nameplate errors we haven't audited.
- Habaş Aliağa is the combined site total. EAF main line 636,377 + plate mill 193,961 = 830,338 tCO₂. CBAM treats Aliağa as one site for tariff purposes; we use the combined number as the audit truth. (Earlier drafts used only the EAF main line — corrected in v0.4.)
- BAGFAŞ 9,828 is a partial-cap year. 2024 cf = 0.29, well below typical fertilizer operation. An average year would push Scope 1 ~3× higher and our prediction ratio would change accordingly.
- Erdemir 2024 IAR restated 2023 from 6.56M → 5.95M. We use the restatement. This raises a real question about the stability of any single year's audit-grade Scope 1 disclosure.
- leave-one-plant-out is not cold prediction. When we hold out Erdemir Ereğli, the other 2 BF/BOF mills are still in training. If a new BF/BOF mill came online, the model has no in-stratum training data — the realistic deployment scenario is harder than leave-one-plant-out suggests.
- BF/BOF stratum is structurally hard. TR has only 3 BF/BOF integrated mills (Erdemir, İsdemir, Kardemir) and the EU CBAM default 1.9 t/t happens to be within ±15% of TR audited reality on these mills. With only 3 mills a per-stratum confidence interval is meaningless (it spans from strongly negative to near +100%). Our value is concentrated in cement / EAF / aluminum / fertilizer, not BF/BOF.
- The "+82.3% beats EU default" claim is log-MAE reduction. Not error reduction, not "82.3% of facilities right." It's a log-domain accuracy measure. A naïve reader could misinterpret; we report it because it's the right metric, but want to be explicit about what it means.
- The cf-corrected facilities are formula-predicted by construction. The +82.3% headline applies only to the truth-labeled leave-one-plant-out rows (n=19 validatable of 21 audit-grade). The remaining bench rows carry formula-derived labels assigned from the same formula being evaluated — they cannot validate it.
- Climate TRACE under-reports 4 of 5 audit-matched TR facilities, mean bias −17.2%, median −23% (n=5; widened from the n=3 BF/BOF-only claim by including Nuh and Göltaş cement). Erdemir −29%, İsdemir −22%, Kardemir −23%, Nuh −23%, Göltaş +11% (the lone over-report). The under-reporting extends from steel into cement, suggesting CT's bottom-up methodology has a TR-specific gap (likely missing on-site fuel mixes / captive power). We do not claim CT is wrong globally — only that on the 5 audit-matched TR facilities it consistently underestimates by ~20%.
- How far off can it be? Every one of the 19 validatable plants falls within a factor of ~2 of audited Scope 1 — the leave-one-plant-out ratios span 0.59× (Afyon) to 1.85× (Toros Ceyhan). The widest misses are the three cement under-predictions (Afyon, Bursa, Nuh), whose actual capacity factor runs above the sector default. (An earlier split-conformal interval was computed on the now-retired neural-net run; we report the formula's own empirical spread instead.)
- EnMAP scene coverage confirmed for all 21 audit-grade facilities (18 with at least one zero-cloud scene; 103 scenes total at ≤25% cloud cover). The DLR EOC Geoservice STAC API is auth-free and queryable; the index is at
data/enmap_scenes_index.csv. Full DOAS + RemoTeC CO₂/NO₂ retrieval (Borger 2025 ERL) is the v0.2 upgrade path past S5P's 7 km resolution — out of scope for v0.4.
- Beirle 2023 v2 NOx catalog cross-match. 6 of 21 audit-grade facilities have a TROPOMI flux-divergence NOx estimate within 15 km (İsdemir 0.572 kg/s, Habaş 0.344, İzdemir 0.344, Toros Ceyhan 0.113, Akçansa Ladik 0.110, ASAŞ 0.146). The Beirle attributions are partially colocated power plants (e.g. İsdemir matches "Atlas Termik Santrali", which is its captive coal CHP and the major Scope 1 contributor). Catalog cross-match in
data/beirle_match_audit_grade.csv; not integrated as a model feature in v0.4 to avoid overfit at n=21.
- Sentinel-5P NO₂ tested as a feature; didn't help. We ran a 30-day June 2024 S5P TROPOMI NO₂ pull over all 59 facilities (11 scenes, 412 observations) and added per-facility plant + background-delta NO₂ as model features. Result: the formula headline is unchanged at +82.3% (it doesn't use S5P); the in-browser neural-net demo moved only within ±0.3% seed noise; a ridge baseline degraded 81.4% → 75.6% (overfitting the noisy NO₂). At annual-label data scale with a 30-day window, satellite NO₂ doesn't add information the formula doesn't already capture via disclosed_cf. The S5P data is in
data/s5p_no2_per_facility.parquet and exposed in the bench schema for future work (full-year coverage, year-label alignment, wind-aware background subtraction).
- Zero pilot customers. The €5-10k pilot price is unvalidated against real operator willingness to pay. The verifier-partnership tier is hypothetical — we have not spoken to DNV / TÜV / BV / SGS yet.
- The neural net (iz) is an in-browser demo, not the result. The in-browser WebGPU neural network does not beat the closed-form formula; it is not part of the shipped result. The actionable, shipped baseline is the formula, at +82.3% leave-one-plant-out reduction on n=19 validatable plants. iz exists as a reference implementation and a placeholder for future signal extraction (satellite features, multi-year leave-one-plant-out).
Contact
Operator pilots · CBAM verifier partnerships · methodology questions · paper citations.
hi@barisgunaydin.com