News: Avesta Labs has been named an OpenAI Select Partner within the OpenAI Partner Network. Read the announcement

Client case study

From manual document work to an AI assisted way of working

  • 5 jobs
  • 3 departments
  • 1 shared approach

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.

Client
Anonymous, at their request
Sector
Vehicle import, distribution and logistics
Teams
Operations, logistics and finance
Status
Built and demonstrated. Not live yet.
Book an AI Kickoff

Different paperwork. Same problem.

  • Typing up documents
  • Comparing documents
  • Checking bills
  • Typing it twice
  • Email attachments

If your team opens a document, types what it says into a spreadsheet, and checks it by reading it back, this is the same job with different paperwork.

Before automation

Important checks depended on someone remembering to do them

Different teams had different documents, but the same pattern kept turning up.

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

The shared problemSlow review, the same details typed again and again, mistakes that were avoidable, results scattered across files, and little way to trace a number back to the document it came from.

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.

None of this is a story about something that went wrong. The record shows no incident, no penalty and no backlog, and this page is not going to invent one. These are the things the old way of working left open.

One approach, reused

Documents go in once. Only the exceptions come back to the team.

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.

  1. Step 1

    Send them in

    Staff upload a batch of documents, or the system picks the attachment up from an email.

  2. Step 2

    Read them

    The system works out what each document is and pulls out the details that job needs.

  3. Step 3

    Apply the checks

    Rules check VINs, compare records against each other, and test charges against the annual tariff.

  4. Step 4

    Mark the exceptions

    Anything missing, anything that disagrees, and anything the system was unsure about is flagged clearly.

  5. Step 5

    Produce the file

    A structured spreadsheet is generated and sent to the people who need it.

Used independentlyEach of the five jobs runs all five steps on its own.
  • Bills of Lading
  • Comparing documents
  • Freight bills
  • Supplier bills
  • Email attachments

What made it hard

Reading the document was the easy part.

A right answer means five different things

Software has been able to pull text off a scan for years. The difficulty here 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, nothing shows you what the software struggled to read, and a month later nobody can say where a number came from.

Building it around their own checks and their own output files also meant they could judge it on their own paperwork, rather than on a demonstration built to go well.

The five jobs

Same five steps. Different documents, different rules, different file at the end.

Module 01 of 05

01

Bill of Lading extraction

Operations

The problem
Bill of Lading details were typed out by hand from scanned PDFs, and both the VIN and its length were checked by reading them on screen.
How it was solved
The whole batch is read in one go. The required details are pulled out, and every VIN is checked against the rule that it must be exactly 17 characters. Anything short, or anything the system had trouble reading, is flagged for a person to look at, with the original kept alongside it.
What comes out
A spreadsheet with the extracted details, a reference back to the source document, the processing status, and a flag on every row that needs attention.
Spreadsheet output, delivered by email

Every vehicle carries a VIN, its vehicle identification number, and a VIN is always exactly 17 characters. If one is missing the paperwork is wrong, and the vehicle can be held at the port.

Document portal / Bills of LadingSample data

Bill of Lading extraction

Read a batch of scanned Bills of Lading, pull out the fields, and check every VIN.

New batch
  1. 1Upload
  2. 2Reading
  3. 3Results

9

Documents read

6

Valid VINs

1

Trimmed to 17

1

Short VINs

1

Needs review

Export spreadsheetEmail reportNine documents read. Six of the rows shown.
VIN, as readLengthResultBL numberModelYear
ZZ1TESTAA0K441023317ValidCorrectBL-0000118Model A2026
ZZ1TESTAA0K441030917ValidCorrectBL-0000118Model A2026
ZZ1TESTAA0K44102316ShortOne character short. Original kept.BL-0000119Model B2026
ZZ1TESTAA0K441047118CheckSpace on the end. Removed, then correct.BL-0000119Model B2026
ZZ1TESTAA0K44l053917CheckRight length, one character unclear. Sent to a person.BL-0000120Model A2025
ZZ1TESTAA0K441051517ValidCorrectBL-0000120Model A2025
The point is the last two rows. The right length does not always mean the right answer, so anything the system was unsure about still goes to a person.

