Every automated decision (e.g. a loan approval or content-moderation call) is written as a record and chained to the one before it, exactly like an append-only audit log:
hash(n) = H( hash(n-1) || data(n) )
record(n) stores: data(n), prevHash = hash(n-1)
Integrity check walks the chain and verifies, for every block n, that record(n).prevHash still equals the *currently recomputed* hash(n-1):
- Untampered chain — every stored prevHash matches, so the whole history is provably unaltered.
- Tamper a block — editing its data changes its live hash, but the next block's prevHash was fixed at creation time. The mismatch appears at that block and propagates forward — this is what "tamper-evident" means: you can't quietly rewrite a past automated decision without the break becoming visible.
- Explainability threshold — records below the required score are flagged (amber), modelling a review gate for decisions that can't be adequately justified.
- Data fields (minimization) — fewer stored fields shrinks each block's footprint, showing the transparency/accountability trade-off against collecting less personal data per decision.
Real systems use cryptographic hashes (SHA-256) instead of the demo hash here, but the tamper-evidence property — any retroactive edit is detectable — is exactly the same mechanism behind blockchains, Merkle trees, and append-only audit logs used for AI accountability.