POS daily reconciliation proof.
A redacted or synthetic proof that turns Toast-style order-item rows into clean daily summary rows, blocked-row evidence, and a reconciliation report before anything lands in Google Sheets.
Review first, then write
Use redacted exports first. This proof does not request live Toast credentials, write to Google Sheets, touch payment or payroll data, or send customer-facing output.
What the first paid proof should show
The useful test is whether the automation can explain why the numbers match or do not match, not just move rows.
- Aggregate by business date, revenue center, time bucket, and category.
- Map Toast GUIDs to the reporting category before summary rows are created.
- Block duplicate replays and partial-run residue before totals inflate.
- Compare calculated totals to the Toast Daily Sales Summary.
Inputs needed
A first sprint starts from a narrow redacted sample and a clear destination shape.
- One redacted order/item export or API sample.
- Category map and revenue-center names.
- Business-date and timezone rules.
- One day where totals do not reconcile.
Input
Sample Toast order-item rows, category GUIDs, revenue centers, service windows, source run ids, and source files.
Accepted
Clean groups become reviewable summary rows keyed by date, revenue center, service window, and reporting category.
Blocked
Unknown category GUIDs, duplicate item ids, missing dates, and variance rows stay visible before a sheet update.
| Business Date | Bucket | Status | Evidence | Reviewer Action |
|---|---|---|---|---|
| 2026-05-08 | Cafe / Lunch / Food | ready for review | Calculated total matches the Toast Daily Sales Summary after duplicate guard. | Approve summary row or adjust destination columns. |
| 2026-05-08 | BYT / Dinner / unknown GUID | blocked row | Toast GUID is missing from the active category map. | Map the item or exclude it before updating Sheets. |
| 2026-05-08 | Cafe / replayed item | hard error | Duplicate order item id from a partial Make run was blocked. | Fix replay/idempotency before daily automation runs again. |