Inventory Movement Ledger
Register stable item SKUs, then append a receipt, issue or observed physical count. Each row stores the balance before, signed change and balance after it. A correction appends another linked row that revises the latest transaction for that item; the original count and its discrepancy remain visible. Duplicate transaction IDs, impossible negative stock and modified historical totals are rejected. This is a browser-local quantity ledger, not a barcode scanner, accounting system or multi-user warehouse service.
Key features
- Stable SKU, item name and unit with an on-hand quantity for each item
- Append-only receipt, issue and observed-count rows with before/change/after values
- Linked correction of the latest item transaction without erasing its original discrepancy
- Case-insensitive duplicate transaction-ID and SKU rejection, plus negative-stock prevention
- Strict versioned JSON round trip and formula-safe rectangular CSV report
How to use
- Load the office-supplies example or start with one blank item; save a project title.
- Register more SKUs with a name and unit. Item identities remain stable while the ledger is open.
- Append a receipt or issue with a unique transaction ID, date and quantity. Check the on-hand table.
- Append a physical count as the observed quantity; inspect the signed difference from the previous balance.
- If the most recent transaction for an item was entered incorrectly, append a linked correction with the revised quantity. Download JSON to resume work and CSV for review.
Use cases
- Track office supplies received and issued by SKU
- Keep the original book-versus-physical count difference after a recount
- Correct an accidental issue quantity while retaining an audit trail
- Review on-hand balances and movement rows in one CSV
Frequently asked questions
How does a physical count affect stock?
A count quantity is the observed on-hand quantity, not a quantity to add. Its signed difference is observed minus the previous book balance. The row stores both numbers and the difference. A later linked correction does not edit that historical row.
What can be corrected?
Only the most recent normal receipt, issue or count for the same item can be corrected. A correction appends a new row with the revised quantity and a link to its target. This prevents rewriting later item movements. To revise an older mistake, enter an appropriate new movement or use a more capable audited system.
How are duplicate transactions prevented?
Transaction IDs are unique across the project, ignoring letter case. SKUs are also unique ignoring case. Source references such as an invoice number are descriptive and may repeat across line items; they are not the transaction identity.
Can an issue or correction create negative stock?
No. Every appended row is replayed against the preceding item balance. An issue or revised issue exceeding available stock is rejected, as is a correction that would bring the balance below zero. The accepted project remains unchanged.
Does a date reorder the ledger?
No. Balances follow append order, displayed by row number. The date is a user-provided label and can differ from the order rows were recorded. This tool does not recalculate a historical as-of-date balance or reconcile concurrent warehouse users.
What is saved and where?
The project stays in this browser tab with no automatic save or server upload. Version 1 JSON is the editable format; invalid imports leave the current project unchanged. CSV is a report with item snapshot and movement rows, not an import format. Download JSON before leaving.
Privacy
Item names, quantities, references and notes stay in this browser tab and are not submitted to a server API. There is no automatic save or shared account. Downloaded JSON and CSV can contain sensitive operational details.
Comments & questions