Skip to content

Periods and approval

Accounting periods divide a profile’s journal activity into date ranges. Closing a period freezes a reproducible balance snapshot and prevents later mutations through that boundary.

Supported period types are:

Type Date behavior
Month Starts on the first day of a month and ends at that month’s end
Year Starts on the first day of a month and spans twelve whole months
Partial Starts on the first day of a month but has an explicit end for formation or termination cases

Periods in one profile cannot overlap. A period may identify a predecessor; chained periods must be contiguous, and one predecessor can have only one successor.

A predecessor may belong to another profile. That supports moving from one accounting entity/profile period to its successor while explicitly mapping account carry-forward.

Journal activity belongs to a period by the journal’s accounting_date, not by row creation time.

For an automatic source row, the accounting date is its tax_point_date. All rows grouped under the same journal name must therefore use the same date.

Once a period is closed, journal creation, line changes, source-row reposting, and other accounting mutations at or before that period’s end are rejected.

Before close:

  1. every earlier predecessor must already be closed;
  2. no journal dated through the period end may remain open;
  3. carry-forward mappings must not leave balances that would be dropped;
  4. the profile must still be unapproved.

Closing calculates and stores a frozen row for every relevant account and currency:

opening balance
+ period debit
- period credit
= closing balance

Book balances use the profile accounting currency and roll activity up through account ancestors. Denomination balances preserve the exact foreign-currency quantity for the denominated account rather than converting or rolling it into ancestors with another denomination.

The live accounts table remains a current projection. Period reports use the frozen snapshot so later activity outside the closed range cannot rewrite history.

A closed period may be reopened while the profile remains unapproved. Reopening deletes its frozen snapshots because they are no longer final.

If later periods are closed, they must be reopened first. This prevents changing an earlier opening or closing balance while a successor still depends on it.

After correcting activity, close the period again to rebuild its snapshots from the current journal data.

Approval is a final decision about the entire profile’s financial statement, not another status on an individual period.

Approval requires:

  • at least one configured accounting period;
  • every period in the profile to be closed.

Approval records who approved the profile and when. After approval, periods cannot be reopened and the books behind the approved statement cannot be extended or altered through period lifecycle operations. An error found afterward belongs to a later corrective period rather than rewriting the approved profile.

open periods
│ close journals and resolve carry-forward
closed periods with frozen balances
│ approve profile
final financial statement

Each frozen book-balance row includes the account path, accounting currency, opening balance, period debit, period credit, and closing balance.

Foreign-denominated accounts can also have denomination rows containing opening quantity, debit quantity, credit quantity, and closing quantity in the original denomination currency.

These two views answer different questions: book balances report accounting value in EUR, while denomination balances preserve the number of units held in the foreign currency.

Periods and their snapshots are accounting control state, not ordinary tables inside the profile schema. The server maintains separate metadata for:

State Purpose
Periods Date range, type, predecessor, open/closed state, and close audit
Book-balance snapshots Frozen opening, debit, credit, and closing values in accounting currency
Denomination snapshots Frozen quantities in each account’s denomination currency
Profile approval Final approval identity and timestamp
Account mappings Explicit predecessor-to-successor account translations

This separation keeps live account projections useful for current work while preserving immutable reporting snapshots for closed periods.