Accounting periods
Accounting periods
Accounting periods are canonical records used for bookkeeping review, posting, and period-based reporting. The goal is that the register remains stable and audit-friendly while automation depends on deterministic identifiers and references.
Ownership
Owner: bus period. This module is responsible for implementing write operations for this object and is the only module that should directly change the canonical datasets for it. The canonical dataset is periods.csv (and periods.schema.json) at the workspace root; paths are root-level only, not under a subdirectory such as periods/.
Secondary read-only use cases are provided by these modules when they consume this object for validation, matching, posting, or reporting. Consuming modules obtain the path to the period control dataset (and effective state) via the bus period module’s API, not by hardcoding file names; see Data path contract for read-only cross-module access.
bus journal respects period close and lock boundaries for postings. bus validate checks period integrity as part of workspace validation, and bus filing consumes closed-period data for filing bundles.
Actions
Add an accounting period creates periods in future state so they exist before opening. You can add multiple future periods (for example all months in a year) and open them in sequence. Open an accounting period transitions future to open, Close an accounting period transitions open to closed and generates closing entries, and Lock an accounting period transitions closed to locked to prevent further period changes.
Relations
Accounting periods belong to the workspace’s accounting entity. Scope is derived from the workspace root directory rather than from a per-row key.
Period boundaries affect when postings can be finalized and locked, and they are referenced by workflows that are period-based by definition, such as budget variance and month-based payroll.
Budgets reference accounting periods via period and year. Payroll runs reference months and rely on period control to keep month-close workflows deterministic.