Subledger Entry
What It Models
A subledger entry is the journal result of document or fiscal accounting. A header identifies its generation and financial placement; ordered lines describe balanced movements between accounts. It has no editable lifecycle.
Identity and Attributes
The attribute rows separate original business context from the account and amount snapshots required to explain the result. Not every stored header must identify a document, and the duplicate constraint is scoped to a posting generation.
Relationships
Generation ownership belongs to the posting. The batch provides placement, while recognition connects a ledger result to a revenue-plan entry. Account and dimension definitions come from their owning Accounting modules.
Invariants
Commit-time checks and immutable-row triggers make the ledger safeguards independent of ordinary callers. Guarded functions provide the permitted removal paths. The invariant rows state the scope of each safeguard rather than extending fixture evidence to every document kind.
How It Is Stored and Shared
Batch Management writes the ledger and exposes entry reads. Platform serves the subledger-line reporting projection. Workspace export selects surviving rows by creation cut-off; it cannot reconstruct rows later removed through unposting. External-ledger delivery remains unbuilt.
Open Design Questions
The console can build an account summary from a capped entry read without identifying it as partial. Historical export semantics need reconciliation with ordinary deletion, and the retained service bypass switch must not be mistaken for removal of the database account guard.