Guide 08
How to produce a CBAM declaration
The sequence from raw production data to a Registry-ready package, and who owns each step.
Step 01
Establish scope
Production starts by fixing what is in scope. For each consignment bound for the EU, establish the good, its classification, the installation that produced it, and the reporting period it falls in. A consignment that is out of scope costs nothing to exclude at this stage and is expensive to unpick once the data is assembled.
Scope is set per installation and per good, not per shipment. One installation producing three goods is three data sets, and each carries its own production route and its own emissions figures.
Step 02
Collect production data
The inputs come from the plant, not from an office. Production volumes, fuel and electricity consumption, process inputs, and any measurement or metering records for the reporting period. Where a precursor is bought in rather than made on site, its own emissions data has to come from the supplier, and that request is usually the longest lead time in the whole sequence.
Collect against the fields the declaration will need, not against what the plant happens to record. Guide 02 sets out what a declaration carries.
Step 03
Determine emissions
With the inputs in hand, emissions are attributed to each good using the calculation methods the Commission has laid down. This is where actual values and default values diverge: actual values require the underlying plant data to support them, defaults do not, and the choice made here has to be recorded in the file alongside the figures it produced.
Implementing Regulation (EU) 2025/2547
Lays down the methods for calculating the emissions embedded in goods declared for the definitive period.
Determination is a step, not a formality. A figure that cannot be traced back to a production record is a figure that will not survive scrutiny later.
Step 04
Assemble and validate
The data is then written into the XML declaration and checked against the schema before it goes anywhere near the Registry. Validation is mechanical: elements, data types, and code lists either match the schema or they do not. Every error found here is an error the Registry does not get to reject.
This is the step Carbon Mandate performs. Guide 07 walks the file element by element.
Step 05
Hand over to the importer
The finished package goes to the EU importer, who submits it and manages the certificate account. A non-EU producer cannot submit to the Registry itself, so the handover is not optional — it is the last step of the process, and the package has to be complete when it happens.
Carbon Mandate prepares and checks the data and the XML; the importer files. Preparer, not filer; never the verifier.