Budgets

Budgets

Budgets 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 budget. 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.

Secondary read-only use cases are provided by these modules when they consume this object for validation, matching, posting, or reporting:

bus reports compares actuals to budgets in reporting outputs, and bus journal provides actuals used for variance calculations.

Actions

Set a budget line records budget amounts per account and period so variance output is deterministic. Report budget vs actual emits period or yearly variance results based on budget lines and journal actuals.

Properties

Core budget fields are ledger_account_id, year, period, and amount.

Relations

A budget line belongs to the workspace’s accounting entity. Scope is derived from the workspace root directory rather than from a per-row key.

A budget line references one ledger account via ledger_account_id and one accounting period via year and period, so reporting can compare actuals to budget in the same scope and structure.