Skip to content

ADR 0009: Persisted Report Runs

Context

BooksPlus reports must be traceable when they support review, close, audit, or management decisions.

A live report view answers a current question, but it does not by itself preserve who ran the report, when it was run, which period or as-of date it covered, or what values were reviewed at that time.

Decision

BooksPlus will support persisted report runs for standard accounting reports.

A report run records an execution of a report definition with its parameters, actor, capture time, summary, and durable snapshot payload.

Initial report definitions are:

  • trial balance;
  • balance sheet;
  • income statement.

Rules

  • Formal accounting reports derive from canonical ledger truth.
  • Draft or unposted workflow records must not become report truth.
  • A report run must preserve the report definition, as-of date or covered period, actor, generated-at timestamp, and snapshot payload.
  • Report snapshots used for close review must be stored or referenced durably.
  • Report rendering is presentation behavior; report run identity and snapshot meaning belong to Reporting.
  • Close may consume report runs or report snapshots, but Reporting owns report definition and report execution meaning.

The launch definitions use the stable codes trial_balance, balance_sheet, and income_statement. Detailed statement calculations, immutable RR- identity, fingerprints, replay, currentness, security, audit, Close resolver, and recovery behavior are binding through the Reporting Contract.

Consequences

  • Close packs and audit review can refer to stable report artifacts.
  • Users can distinguish a live report from a report that was captured for review.
  • Report execution can become attributable without overbuilding a full report catalog immediately.

Binding implementation contract

The Reporting Contract fixes the launch definition, calculation, result, persisted-run, snapshot, drilldown, authorization, audit, replay, currentness, backup, and Close-consumption boundary governed by this decision.