A reimbursement claim read in 90 seconds, for about $0.55
For a health insurer: the system reads scanned reimbursement claims together with their invoices, and the claims team only checks the values instead of retyping them.
See how the system reads one claim folder
Pick a scan. The demo plays by itself; click any step to go back to it.
The folder arrives as a single scan. The system splits it into pages and turns the ones scanned sideways or upside down.
- Split into 4 pages
- Page 3 turned
AI recognises what each page is: a claim form, an invoice or an attachment. That decides which data to extract from it.
- Claim form: pages 1–2
- Invoice: page 3
- Attachment: page 4
The system extracts the data from the claim form and the invoice, handwriting, tick boxes and the signature included. Every value records how sure the system is about it.
- Claim form: 8 fields
- Invoice: items and amounts
- Unclear date flagged for review
The system checks the data against the client registry and the invoice. It fixes common slips, such as a typo in the e-mail address or a misread digit.
- E-mail corrected
- Policy number corrected
- Amounts match the invoice
Each service on the claim form is assigned to the right catalogue entry. The dictionary goes first; when a name is not in it, AI suggests a match and flags it for review.
- Consultation: from the dictionary
- Dressing: AI suggestion
The claims system gets a ready case. A person checks only the two flagged fields instead of retyping the whole folder.
claim_folder.pdf
- Page 1upright
- Page 2upright
- Page 3upside downturned
- Page 4upright
- Page 1Claim form · p. 1
- Page 2Claim form · p. 2
- Page 3Invoice
- Page 4Attachment
Each page now goes to the extraction meant for it.
- Full nameAnna Nowicka0.97
- Policy numberPL 204 88I 360.84
- E-mailanna.nowicka@gmial.com0.90
- Bank account… 1981 44710.96
- Type of careOutpatient0.95
- Services2 items, 340.00 PLN0.91
- Date of service12.03.20260.58needs review
- SignaturePresent0.93
- Invoice2 items, 340.00 PLN0.98
The facility for each service comes from the invoice.
Done
- processing time
- ~1.5 min
- AI cost
- ~$0.55
- fields to review
- 2
- needs reviewDate of service: unclear handwriting
- needs reviewDressing: match suggested by AI
Every value carries a confidence score and the page it came from.
The folder arrives as a single scan. The system splits it into pages and turns the ones scanned sideways or upside down.
- Split into 4 pages
- All pages upright
AI recognises what each page is: a claim form, an invoice or an attachment. That decides which data to extract from it.
- Claim form: pages 1–2
- Invoice: page 3
- Attachment: page 4
The system extracts the data from the claim form and the invoice, handwriting, tick boxes and the signature included. Every value records how sure the system is about it.
- Claim form: 8 fields
- Invoice: items and amounts
- Every field certain
The system checks the data against the client registry and the invoice. It fixes common slips, such as a typo in the e-mail address or a misread digit.
- Data matches the registry
- Amounts match the invoice
Each service on the claim form is assigned to the right catalogue entry. The dictionary goes first; when a name is not in it, AI suggests a match and flags it for review.
- Both services from the dictionary
The claims system gets a ready case with nothing to review. Nobody has to retype anything.
claim_folder.pdf
- Page 1upright
- Page 2upright
- Page 3upright
- Page 4upright
- Page 1Claim form · p. 1
- Page 2Claim form · p. 2
- Page 3Invoice
- Page 4Attachment
Each page now goes to the extraction meant for it.
- Full nameMarek Zieliński0.99
- Policy numberPL 305 177 420.99
- E-mailmarek.zielinski@poczta.pl0.99
- Bank account… 7781 12900.99
- Type of careOutpatient0.99
- Services2 items, 430.00 PLN0.98
- Date of service05.09.20260.99
- SignaturePresent0.97
- Invoice2 items, 430.00 PLN0.99
The facility for each service comes from the invoice.
Done
- processing time
- ~1 min
- AI cost
- ~$0.55
- fields to review
- 0
Nothing to review: the case can move on straight away.
Every value carries a confidence score and the page it came from.
A walkthrough on fictional documents. Time and cost in the demo are illustrative.
What it does
The system reads the scanned claims that people used to retype by hand. Next to every value it shows the page it was read from and how sure it is, so reviewers start with the doubtful fields.
In numbers
- AI cost per claim, depending on the number of pages
- $0.55
- Average AI model cost per claim. It depends on the number of pages and attachments.
- to read a whole claim folder, instead of retyping it
- ~1.5 min
- Typical time to read one folder, from the scan arriving to the finished result.
The problem
- Reimbursement claims arrive as scanned folders: a printed form filled in by hand, ticked boxes, a signature and the invoices. Staff retyped them field by field.
- The first proof of concept showed that a model reads these claims well. The harder part was turning that into a service that works with the insurer's systems, says when it is unsure, and that the client's team can run without us.
Decisions that shaped it
Every confidence score says where it comes from
Most fields have a confidence measured from the reading itself. For the rest the source is visible: a rule, the dictionary or the model’s own judgement. Those fields stay out of the overall score, so no decision is automated on a number that was never measured.
No folder disappears quietly
After every stage the system checks that the stage really did its job. An error at any stage ends the run in a visible failure, and a separate watchdog catches runs that get stuck or take too long. For every folder the insurer receives exactly one message.
Better to wait in a queue than retry blindly
Reading scans relies on a service with a request limit. Folders above the limit wait in a queue, where you can see how many there are, instead of failing and coming back over and over. The limit is a single setting.
The data never leaves the client's account
The claims carry names, identification numbers and addresses. The whole service is deployed into the insurer’s own AWS account.
Calibrate before automating
We advised the client to use the confidence scores, for now, only to order a reviewer’s work, not to skip the reviewer. Skipping makes sense only once the scores have been checked on a batch of real, reviewed claims. The service was handed over in a form the client’s team can maintain and develop without us.
These rules were worked out together with the client, to fit how they work. In your company they may look different, and I will fit the system to the way you work.
Built with
- Amazon Bedrock
- Amazon Textract
- AWS Step Functions
- AWS Lambda
- API Gateway
- SQS
- DynamoDB
- OpenSearch
- DocumentDB
- Terraform
- Python