Problems Work Services Workshops Contact Book a call →
Case 02 — what we shipped

Commercial documents generated from data, correct on the first pass

Export invoices, technical specifications and conformity certificates were being assembled by hand, cell by cell. Every one of them carried codes, weights and totals where a single transposed digit means a rejected shipment.

Trade & manufacturingBack-office automationStructured data → documentsShipped

The problem

The documents were the system of record. An invoice existed as a spreadsheet, and the spreadsheet was the only place the line items, the classification codes and the weights lived. Producing the next document meant copying the last one and editing it.

That works until it does not. Totals drift from their line items after an edit. A classification code gets carried over from a product that is no longer on the invoice. Net and gross weights stop reconciling. None of these are visible on the page — they are visible at a border, days later, when the shipment is held.

And the checking was the expensive part. Producing a document was the quick part; verifying that it was internally consistent took longer, and was done by the person least able to be objective about it, namely the person who had just typed it.

The fix is not a better template. It is moving the source of truth out of the document and into the data the document is rendered from.

What we built

A pipeline where structured data is authoritative and every document is a rendering of it. Line items, classification codes, per-item and aggregate weights, currency, and delivery terms are computed once and reused across every document type that needs them.

Validation runs before anything is rendered, not after. Do the line weights sum to the declared total? Does every item carry a valid classification code? Do the extended amounts reconcile to the invoice total? A document that fails those checks is never produced, so it can never be sent.

How it works

01Data first, document second

One structured record per consignment holds items, quantities, unit values, weights, codes and terms. The invoice, the packing specification and the certificate are three views of that record rather than three files that must be kept in agreement by hand.

02Validation as a gate

Arithmetic and completeness checks run before render: totals reconcile to line items, weights sum, every item has a classification code, required fields for the destination are present. Failing the gate stops the document — the error surfaces at the desk, not at the border.

03Templates per document type

Each output format is a template over the same data. Adding a new document — a different market’s customs form, a buyer’s preferred layout — is a template, not a project.

04Deterministic where it must be

Codes, weights and totals are computed, never generated by a language model. Where AI helps is in the soft parts — drafting descriptions, matching a product to a likely classification for a human to confirm. Numbers that a customs officer will check are arithmetic, and stay arithmetic.

What changed

Computed
Classification codes, per-item and aggregate weights and totals derived, never retyped
Blocked
A document failing the validation gate is never produced, so it can never be sent
One record
Feeding every document type, instead of one spreadsheet per document

Built and validated against a real consignment.

The expensive half of the work — checking — largely disappeared. The document is consistent by construction, so the human review is about commercial judgement rather than arithmetic.

Adding a document type became cheap. The second and third outputs cost a fraction of the first, because they read the same data.

The failure mode moved earlier and got louder. A missing classification code is now a message at the desk instead of a phone call from a freight forwarder.

Where this applies

Any business producing repetitive, high-consequence documents from data that already exists somewhere structured: export and customs paperwork, quotations and proposals, technical specifications, conformity and test certificates, recurring compliance filings.

It is a poor fit for documents that are genuinely bespoke every time. If no two outputs share a structure, there is nothing to template and the honest answer is to keep writing them.

Have a problem worth solving?

Tell us what's not working. The first conversation is free — whether it's a build, a long-term partnership, or just questions, you'll get an honest read and a clear next step.

Start the conversation →