AI for ESG & Sustainability Reporting
Capable · M2 · lesson 2 of 24 · queued
Preview — browse every lesson free. Enroll to mark lessons complete, open partner links and save your progress. Login & enroll →
AI-Assisted CBAM Embedded-Emissions Drafting
📖
now learning

AI-Assisted CBAM Embedded-Emissions Drafting

15 min

It is late March, the CBAM quarterly report is due, and you have shipments of steel, aluminium, and a little hydrogen to account for. You ask a model to draft the embedded-emissions section. It produces a tidy table with a clean tonnes-of-CO2-per-tonne figure for every product. The table looks finished. Nowhere does it say which of those figures came from a supplier's verified data and which the model pulled from a default value, and that single missing column is the exact line a customs authority will test.

What CBAM Actually Asks You to Declare

The Carbon Border Adjustment Mechanism entered its definitive phase on 1 January 2026. If you import covered goods into the EU above the 50-tonne annual de minimis threshold, you are, or you work for, an authorised declarant: the legal person responsible for declaring the emissions embedded in those imports and, from 2027, surrendering CBAM certificates against them. The covered goods are a specific list: cement, iron and steel, aluminium, fertilisers, hydrogen, and electricity. If you import them, CBAM is your problem, and "the consultant handles it" does not move the accountability off your name.

The thing you declare, quarter after quarter against a deadline, is embedded emissions: the greenhouse gases released in producing the goods you imported, expressed as emissions per tonne of product. For most covered goods this means direct emissions from the production process, and for some it extends to indirect emissions from the electricity consumed. This is not your own corporate footprint. It is the carbon that came embedded in the steel beam or the bag of fertiliser when it crossed the border. The whole mechanism exists to put a carbon price on that embedded carbon so that imports do not undercut EU producers who pay for their emissions.

Why This Is a Customs Document, Not a Sustainability Report

Here is the mental shift that matters. A CSRD sustainability statement is read by an assurer and, eventually, investors. A CBAM declaration is read by a customs authority. That is a different reader with different powers. A customs authority is not grading your narrative. It is checking whether the emissions you declared are correct, correctly sourced, and correctly priced, and it can demand the evidence behind every number. The error you most need to avoid is not a clumsy sentence. It is declaring the wrong kind of value for an emissions figure, because that is the discrepancy a customs check is built to catch.

The deadline pressure is structural, not incidental. CBAM runs on a quarterly cadence in the early definitive period and then on annual declarations with certificate surrender from 2027, and the more than twelve thousand authorisation applications filed by early January 2026 are now twelve thousand entities producing recurring declarations on a clock. That cadence is precisely what makes AI tempting: you are doing the same structuring work across many shipments, many times a year, against a date. It is also what makes the value-label discipline non-negotiable, because an error you make once in a rushed quarter is an error you will repeat every quarter until someone catches it, and the someone who catches it might be the customs authority rather than you.

The One Distinction That Runs Through Everything: Default Values vs. Actual Values

Every embedded-emissions figure in a CBAM declaration is one of two kinds, and the entire integrity of the declaration rests on never confusing them.

An actual value is the real, measured, verified emissions intensity of the specific goods you imported, determined from the installation that produced them. It comes from your supplier, the operator of the production installation, who monitored their process emissions and, under the definitive regime, had them verified. Actual values are the gold standard because they reflect what was really emitted. They are also harder to get, because they depend on a non-EU producer doing the monitoring, the calculation, and the verification, and then sharing it with you.

A default value is a fallback the Commission publishes when actual data is unavailable. It is a representative emissions intensity for a product type, used when you genuinely cannot obtain verified actuals from the producer. Defaults exist so that a declaration can be completed even when the supply chain will not yield real data. But they are deliberately conservative, often set to represent higher-emitting production, precisely so that relying on a default is not a way to understate your carbon and dodge the price.

This design creates an incentive structure you must keep in view. Because defaults are conservative, they usually imply a higher embedded-emissions figure than a clean producer's real actual, which usually means more CBAM certificates to surrender and a higher cost. So there is a genuine, legitimate reason to want actuals: a low-emitting supplier's verified data can save you money against the conservative default. That legitimate incentive is exactly what makes the invented actual so tempting and so dangerous. The pull toward a lower number is real and rational, and a model handing you a plausible low figure feels like it is solving your problem, when in fact it may be manufacturing your liability. The only safe way to capture the saving is to actually hold the verified producer data; wanting the lower number is not the same as being entitled to declare it.

