Case study · AI engineering

Vehicle import and logistics group

Five document jobs, one way of working.

People opened documents one at a time, read them on screen, and typed what they found into spreadsheets. We built one system that reads those documents, applies each team’s own checks, marks anything that looks wrong, and produces the file they already use.

What it changes: Documents go in once. Only the exceptions come back to the team. Three departments that each had their own manual routine now share one way of reading, checking and filing, and a number can be traced back to the document it came from.

Client
Anonymous, at their request
Sector
Vehicle import, distribution and logistics
Teams
Operations, logistics and finance
Status
Built and demonstrated. Not live yet.
What we built
Five document jobs on one extraction and checking pipeline
Evidence
Everything below was observed while the system ran. No production measurements exist yet.
  • Document extraction
  • VIN validation
  • Cross document comparison
  • Tariff checking
  • Finance templates
  • Email intake
  • Exceptions only

Before: important checks depended on someone remembering to do them

Documents arrived by email, in shared folders, on memory sticks, and by hand. The tools were ordinary ones: a PDF reader, spreadsheets, the annual tariff, and two finance templates.

Operations: typing up Bills of Lading

Staff opened Bills of Lading one at a time, retyped the details into a spreadsheet, and checked each vehicle’s VIN by counting the characters on screen.

Logistics: comparing documents

Documents for the same shipment were read side by side, which made disagreements slow to find and hard to record the same way twice.

Logistics: checking freight bills

Every line on the carrier’s bill was checked by hand against the annual tariff, which left room for wrong rates and charges nobody recognised.

Finance: the same bill, typed twice

Supplier bills arrived in different layouts, so the same details were typed out twice. Once into the finance system’s import file, once into the payment voucher.

All teams: getting attachments out of email

Attachments had to be saved out of email, unlocked, renamed and filed before any of the work above could start.

The shared problem

Slow review, the same details typed again and again, avoidable mistakes, results scattered across files, and little way to trace a number back to its document.

What was at stake

None of it looked urgent on the day. The work was routine and any one mistake was small. What made it worth taking seriously is what a small mistake turns into three weeks later.

  • A shipment held up: a discrepancy nobody caught can delay a shipment being cleared.
  • A charge nobody questioned: a rate that does not match the annual tariff gets paid, because nothing in the process forced the comparison.
  • No way back to the source: if somebody questioned a row later, the filename was often the only route back to the document.

One approach, reused

The system reads the document, pulls out the details, applies that team’s rules, marks anything that looks wrong, and produces the file they already use. Each of the five jobs runs all five steps on its own.

  1. 01Send them in. Staff upload a batch of documents, or the system picks the attachment up from an email.
  2. 02Read them. The system works out what each document is and pulls out the details that job needs.
  3. 03Apply the checks. Rules check VINs, compare records against each other, and test charges against the annual tariff.
  4. 04Mark the exceptions. Anything missing, anything that disagrees, and anything the system was unsure about is flagged clearly.
  5. 05Produce the file. A structured spreadsheet is generated and sent to the people who need it.

What made it hard: reading the document was the easy part

Software has been able to pull text off a scan for years. The difficulty is that each of the five jobs has its own idea of what a right answer looks like: a VIN that is exactly 17 characters; the same value appearing on all four shipment documents; a charge that matches the annual tariff; one supplier bill mapped correctly into two different finance templates; an attachment pulled out of an email, unlocked, and named from what is inside it.

And the documents do not cooperate. Scanned and digital documents varied in quality and layout, carried stamps and handwriting, and repeated line items down the page. The same detail could appear under a different label from one document to the next.

The version that looks fine in a demonstration

A box you drop files into and a table of results is not hard to build. It falls over in the first week of running on its own. Nothing keeps a record of what was processed, one file in fifty fails and nobody notices, and a month later nobody can say where a number came from. Building it around their own checks and their own output files meant they could judge it on their own paperwork, rather than on a demonstration built to go well.

The five jobs

01 · Bill of Lading extraction
The whole batch is read in one go. Every VIN is checked against the rule that it must be exactly 17 characters. Sample run: 9 documents read, 6 valid VINs, 1 trimmed to 17, 1 short, 1 needs review.
02 · Comparing documents
The same fields from the Bill of Lading, commercial invoice, packing list and certificate of origin go into one table. Sample: eight fields across four documents, three disagree, two missing. Those five are what the team looks at.
03 · Checking freight bills
The tariff is loaded once and every bill line is matched against it. Sample: 8 lines checked, 4 correct, 4 charged too much, 8.18 over in total. None large on its own, which is exactly why they used to get through.
04 · One bill, two finance files
The bill is read once and both the finance import file and the payment voucher are filled from the same rows. Sample: 2 bills, 5 lines, 0 failed.
05 · Email attachment intake
The system takes the email, finds the attachment, unlocks it where allowed, names it from its contents, and files it so the next job can find it without anybody renaming anything.

The outcome: demonstrated, and reusable

Validated through implementation

  • All five jobs ran from start to finish
  • Documents uploaded through the browser
  • Reading and comparison produced structured results
  • Each job generated the spreadsheet it needed
  • Finished files sent out by email automatically

What it makes possible

  • Repetitive typing replaced by reviewing the exceptions
  • VIN, tariff and cross document checks done the same way every time
  • Finance fills two templates from one reading
  • A number traced back to its document
  • The same approach extended to other paperwork heavy teams

Estimated, not measured

Nobody has run this for a month and counted. Our estimates, worked out from the manual steps being replaced, are up to 90% faster document processing, up to 75% fewer manual entry errors, up to 70% fewer comparison errors, and up to 85% faster tariff checking. Every one of these is an estimate. Confirming them needs the client’s own evidence: minutes per document, weekly volumes, correction rates and shipment turnaround times. Until that exists, nothing on this page describes them as achieved.

The job transfers

Anyone typing documents into spreadsheets

  • right icon

    Freight forwarders and customs brokers

  • right icon

    Importers and distributors

  • right icon

    Accounts payable teams

Anyone checking bills against a rate card

  • right icon

    Logistics and transport operators

  • right icon

    Procurement teams

  • right icon

    Any team reconciling supplier invoices by hand

More ai engineering work

Next

Tell us which part of this looks like your problem.

We will walk you through how it was built, who built it, and what it took to keep it running afterwards.

AI engineering