Capture Coding Policy Approve Data model

Storage & export

Receipts that survive a refresh.

Every row and every receipt image lives in this browser's IndexedDB — real Blobs, checksummed at intake and re-verified on every read. One export produces the backup and the Finance handoff as the same file, and importing it anywhere reproduces the report exactly.

Store Rows Receipts Bytes held Durable

What is actually stored, and where

Figures come from navigator.storage.estimate(), not from adding up what we think we wrote. The indicator in the header reads the same source.

Used
0 warn 80% block 95% quota

Integrity

Every attachment row must have bytes behind it, and every original's bytes must still hash to the checksum recorded at upload. This re-reads and re-hashes what is on disk — it does not consult the row it is checking.