What a decision record contains
Records capture the full decision context without requiring you to expose PII or proprietary prompts. Theinputs and outputs fields are opaque JSON blobs — the SDK never interprets or mutates them, so the record is a byte-for-byte copy of whatever your code passed in.
prev_hash and hash fields are how each record links to its predecessor. See Hash Chain for the full integrity model.
Logging a decision
Design notes
No PII obligation
Precipiq never inspects your
inputs or outputs. If your domain requires PII, encrypt or tokenise before passing the dict to the SDK. The record stores exactly what you hand it — nothing more.Low latency by default
Decisions are batched and flushed every 5 seconds (configurable). A Precipiq outage routes unsaved records to a local rotating log — the SDK is safe to install on a hot request path.
Exact byte capture
Hashing runs on canonical JSON so clients on different languages and libraries produce the same hash for the same logical record. This is what makes the chain independently verifiable. See Hash Chain for the serialisation recipe.
Records are append-only
You cannot mutate a decision record after it is written. A soft-delete redacts the display layer but the record remains on the chain. Because every record carries the hash of its predecessor, tampering with a historical record would break the chain and be detected immediately by averify_chain call.
Once you have a decision record, you can attach financial outcomes to it via Consequence Links. That connection is what turns a raw audit log into a measurable AI P&L.