Every calculation carries a record object describing what produced it. It is present
both on creation and on retrieval, so the two bodies are the same document.
Why a fingerprint and not a version label
A version label is written by one person and forgotten by the next.
Under the single label version: "2026.1", four different contents of
rules/MX/2026/ordinario.yml have shipped — and five for Colombia, seven for Chile, five
for Argentina. At least two of those changes moved amounts. A label that four different
rule sets have shared is not an identity.
The fingerprint is the SHA-256 of the rule file itself, so two calculations carrying the
same fingerprint ran against byte-identical rules. That is a claim you can check.
Verifying a calculation later
Keep the content_digest you received. Fetch the calculation any time afterwards and
compare: if the digests match, what you are being handed now is what you were handed then.
options.metadata accepts up to 20 keys, values up to 500 characters. Use it for a
payroll run id, a cost centre, a "test" marker — anything you will want to filter or
recognise later. It is echoed back in record.metadata.
Never put personal data in metadata. It is stored verbatim.
What provenance does not give you
Provenance lets you prove which rules ran. It does not let you re-run them.