In a CBAM declaration, an actual value and a default value are not interchangeable numbers. They are two different legal claims, and presenting one as the other is the misstatement a customs authority is built to find.

The Exact Line a Customs Authority Will Test

Picture the check. A customs officer looks at your declaration and sees an actual value claimed for a steel import: a specific, lower-than-default emissions intensity. The first question is simple and devastating: show me the verified supplier data this actual value rests on. If you have the verified installation data, the calculation methodology, and the verification, the claim stands. If you declared an actual value but can only produce a number the model generated or a figure you cannot trace to a verified producer report, you have a problem that is no longer about emissions accounting. You have declared something you cannot support to a customs authority. The reverse error, declaring a default when you actually had verified actuals, is less dangerous but still wrong, because the declaration is meant to reflect the best available verified data.

This is why the missing column in the AI table is not cosmetic. The single most important fact about every embedded-emissions figure in a CBAM report is not the number itself. It is which kind of value it is and what supports it. A figure without that label is undeclarable, because you cannot stand behind it when the customs officer asks the only question that matters.

Notice how a low figure changes the stakes of the question. If your declared actual sits comfortably above the relevant default, an examiner has little reason to probe it and your liability is conservative anyway. But a declared actual that is conspicuously below the default is the line that invites scrutiny, because it is the line that saves you money and, if unsupported, the line that understates carbon. Enforcement naturally gravitates to the figures that reduce liability, so the actuals you most want to claim, the low ones, are exactly the actuals you must be most able to prove. Treat any below-default actual as a figure that will be tested, and make sure the held verified report is ready to produce before the declaration is filed, not scrambled for after the customs query arrives.

Where AI Genuinely Helps, and Where It Quietly Endangers You

AI is genuinely useful in CBAM drafting, and the deadline pressure is real, so use it where it earns its place. It is good at structure: organising your shipments into the right product categories, laying out the declaration in the expected format, and turning a pile of supplier emails and customs entries into a draft table. It can take a verified producer report in another language and pull out the figures you need to check. It can draft the methodology narrative that explains how a calculation was done. It can flag which of your imported goods are even in scope. For a declarant racing a quarterly deadline across dozens of shipments, that structuring work is hours saved.

The endangerment comes at the exact point that matters most: the value itself and its label. A model asked to "complete the embedded-emissions table" will do precisely what it did in the opening scene. It will fill every cell with a plausible number, and it will not reliably distinguish the cell where you have a verified actual from the cell where it inserted a default, or worse, where it invented a figure that resembles a default. Generative models produce uniform, finished-looking output; that instinct is the enemy here, because the whole point of a CBAM declaration is that the cells are not uniform. Some are verified actuals, some are conservative defaults, and the difference is the declaration.

There is a second, quieter trap in how AI handles the supplier data you do have. Producer reports arrive in inconsistent formats, often in another language, sometimes covering only part of the production route, sometimes mixing direct and indirect emissions in ways the declaration must keep separate. A model is genuinely helpful at reading these and pulling out figures, but it is also prone to smoothing over exactly the distinctions that matter: it may combine a direct-emissions figure and an electricity-related figure into one number because that reads cleanly, or report a figure for one production step as if it covered the whole good. Each of these is a quiet misstatement that an extraction that looked successful can introduce. So even when a verified report genuinely exists, the figure the model extracted from it is not automatically your actual value; it is a candidate you must confirm against the report, in the report's own terms, before it earns the label.

The Worst Case: An Invented Actual

The single most dangerous failure mode in AI-assisted CBAM drafting is the invented actual: the model produces a specific, plausible, lower-than-default emissions figure and the draft presents it as an actual value, when in truth no verified supplier data exists behind it. This is catastrophic because it combines a fabricated number with a false legal claim about its provenance, declared to a customs authority, and it conveniently lowers your carbon liability, which is exactly the pattern an enforcement check is designed to surface. The declarant who lets this through has not made an accounting slip. They have signed an unsupportable customs declaration.

