Answered from these docs only, by a model that cannot see your account. Check the pages it cites.

What makes a figure auditable

Why a value figure still reproduces after the formula changes: versioned arithmetic, frozen inputs, declared units, and approval before anything counts.

View as Markdown

Answered from these docs only, by a model that cannot see your account. Check the pages it cites.

Checked against the product on September 28, 2026

A reported ROI number is only worth as much as the answer to "where did that come from?" — asked months later, by somebody who wasn't in the room, about a figure whose formula has since been improved twice.

Four things make that answerable. None of them is a report; they are all properties of how a figure is recorded in the first place.

The arithmetic is versioned, and old versions are kept

A value formula is a named expression with a version. Revising one does not edit it in place: the earlier version is archived rather than deleted, so an entry calculated against it still resolves to the arithmetic that actually produced it.

This is why "we changed the formula" does not invalidate last quarter's board pack. Last quarter's figures were produced by last quarter's formula, and that formula is still there to be read.

A formula in your account that came from a Roiva template and has never been edited follows the library when the library improves. One you have changed is yours, and is left alone — an improvement upstream will not quietly rewrite arithmetic somebody signed off.

The inputs are frozen with the figure

Every calculated entry stores the inputs it was evaluated with: each one's name, the value used, and where that value came from — a reading of a metric key, a baseline, or an assumption.

The snapshot is what the entry's Formula Inputs section shows, and it is the difference between a figure you can check and a figure you have to trust.

An input read from your own data warehouse keeps more than its value. It names the version of the query that produced it and the rows that version returned. A query's text is versioned the way a formula is, and what each version returned is kept, so the entry still points at the rows it was computed from after the query is rewritten. See Metrics from your own data warehouse. The metric may have been re-measured since. The labor rate may have been revised. The snapshot says what the number was when the figure was made, so the arithmetic can be re-run on paper and come out the same.

Not every entry is calculated, and one that isn't says so rather than borrowing a formula's standing. A synced entry keeps the connection it came from and the source records behind it: a deal or a charge, or for a month of deflected tickets, the count, the price per ticket and a sample of the ticket IDs. An entry a person typed or imported names who recorded it, their notes, and its Supporting documents, the initiative's files and links it cites, or None cited. Its Source line says which of the three kinds of figure an approver is signing off.

The unit is declared, not inferred

A formula states whether its result is in whole units of the entry's currency or in its minor unit — dollars or cents. It is named on the formula rather than guessed from the shape of what it produces, because a guess about scale is a hundredfold error waiting to happen, and a hundredfold error in a value figure is not one somebody catches by looking.

The same discipline runs through the metrics: a percentage that runs 0 to 100 says so, and one that runs 0 to 1 says so. See Metric keys, and where a value comes from.

Nothing counts until somebody approves it

A calculated figure is not value. It is a proposal, and it sits at calculated until a person approves it. Only approved entries reach an initiative's ROI, the dashboard, or any report.

An account can turn on auto-approval, and where it is on the gate is still narrow. An entry has to clear every one of these before it flips to approved on its own:

  • the formula came from Roiva's library or Roiva built it, not from somebody hand-writing an expression;
  • no input resolved to zero;
  • no input fell back on a Roiva default assumption rather than a figure your account set;
  • no volume input came from a hand-entered measurement for an earlier period than the one being calculated;
  • every warehouse query an input came from is at a version the formula's last approved entry also read, since a changed query is a changed definition;
  • the amount is below your account's approval threshold, above which it is the owner's decision;
  • a person has approved one of this formula's entries before;
  • the amount is in line with that formula's last approved entry;
  • the amount is in line with what the initiative said it expected, where an expectation was set.

An entry that fails any of them is held for review: it stays at calculated, waiting on an approver like any other, and the initiative's activity records that it was held and which condition it failed. That is the design — the figure is still produced and still visible, it simply does not count yet.

The third condition is the one worth dwelling on. Roiva ships a default for most assumptions so a number appears on day one — a blended labor rate, a price per million tokens. A default is a reasonable basis for showing a figure and not a basis for posting one into reported ROI unattended, so an entry computed against one waits for somebody to confirm the rate once. After that the account's own assumption resolves, and it stops firing. Every shipped default is published with the source it was taken from: see Assumption defaults.

What this does not prove

That the initiative caused the change. Roiva records what was measured before, what was measured after, the arithmetic between them and who signed it off. Whether the improvement would have happened anyway is a judgment, and it stays one — no amount of record-keeping turns a before-and-after comparison into a controlled trial.

What the record does is make the judgment arguable on the numbers instead of on memory.