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.

advanced

Difficulty Level

5-8 hours

Estimated Time

Topics & Skills

retailbig-datajsonreconciliation

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


A million transactions is plenty to keep a spreadsheet busy. Build a dataset you can query in small batches, try extracting a few PDF receipts, and see whether the summary tells the whole story.


Start here


Open the SharePoint folder linked above. mydataset.csv is about 407 MB, mydataset.json about 1,004 MB, mydataset.pdf about 35 MB with 102,642 pages, and mydataset.stats.json is a small summary. Inspect a few CSV rows, the JSON root structure, and selected PDF pages instead of opening all data in a spreadsheet.


Try it


1. Produce normalized transactions and transaction_items tables using limited memory.

2. Explain how to extract the printed receipt fields and which reference fields are absent from the PDF.

3. Recompute count, revenue, customer count, loyalty rate, units sold, and the observed date range.

4. Investigate discrepancies between item subtotals and transaction totals, and between metadata dates and actual records.


What to build


Build a schema and transformation walkthrough, a small PDF extraction sample, full-data aggregate answers, and a discrepancy report. A database, partitioned CSV, or JSON Lines output is suitable; include how many PDF receipts you tried.


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

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

Transaction Network 2: Extract a PDF Ledger and Enrich Its Rows

Turn a long PDF ledger into clean rows, then add the details that only appear in the CSV and JSON.

transactionspdf-extractionreconciliation+1

Finished with this dataset?

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

Browse More Datasets