Module 02 of 05

02

Comparing documents against each other

Logistics

The problem
Teams compared the Bill of Lading, the commercial invoice, the packing list and the certificate of origin side by side, by eye.
How it was solved
The same fields are pulled out of every document and placed into one table, so differences show up in a single view rather than having to be spotted.
What comes out
A comparison file that makes matches, missing fields and disagreements easy to see.
Review led by the exceptions
Document portal / Comparing documentsSample data

Shipment comparison

Pull the same fields out of every document for one shipment and put them side by side.

New comparison
  1. 1Upload
  2. 2Read
  3. 3Group
  4. 4Report
Export spreadsheetEmail report
FieldBill of LadingCommercial invoicePacking listCertificate of originResult
Reference numberREF-4471REF-4471REF-4471REF-4471Match
Shipment numberSHP-9920Not foundNot foundNot foundMissing
Tax numberTN-0021807TN-0021807TN-0021807TN-0021807Match
BuyerSample Buyer LtdSample Buyer LtdSample Buyer LtdSample Buyer CoDisagrees
SellerSample Seller FZESample Seller FZESample Seller FZESample Seller FZEMatch
CurrencyUSDUSDNot foundNot foundMissing
Amount117,000.00117,600.00Not foundNot foundDisagrees
Quantity6 units668Disagrees
Eight fields, four documents. Three disagree and two are missing somewhere, and those five are what the logistics team looks at. The other three need nobody.

Module 03 of 05

03

Checking freight bills

Logistics

The problem
Every line on the freight carrier's bill had to be checked by hand against the annual tariff.
How it was solved
The tariff is loaded once. Bill lines are matched against it automatically, and anything charged at the wrong rate, or charged for a service nobody recognises, is flagged.
What comes out
A report showing the agreed rate, the rate charged, the difference, and the review status for each line.
Billing problems found sooner
Document portal / Freight billsSample data

Freight bill check

Match every line on a freight bill against the annual tariff.

New check
  1. 1Upload
  2. 2Read
  3. 3Check
  4. 4Results

8

Lines checked

4

Correct

4

Charged too much

0

Service not recognised

+8.18

Difference

Export spreadsheetEmail reportEight lines checked. Six of them shown.

Bill BILL-0019809

ServiceQtyChargedAgreedCharged totalExpectedDifferenceResult
Inspection, 24 minutesQuality inspection, per unit222.4721.4044.9442.80+2.14Too much
Parts removal and fitting, 10 minutes per vehicleParts removal and fitting, per unit65.785.5034.6533.00+1.65Too much
Parts transport, yard to supplierParts transport, per trip410.019.5340.0338.12+1.91Too much
Vehicle movement for fitting, 15 minutesVehicle movement, per vehicle68.668.2551.9849.50+2.48Too much
Storage, per dayStorage, per vehicle per day34.204.2012.6012.600.00Correct
Handling, per unitHandling and stacking, per unit215.0015.0030.0030.000.00Correct
Four lines charged above the agreed tariff rate, by 8.18 in total. None of the four is large on its own, which is exactly why they used to get through.

Module 04 of 05

04

One bill, two finance files

Finance

The problem
Supplier bills arrived in different layouts, and the same details were entered into two separate templates.
How it was solved
The system reads the bill once, puts the fields into a consistent shape, and fills in both the finance system's import file and the payment voucher.
What comes out
Two consistent spreadsheets, produced from a single pass over the document.
One reading, two finished files
Document portal / Supplier billsSample data

Supplier bill extraction

Read the bill once, then fill in both the finance system import file and the payment voucher.

Start over

2

Bills read

2

Succeeded

0

Failed

5

Lines

