Answer box
The calculation engine takes the data a supplier submitted and produces specific embedded emissions per CN code per supplier per reporting year — the number that lands in a CBAM declaration. It applies the EU method, respects the sector rules (direct-only for iron, steel and aluminium; direct + indirect for cement and fertilisers), carries precursor emissions through the supply chain, and falls back to default values + yearly mark-up where actuals aren’t available or aren’t yet verified.
The pipeline, in five stages
- Activity data. Fuels (quantity × NCV × emission factor), electricity consumption (where in-scope), production tonnes per product.
- Process emissions. Direct non-fuel emissions from the production process — decarbonation in cement, PFCs from anode effects in primary aluminium smelting, etc.
- Installation total. Sum of fuels + process + in-scope indirect emissions. Sector rules enforced here.
- Attribution. Allocation of installation-level emissions across products using the EU rules. Precursor emissions carried through from upstream suppliers.
- Specific SEE. Allocated emissions divided by product tonnes. Reported per 8-digit CN code.
Sector-aware by CN code
The engine recognises the CBAM scope and sector rules from the CN code itself:
| Sector | Direct | Indirect | Notable rule |
|---|---|---|---|
| Iron & steel | ✓ | Sintered-ore precursor only | Direct-only unless BF-BOF route via sinter |
| Aluminium | ✓ | — | PFCs from primary smelting as process emissions |
| Cement | ✓ | ✓ | Decarbonation + clinker factor (support coming) |
| Fertilisers | ✓ | ✓ | N₂O abatement credit where applicable (support coming) |
| Electricity | ✓ | n/a | Grid emission factor by origin |
| Hydrogen | ✓ | — | Production route determines emission intensity |
Precursor emissions, carried through
Precursors have embedded emissions of their own. The engine carries them through:
- Steel: crude steel, billets, DRI, sinter → downstream rolled or forged products.
- Aluminium: unwrought aluminium → extrusions, sheet, foil.
- Fasteners (CN 7318): wire rod → fastener — two-tier data collection, where both suppliers can be invited.
If a precursor supplier can’t be reached, the engine applies the default value + mark-up for that precursor only (not the whole good).
Default values and the mark-up
When actual verified data is missing:
- Default values come from IR 2025/2621 as corrected by IR 2026/1740, loaded into versioned reference data.
- Yearly mark-up applied automatically: +10 % (2026), +20 % (2027), +30 % (2028+).
- Fertiliser has a reported additional +1 % — the exact application is still being clarified in official guidance; we flag the uncertainty in-dashboard but don’t publish a numeric claim.
Reference data versioning
Every default value, NCV, grid factor and goods category is loaded from the official EU reference tables into versioned reference data. When the Commission publishes a correction:
- We pull the new table and run a diff.
- The change is logged on the rule tracker.
- Customers see a notice in-dashboard when a value they relied on has moved.
- Previous calculations are not auto-recalculated unless the customer confirms.
No regulatory number is hard-coded in product code. This is a non-negotiable rule.
Every number traces back
For any value in the dashboard, the engine shows:
- The bill, meter reading or production record it came from.
- The confirmation event when the supplier confirmed it.
- The calculation route (fuel-based, mass-balance, direct measurement).
- The reference data version used (which default-value table, which grid factor table).
- The edit history since the supplier first submitted.
A verifier can walk the chain for any number, in any direction.
What the engine does not do
- Verify emissions. Only an EU-accredited verifier can do that.
- Guess when data is missing — defaults apply, and we say so.
- Hide uncertainty. If a precursor supplier is unknown, the engine shows exactly which emissions line is on default + mark-up.