abacus
abacus copied to clipboard
Simplified set of types and rules for core
Work flow:
- A chart of accounts defines a ledger:
Chart -> Ledger
- One can post entries to ledger, invalid entries are not posted
Ledger -> List[Entry] -> (Ledger, List[Entry])
- On ledger closing we close income and expense accounts, create income statement, and transfer current profit to retained earnings:
Ledger -> (ClosedLedger, IncomeStatement)
- Postclose entries may distribute dividend:
ClosedLedger -> List[Entry] -> ClosedLedger
- End of period account balances are saved for next period:
ClosedLedger -> Balances
- End of period balances create an opening entry for start of next period
Balances -> Entry
- We condense contra accounts and show balance sheet report
ClosedLedger -> BalanceSheet
Obtain information about ledger:
- Trial balance reflects state of ledger
Ledger -> TrialBalance
- We can calculate current profit based on state of income and expense accounts
Other:
-
Chart
,[Entry]
,IncomeStatement
,BalanceSheet
andBalances
are serialisable
Assumptions:
- No contra accounts
- Simplistic or no cash flow statement
- One level of accounts
- One currency
- No negativity or overspending checks
- Entry can touch any accounts
- Must supply entries, not transactions
Chart:
- required accounts are retained earnings account and income summary account
- Asset, Expense, Capital, Liability, Income, IncomeSummaryAccount, RetainedEarnings