Skip to content
Documentation sections

Provenance

Every result says how it was computed: each calculator result, each batch item and each job result carries one provenance object with the same nine members. The values beside it are unchanged by it.

The nine members

Provenance members
MemberTypeDescription
methodstringWhat computed the values: calculator:<slug>, or a job handler's method.
versionstringThe engine that computed them, <component>@<revision>: api@…, worker@…, mcp@…, web@…. A build that cannot tell its revision says so (api@dev).
formulaRefstring | nullThe published source of the formula, or null where none is named.
assumptions{code, text}[]What the method assumes. Empty means none is stated, not that there are none.
validRangeobjectstatus (inside, outside or unknown), the bounds of every input with its unit, the inputs outside them, and a fitted model's validated range and worst-case error where there is one.
computedAtstringWhen, ISO-8601 in UTC with milliseconds.
inputsobjectThe inputs the values were computed from, after defaults were applied.
seedinteger | nullThe seed of a randomised computation; null for every calculator.
elapsedSecondsnumberHow long the computation took.

Inputs outside the stated range

An input outside the range a calculator is stated for is still computed. validRange.status reads outside, validRange.outside names the input, and a warning naming the input and the bound is added to warnings. Where a calculator uses a fitted model, validRange.model gives the model's validated range and its worst-case error, and whether the inputs were inside it.

Older results

A result stored before September 2026 carries only method, version, seed, inputs and elapsedSeconds: read an absent member as unknown, not as empty. New members may be added; none is renamed or removed.