Worked Example: An AI CBAM Table, Before and After

A declarant imports three product lines in the quarter: structural steel from a supplier who sent a verified emissions report, aluminium from a supplier who sent nothing usable, and fertiliser from a supplier whose report arrived but is unverified. The analyst pastes the supplier materials into a model and asks it to draft the embedded-emissions table.

Before (the AI draft): a clean three-row table. Steel: 1.85 tonnes CO2 per tonne. Aluminium: 6.20. Fertiliser: 2.10. Three tidy numbers, no other columns, the methodology narrative below describing it all as the "embedded emissions of imported goods." It reads like a finished declaration.

Now apply the only check that counts: for each row, which kind of value is it and what supports it? Steel: the supplier sent a verified report, so an actual value is legitimate, but the analyst must confirm 1.85 actually equals the figure in that report rather than the model's paraphrase of it. Aluminium: the supplier sent nothing usable, so there is no basis for any actual value; 6.20 is either a default the model recalled or an invented number, and it must be replaced with the correct published default and labelled as a default. Fertiliser: the report exists but is unverified, so it cannot be declared as a verified actual; either you obtain verification or you use the default, and you cannot let an unverified supplier figure masquerade as an actual.

After (the verified draft): the same three rows, now with the columns that make them declarable. Steel: 1.78 (corrected to match the verified report), value type "actual," basis "verified installation report, supplier X, dated and on file." Aluminium: the published default for that aluminium product, value type "default," basis "no verified supplier data available, Commission default applied." Fertiliser: the published default, value type "default," basis "supplier report unverified, actual not claimed." The after-table has more columns and plainer claims, and every figure can survive the customs officer's question. The before-table looked more finished precisely because it hid the distinction that the entire declaration turns on.

The Discipline in One Move

The whole lesson collapses into a single operating rule for AI-assisted CBAM drafting: the model may draft the table, but every value is undeclarable until a human has stamped it actual or default and pointed it at its support. Actual means a verified producer report you hold. Default means the correct published Commission value, applied because verified actuals are genuinely unavailable. Anything the model produced that you cannot place into one of those two categories with its evidence does not go in the declaration, because the declarant, not the model, signs it and answers for it.

A practical way to make the rule hard to break is to forbid the model from ever producing a bare number. Instruct it to leave the figure empty and write a flag such as "NEEDS VALUE TYPE" wherever you did not supply verified data, rather than filling the cell with something plausible. A blank that demands resolution is safe; a confident number you did not ask for is the hazard. The declarant then resolves each flag with a deliberate human decision: produce the verified report and declare an actual, or apply the correct published default and record why actuals were unavailable. The discipline is not about distrusting the tool everywhere. It is about drawing one bright line at the value type, the single thing a customs authority is built to test, and refusing to let the model cross it on your behalf.

Key Takeaways

  • CBAM's definitive phase has been live since 1 January 2026; an authorised declarant declares the embedded emissions of imported cement, iron and steel, aluminium, fertilisers, hydrogen, and electricity above the 50-tonne threshold, and accountability stays on the declarant's name.
  • Embedded emissions are the greenhouse gases released in producing the imported goods, expressed per tonne of product, not your own corporate footprint.
  • A CBAM declaration is read by a customs authority, not an assurer, so the error to avoid is declaring the wrong kind of value, because that is the discrepancy an enforcement check is built to catch.
  • Every embedded-emissions figure is either an actual value (real, verified, supplier-specific) or a default value (a conservative Commission fallback used when verified actuals are unavailable), and the two are different legal claims, not interchangeable numbers.
  • The exact line a customs authority tests is: show me the verified supplier data behind this actual value; an actual you cannot trace to a verified producer report is unsupportable.
  • AI helps with structure, categorisation, translation, and methodology narrative, but it endangers you at the value and its label, because it produces uniform output when the whole point is that the cells are not uniform.
  • The worst failure mode is the invented actual: a fabricated, conveniently low figure presented as a verified actual, which is exactly the pattern enforcement is designed to surface.
  • The operating rule: the model may draft the table, but every value is undeclarable until a human stamps it actual or default and points it at its support.