Abdul Samad Zeeshan
Email meEmail

Project 07 / 07 / shipped

Docket

Reads receipt photos into checked data and says which receipts can skip a person at a 1 percent error budget.

From the write-up

Docket reads a photo or PDF of a receipt and turns it into clean, checked data. It refuses to save anything that fails a strict format check, because a model will happily invent a field, and a retry can never create a duplicate. Every field also gets a confidence score, and a receipt goes to a person whenever one of its fields looks doubtful.

Headline numbers / 2

Test receipts the system trusted enough to skip a person, at a 1% error budget. Of their 32 fields, none were wrong.
11 of 149none wrong
From the Docket README, straight-through processing section, paragraph under the table.
Photo receipts read into valid JSON when the model is forced to follow the output format. Without that, 17 of 20.
20 of 20all valid
From the Docket README, routing and cost table, public photos rows (100.0% and 85.0%) and the note under it.

Decisions I made and things that broke

  1. Alarms went quiet after a security setting silently removed their right to publish. The fix grants that right in writing.
  2. Each record's id comes from the file itself, so a repeated delivery or replay never creates a second record.
  3. Reading stopped at a time limit because the graphics card is shared, so only 606 of 1,987 receipts were read.

What this proves / 7 skills

AI / ML

Calibration
Some test receipts were trusted to skip a person, 11 of 149 at a 1% error budget. None of their 32 fields were wrong.
Schema-checked output
When the model was forced to follow the output format, all 20 photo receipts came back as valid JSON. Without that, 17 of 20.
Amazon Bedrock
Claude Haiku on Amazon Bedrock got almost every field right on 42 hand-checked receipts, scoring 0.999, from saved answers.

Web / backend

TypeScript
The pipeline, its tests and its scoring are TypeScript.
Idempotency
Each record's id comes from the file itself, so a repeated delivery never makes a second record.

Infrastructure

AWS Lambda
It is built on AWS storage, queues, functions and a database. It was deployed to a test account, checked, then torn down.
Observability
Alarms went quiet after a security setting silently removed their right to publish. The alarm topic now grants it in writing.

The demo, recorded

Docket demo: dragging the confidence threshold moves receipts between straight through and to a person
Open the demo
It replays recorded results: no login, no waiting, no model behind it.