Skip to content
← Missions

Kooman — export control document intelligence

Classification data sits in documents nobody designed to be machine-read. Extracting it reliably, and knowing when not to trust the answer, is the whole problem.

Airbus HelicoptersAerospace — rotorcraftAI Applications & Agents2025

The problem

To know whether a part may be exported, and where, you need its classification. That data lives on an ECCD, an Export Control Classification Declaration, and the documents were never designed to be read by a machine.

They arrive as textual PDFs, as scans of varying legibility, and as spreadsheets. Layouts differ by supplier. The same part number appears in several places, described several ways, and no single document is complete on its own.

The scale is the other half. Airbus Helicopters holds around 29,500 ECCDs, estimated to contain 800,000 to 1,000,000 part numbers. At roughly two minutes per part number to download, check, compare and update the reference table, working the backlog by hand is on the order of fifteen years of effort.

What we did

A pipeline with two extraction paths: one for textual PDFs and spreadsheets, one for scans, which get scored for legibility and orientation before a vision model sees them. Extracted fields land as structured records and are cross-checked against the customer’s own material and export-classification master tables.

Everything runs on-premises on our own hardware, with GPU capacity on European cloud infrastructure over VPN. For export-control material, where the data sits is a design decision, not an operational detail.

Measured on delivery, September 2025:

Textual PDF & spreadsheet Scanned (OCR)
Part number 91% 70%
Classification (EU / US) 91% 70–80%
Country, description 91% 60–70%

Throughput was ~200 part numbers per hour, against the two-minute-per-part manual baseline.

We reported the weak fields as plainly as the strong ones, and concluded that about 70% of the scope can be processed with confidence — deliberately pessimistic, with the rest going to a human.

That is why the pipeline carries a confidence check that routes anything it cannot stand behind to manual classification. On the subset that passes, accuracy rises above 95%; the point of the mechanism is knowing which subset that is.

What made it hard

Traceability was the design constraint, not a feature added afterwards. In export control an opaque answer is worse than no answer: it cannot be audited, cannot be defended to an authority, and quietly transfers responsibility to whoever signed it off.

So every extraction carries its source, disagreements between documents surface rather than being silently resolved, and the system is explicit about what it should not decide alone. A 91% extractor that tells you which 9% to check is useful. A 97% extractor that cannot is not, because you have to re-check all of it.