2026-01-04 - Accounting Accounts, Entries, and Ledgers
Jump to navigation
Jump to search
Development - Izara Accounting
Overview
Create an abstract data structure and service schema for standard accounting requirements.
General Ledger account structure
- The General Ledger is a list of Control Accounts and Sub-Accounts, Control Accounts move it's transactions and account heirachy to a Subsidiary Ledger, so they do not clutter the General Ledger.
- Control Accounts only exist as a child of the General Ledger, and only exist as a bridge to Subsidiary Ledgers
- other Accounts can be called different things, when they form the heirachy shown in the General Ledger they are normally called Sub-Accounts, when in a Subsidiary Ledger they have many names, often Subsidiary Accounts
- Transactions occur in Accounts
- Transactions by accounting norms can only be added to Accounts that have no child Accounts (leaf Accounts)
Observations
- Subsidiary Ledgers in normal General Ledgers only exist at the top level
- Subsidiary Ledger is simply a method of hiding detail from the General Ledger, but ultimately continues an account heirachy
- The entire structure is a heirachy of accounts
- Transactions roll up the heirachy tree combining until their total is added to the General Ledger in a top level Control/Sub-Account
Idea for handling tree
- create a tree of accounts only
- create a ledger config/report system that specifies which accounts in the heirachy are hidden, only their total will be shown
- by setting a range of top level accounts to be hidden you effectively create Subsidiary Ledgers and can mimic a General Ledger report
- this would allow a more powerful method of created General Ledeger-like reports that can collapse accounts at any level to only show their totals
- within that config is a method of automatically creating the Control Accounts, which is simply a final total of a collapsed account
Idea for handling transactions
- do not allow Transactions to be added to non-leaf Accounts, do not allow Accounts to be added to Accounts that have existing Transactions
- or if it does not increase complexity have a setting (default false) whether to allow shared Transactions and Accounts under a single Account