Asset accounts represent what we have, liability accounts -- what we owe, and equity accounts -- what is ours. Which gives you "The Accounting Equation": sum(assets) = sum(liabilities) + sum(equity).
"Debit" and "credit" are specific columns in transfer entry (think "left" and "right"). This terms are NOT EQUAL to "deposit"/"withdraw" cause their meaning depends of the account type.
For asset accounts, debit increases the balance, while credit decreases.
For liability / equity accounts, credit increases the balance and debit decreases.
Imagine you have $100. Then, you borrow $50 from your friend Joe. Now you have $150 in total assets and owe $50 to Joe. Both your assets and liabilities have increased. In double-entry accounting terms, there was a transfer that generates two entries: debit your "total asset" accout by $50, credit "depts to Joe" account by $50.
As for the equity, there are regulations that make things a bit more complex. The process of earning money should be systematic and comply with the regulations, therefore it is indirect and happens as following:
- Throughout the fiscal period, you record incomes and expences
- At the end of the fiscal period, you calculate your net income/loss, issue a public income statement and then adjust the equity by the net income/loss.
In practice, this introduces three additional types of accounts:
- Incomes, that track incomes by category and have a "credit balance", meaning that credit increases it and debit decreases
- Expences, that track expences by category and have a "debit balance".
- Temporary accounts, like Incomes and Expenses, are closed at the end of the fiscal period to prepare for the next period, consolidating the results in the Net Income account before adjusting the equity.
Sometimes we may want to adjust the value of certain accounts for a more accurate representation of financial position. This is where contra accounts come into play.
Contra accounts are used to reduce the value of a related account while maintaining transparency and accuracy in financial reporting. They have a natural opposite balance compared to the accounts they are linked to.
Examples: accumulated depreciation reduces the value of a certain material asset, sales return reduces the revenue by the value of returned goods.
Closing happens at the end of each fiscal period. During the closing process, income accounts are debited to bring their balance to zero, with corresponding credits to the Net Income account. Expenses are credited to zero out their balances, with corresponding debits to the Net Income account. Finally, the Net Income account is either debited or credited to reflect the net result in the Capital account
Let's assume that we're developing an accounting model for a simple betting service. Clients of that service deposit money online from their bank cards, then bet on sport competitions, potentialy win more money and withdraw them back to their cards. Service takes 0.1% fee for each transaction. When client places the bid, the system reserves the corresponding amount for a duration of the competition to ensure that he won't spend them before the results are known. Marketing team sometimes gifts funds to particular clients as a promotion. Owner of the service can withdraw owned funds at any time.
In such a system, we want to track al least the following things:
- How much cash is there in the system?
- How much does the system owe to each particular client?
- How much client's funds are reserved?
- How much income did the company get from deposit fees?
- How much income did the company get from withdraw fees?
- How much income did the company get from betting fees?
- How much has the company spent on promotions?
- What is the net income/loss of the company in a fiscal period?
- How much funds are owned by the company owner?
- How much funds were withdrawn by the company owner?
Let's reflect that in an accounts model for that system
1000 Assets
└── 1100 Cash and Cash Equivalents
└── 1110 Cash on Hand Account
2000 Liabilities
└── 2100 Client Deposits
└── 2100xxxx Client #x Deposits Account
├── 2100xxxx01 Demand Deposit Sub-account
└── 2100xxxx02 Funds on Hold Sub-account
3000 Equity
├── 3010 Capital Account
└── 3020 Capital Draw Account (contra-equity)
4000 Income
├── 4010 Deposit Fees Income Account
├── 4020 Withdrawal Fees Income Account
└── 4030 Betting Fees Income Account
5000 Expenses
└── 5010 Promotions Expense Account
6000 Temporary
└── 6010 Net Income Account
- 1110 Cash on Hand Account includes all cash physically available within the system
- 2100xxxx Client #x Deposits Account tracks total amount of funds a particular client has in the system, split into:
- 2100xxxx01 Demand Deposit Sub-Account for available funds
- 2100xxxx02 Funds on Hold Sub-account for reserved funds
- 3010 Capital Account tracks equity that belongs to the owner, is credited at the end of the fiscal period or when owner deposits funds
- 3020 Capital Draw Account (contra-equity) is debited when owner withdraws funds
- 4010 Deposit Fees Income Account is credited when clients pay deposit fees
- 4020 Withdrawal Fees Income Account is credited when clients pay withdrawal fees
- 4030 Betting Fees Income Account is credited when server takes fees for reward distribution
- 5010 Promotions Expense Account is debited when managers gift funds to clients
- 6010 Net Income Account -- A temporary account used during closing to aggregate net income/loss
Our setup implies a set of possible operations:
- Client deposits funds
- Client withdraws funds
- Client makes a bid
- Service distributes rewards
- Owner contributes funds
- Owner withdraws funds
- Manager gifts funds
| Operation | Debit | Credit |
|---|---|---|
| Client deposits funds | Cash on Hand (assets ^ $+fee) | Client A DD (liab ^ $) |
| Deposit Fees (income ^ fee) | ||
| Client withdraws funds | Client A DD (liab ⌄ $+fee) | Cash on Hand (assets ⌄ $) |
| Withdraw Fees (income ^ fee) | ||
| Client makes a bid | Client A DD (liab ⌄) | Client A FH (liab ^) |
| Service distributes rewards | Client A FH (liab ⌄ bid) | Client B DD (liab ^ bid) |
| Client A FH (liab ⌄ fee) | Betting Fees (income ^ fee) | |
| Owner contributes funds | Cash on Hand (assets ^) | Capital (equity ^) |
| Owner withdraws funds | Capital Draw (c-equity ^) | Cash on Hand (assets ⌄) |
| Manager gifts funds | Promo Expense (equity ⌄) | Client A DD (liab ^) |
| Operation | Debit | Credit |
|---|---|---|
| Net income/loss | Deposit Fees (income ⌄) | Net Income |
| Withdraw Fees (income ⌄) | Net Income | |
| Betting Fees (income ⌄) | Net Income | |
| Net Income | Promo Expense (expenses ⌄) | |
| if income: | Net Income | Capital (equity +) |
| if loss: | Capital (equity ⌄) | Net Income |
("^" -- increases, "⌄" -- decreases, "c-equity" -- contra-equity, "liab" -- liabilities, "DD" -- Demand Deposit, "FH" -- Funds on Holds)
At the end of each fiscal period we may issue several statements showing how is the company doing. With a setup described above, we can simple take aggregated balances for each category of interest, with a granularity needed.
With our system, we can issue statements of at least two types: balance sheet ad income statement, but there are also a lot of others
Includes totals for each major category of accounts:
Assets
├── Cash and Cash Equivalents
│ └── Cash on Hand Total
└── Total
Liabilities
├── Client Deposits Total
└── Total
Equity
├── Capital Total
├── Capital Draw Total
└── Total
Totals for equity + liabilities should match total assets
Shows financial results throughout the fiscal period
Income
├── Deposit Fees
├── Withdraw Fees
├── Betting Fees
└── Total
Expences
├── Promotions Expense
└── Total
Net Income/Loss
└── Total