Finance import filePayment voucherEmail report
DateBillDescriptionAmountTaxDebitCredit
INV-202612020Sample Advisory3 Mar 20266,265.00
3/3/2026INV-202612020Advisory work, phase 1, first instalment2,100.000.002,100.000.00
3/3/2026INV-202612020Advisory work, phase 1 review, first instalment2,100.000.002,100.000.00
3/3/2026INV-202612020Advisory work, phase 2, first instalment2,065.000.002,065.000.00
INV-202612038Sample Advisory30 Apr 202613,800.00
30/4/2026INV-202612038Advisory work, phase 1, final instalment9,900.000.009,900.000.00
30/4/2026INV-202612038Advisory work, phase 1 review, final instalment3,900.000.003,900.000.00
Two bills, five lines, one reading. The same rows fill the finance system import file and the payment voucher, which is the step that used to be done twice.

Module 05 of 05

05

Email attachment intake

All teams

The problem
Attachments had to be collected, unlocked, renamed and filed before document processing could begin.
How it was solved
The system takes the email and its attachment, unlocks the file where that is allowed, names it from the details inside it, and puts it into storage.
What comes out
Consistently named files, available to download or pass to whichever job needs them next.
Intake and filing, handled for you
Document portal / Email attachmentsSample data

Email attachment intake

Take the email, unlock the attachment where that is allowed, and name the file from what is inside it.

Email file

Drop an email containing a locked bill. The system unlocks it, reads the fields, and renames it.

FW_ Credit advice dated 11 Jun 2026, bank ref AE1234567.eml

35.3 KB

Unlock and rename

  1. Reading the email

    Sample Sender <sender@example.com>

  2. Finding the attachment

    credit-advice-8f2a.pdf

  3. Unlocking it

    Unlocked. 1,656 characters read.

  4. Pulling out the fields

    20260611 · REF0000112233 · SAMPLE TRADING

  5. Renaming the file

    20260611-REF0000112233-SAMPLE_TRADING.pdf

  6. Saving it

    Saved and available in the portal

Renamed and unlocked

Source
Operations
Date
11 Jun 2026
Reference
REF0000112233
Payer
Sample Trading
Filename
20260611-REF0000112233-SAMPLE_TRADING.pdf
DownloadOpen in portal
The file arrives called whatever the sender called it and leaves named from its own contents, so the next job can find it without anybody renaming anything.

The outcome

The jobs were demonstrated. The approach can be reused.

The group moved from five separate manual tasks to one shared way of reading documents, applying checks, and producing results.

Validated through implementation

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

Operational value created

  • Repetitive typing can be replaced by reviewing the exceptions.
  • VIN, tariff and cross document checks happen the same way every time.
  • Finance can fill two templates from one reading.
  • Outputs follow a repeatable format, so a number can be traced back to its document.
  • The same approach can be extended to other teams with a lot of paperwork.

Evidence note: Everything in these two panels was observed while the system ran. None of it is a measured business result, and no accuracy figure is claimed, because no production measurements exist yet. The estimates further down are labelled as estimates and have not been measured either.

Estimated, not measured

What we expect it to save, once it is running.

Nobody has run this for a month and counted. The four figures below are estimates, worked out from the manual steps being replaced and the design of what replaces them. They are here to show the size of the opportunity, not to report a result.

  • Estimated

    Up to 90% faster document processing

    Documents that used to be opened and typed up one after another go in as a batch, and the finished spreadsheet comes back in minutes.

  • Estimated

    Up to 75% fewer manual entry errors

    A value is read once and reused wherever it is needed, instead of being typed again into every spreadsheet and template.

  • Estimated

    Up to 70% fewer comparison errors and rework

    Putting the same fields from every document into one view makes a conflict or a gap easy to see, before it turns into a delay at clearance.

  • Estimated

    Up to 85% faster tariff checking

    Matching bill lines against the tariff automatically takes most of the time out of finding a wrong rate or a service nobody recognises.

Every figure here is an estimate and none of them has been measured. Confirming them needs the client's own evidence: minutes per document, weekly volumes, correction rates and shipment turnaround times. Until that exists these stay labelled as estimates, and nothing on this page describes them as achieved.

What comes next

Ready to make document work faster and more reliable?

Tell us where your team spends its hours reading, comparing, checking and retyping documents. We will help you find the one job where this is worth doing first, and leave the decisions that need a person with a person.

Book an AI Kickoff

Or email hello@avestalabs.ai