Check a cost record without trusting us
True COGS records what a merchant paid for each product, every time stock arrives, and never overwrites what it wrote before. This page lets you confirm that for yourself — that a record you have been given has not been altered since it was written. You do not need an account, and you do not need to take our word for anything.
Check a file now
Drop the .json proof file the merchant gave you. It is
read in your browser and never leaves your computer — nothing is
uploaded, to us or to anyone.
Paste the contents instead
The honest limit of this check
A passing result proves that nothing in the record has been changed since it was written — not one amount, not one date, and no entry removed from the middle. It does not prove that the amounts entered were correct in the first place. A ledger records faithfully; it cannot know whether the supplier's invoice was honest. Anyone claiming otherwise is overselling, including us.
For a check that does not involve us at all
The check above runs in your browser, but the page is served by us. If you want a verification with no connection to True COGS whatsoever, run our open script instead. It uses only what is built into Node.js, imports nothing from our application, and is short enough to read in full before you run it.
- Save verify-truecogs.mjs to the same folder as the proof file.
- Open a terminal in that folder.
- Run:
node verify-truecogs.mjs proof.json
What you will see when the record is intact:
True COGS ledger verification — format tcv1
Store example.myshopify.com
Entries 47 across 12 products
47 entries verified against their fingerprints.
No break found. Every fingerprinted entry hashes to exactly what it
claims, and each names the one before it.
And when something has been altered:
BROKEN gid://shopify/InventoryItem/48078100332578
at entry 5, written 2026-07-31T08:52:36.619Z
expected 9f2c… found 41ab…
This entry, or one before it, was altered after it was written.
The script exits with status 0 when every chain is intact
and 1 when a break is found, so it can be run
automatically as part of an audit process.
How it works
Each entry in the record carries a fingerprint: a SHA-256 hash computed over that entry's own figures and the fingerprint of the entry before it. Because each fingerprint depends on the one before, changing any single figure breaks that entry and every entry after it. There is no way to alter one number quietly.
The format, so you can write your own checker
We would rather you did not have to trust our script either. The rules are deliberately simple enough to re-implement in any language in about twenty lines:
| Rule | Definition |
|---|---|
| Field encoding | <byteLength>:<value> — length-prefixed, so no value can forge a field boundary |
| Null | The four bytes \u0000nil, never an empty string — a missing field and an empty one differ |
| Dates | ISO-8601 UTC with milliseconds |
| Money | Exact decimal string, in millionths of a currency unit — never a floating-point number |
| Hash | SHA-256, hex, over the UTF-8 string |
| Order | Format version, then the covered fields in the order listed in the proof file, then the previous entry's fingerprint |
| Start of a chain | sha256(len(version)+len("genesis")+len(shopId)+len(itemId)) — bound to the shop and product, so a valid run of entries cannot be moved between them |
Every proof file carries this specification inside itself, under
algorithm, along with the exact list of fields the
fingerprint covers and the fields it deliberately does not.
Questions an auditor usually asks
Could True COGS rewrite the whole chain to hide a change?
Recomputing every fingerprint after an alteration is possible for whoever holds the database — which is why the record is strongest when the merchant has kept a copy of an earlier fingerprint, or a dated export. Compare a fingerprint you were given previously against the same entry today: if it matches, that entry has not been touched in the interval, whoever held the database.
What about entries with no fingerprint?
Records created before tamper-evidence was added carry no fingerprint. The check reports them as unverifiable and never counts them as intact. Silence about them would be a lie of omission.
Does the file contain customer information?
No. A proof file contains product identifiers, quantities, costs and dates. It holds no shopper names, emails, phone numbers or addresses — True COGS never reads those fields at all.
Questions about a specific record? support@nexuslogicsystems.com