Last reviewed: 2026-07-30
Reporting
Purpose
Reporting explains company results from posted ledger truth and preserves the exact formal snapshots used for close, review, and later reference.
Canonical rules
- Formal reports derive only from same-company posted journal-entry lines.
- Drafts, workflow records, imports, checks, waivers, operational facts, and report-pack records may support review but are not formal report truth.
- The launch standard reports are trial balance, balance sheet, and income statement.
- A live report is a current calculation. A persisted ReportRun is an immutable captured result with its definition, parameters, attribution, input fingerprint, snapshot payload, and source-line references.
- Posted reversals and adjustments are separate ledger entries. Reports include them by their own posting dates and never rewrite their targets.
- Report classification uses durable account type. Account codes, names, number ranges, screen order, provider vocabulary, and workflow labels do not determine financial-statement meaning.
- Live reports use current account code and name. Persisted snapshots preserve the code, name, type, and normal balance reviewed at capture without changing the underlying account or journal history.
- Historical inactive and retired accounts remain reportable when posted lines reference their immutable account ids.
- Initial-release formal statements use only the company's base or reporting currency and retain accounting precision without hidden report-level rounding.
- Reporting does not post, correct, close, reopen, or store source evidence.
- Sales-tax control records and facilitator-remitted support may be shown only as separately labeled drilldown support. Formal amounts continue to come solely from posted seller-liability and remittance journal-entry lines.
Standard statement meaning
- The trial balance covers an inclusive start and end date. It shows posted debit and credit activity and the net debit or credit balance for each account in that range.
- The balance sheet is cumulative through an inclusive as-of date. Assets use debit less credit; liabilities and equity use credit less debit.
- Until explicit closing entries transfer temporary-account balances, the balance sheet shows one derived cumulative unclosed-earnings line equal to income credits less debits, minus expense debits less credits, through the as-of date. This line is a report subtotal, not an account or ledger entry.
- The income statement covers an inclusive start and end date. Income uses credits less debits, expenses use debits less credits, and net income is total income less total expenses.
- Negative balances remain visible. Normal balance helps explain an unusual balance but does not reverse the account-type formula.
- Account code may order accounts within a report section for recognition; it must not classify them.
The launch statements use the major sections supported by canonical account type. Detailed revenue, cost-of-sales, operating-expense, current/noncurrent, or other configurable presentation groups require later accepted truth.
Live and captured results
- A live result states its definition version, company, parameters, generated time, currency, availability, issues, and ledger-input fingerprint.
- Empty ledger activity may produce an available zero report.
- Missing accounts, wrong-company references, unsupported currencies, malformed parameters, incomplete source identity, or failed report equations produce visible unavailable results rather than partial formal statements.
- An unavailable result cannot be captured as a ReportRun.
- A captured run remains immutable and reviewable after ledger, account, or report-definition changes. Currentness is recomputed; it is never written back as if the historical snapshot changed.
Close and downstream use
- Reporting owns report definitions, execution, snapshots, currentness, and drilldown.
- Close stores only the exact ReportRun reference in its report pack and validates it through the Reporting-owned resolver.
- The launch Close trial-balance run must be persisted, current, same-company, and parameterized to the exact target financial-period boundaries.
- A later posting, correction, account classification change, or report definition change may make an earlier run noncurrent without deleting it.
- Formal report drilldown resolves captured report lines to captured journal-entry and journal-line references. Current workflow state may be shown separately as support but cannot redefine the snapshot.
Security, recovery, and customer control
- Viewing a formal live or persisted report requires company-scoped
report.viewauthorization. - Capturing a ReportRun requires company-scoped
report_run.captureauthorization. - Successful, denied, and failed protected Reporting attempts preserve the audit context required by the Reporting Contract.
- ReportRun identity, numbers, snapshots, audit links, and source references are company backup, restore, export, and recovery data.
- Rendering, printing, and file export are presentation or export behavior. Export remains subject to the separate protected company-data export boundary.
Explicitly deferred
- cash-flow statements;
- comparative columns, budgets, forecasts, eliminations, and consolidation;
- foreign-currency translation and exchange-rate presentation;
- prior-period-adjustment and retrospective-restatement presentation;
- configurable statement builders and customer-authored grouping formulas;
- detailed account subgroups beyond canonical launch account types;
- automated closing entries;
- tax-basis or regulatory-basis financial statements;
- rendering, printing, spreadsheet/PDF generation, and UI implementation; and
- provider-specific report definitions.
Related contracts
../contracts/reporting.contract.md../contracts/trial-balance.contract.md../contracts/account.contract.md../contracts/journal-entry.contract.md../contracts/accounting-correction.contract.md../contracts/close-run.contract.md../contracts/security/role-permission-contract.md../contracts/security/audit-event-contract.md../contracts/sales-tax-accounting-and-remittance.contract.md