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
- Alarms went quiet after a security setting silently removed their right to publish. The fix grants that right in writing.
- Each record's id comes from the file itself, so a repeated delivery or replay never creates a second record.
- 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
