2026-01-04 - Accounting Accounts, Entries, and Ledgers

From Izara Wiki
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