ACME Scanned Receipts: OCR to Transactions and Item Rows

Use OCR to turn receipt sheets into clean sales and item tables, with 1,522 JSON records to check against.

intermediate

Difficulty Level

4-6 hours

Estimated Time

Topics & Skills

retailocrjsonreconciliation

Getting Started

Open the dataset folder below, grab the files, and read through the challenge. Try to solve the problem yourself before looking at the solution!

Dataset Files

Open Dataset Folder on SharePoint

Browse the folder and download the files listed in the challenge.

Scenario & Problem Statement

The challenge


Turn these receipt sheets into a sales ledger. Each page can hold several receipts, so keep each purchase together with its own items and check the result against the JSON answers.


Start here


Open the SharePoint folder linked above. ScannedOCRSheet.pdf has 480 pages. transactions_2025-09-06.json contains storeConfig, generatedAt, transactionCount, and a transactions array with 1,522 records.


Render the first, a middle, and the last PDF page. The first page shows receipts but has no extractable text layer. This can happen even when a PDF library reports no ordinary embedded images, so decide from the render and text extraction together. The first page contains three receipts.


Try it


1. OCR the sheets, segment receipts, and produce transaction and item records.

2. Match extracted receipts to the JSON without pretending its numeric IDs are printed.

3. Validate item arithmetic and reproduce total revenue, units sold, and leading products.

4. Report extraction coverage and error types separately from reference-derived aggregate answers.


What to build


Build nested transactions or two linked CSV tables, a source-page matching table, and an accuracy/reconciliation report. Start with a reviewed pilot batch before running all 480 pages.


Related Datasets

ACME 1,000 Receipts: Extract Transactions and Explain Adjustments

Turn 1,000 PDF receipts into clean tables and figure out why some totals differ from the item prices.

retailpdf-extractioncsv+1

ACME Million: Stream Nested Sales Data and Audit Its Metadata

Work through a million sales records in small batches, check loyalty discounts, and spot mistakes in the summary.

retailbig-datajson+1

Cat Gacha: Clean Contaminated Logs and Estimate Pull Probabilities

Clean up game pull logs, remove repeated snapshots, and estimate how often each cat appears.

jsondata-cleaningprobability+1

Finished with this dataset?

Explore more datasets to continue building your data analysis and problem-solving skills.

Browse More Datasets