Accounting Core

Chart of Accounts

The chart of accounts is the basis for creating balance sheets, P&L reports, and for understanding the balances for the customer and business entities your business services.

Accounts Overview

Accounts are a named store of value in that every account has a Balance, as well as a record of activity in the form of ledger entries posted to them.

In Twisp, accounts record activity and materialize balances across multiple layers (see Layered Accounting) and have full support for multiple Journals Like every other record in the system, accounts are stored as immutable documents with all changes to them stored in a versioned history.

Say we had a wallet product. We can model each customer's wallet as an account, and the full collection of those accounts plus any other accounts we need to track money makes up our chart of accounts.

Account
DR Balance
CR Balance
Normal Balance
Ali
$2.30
$9.20
$6.90
Bea
$5.00
$6.00
$1.00
Cal
$1.80
$8.50
$6.70
...
...
...
...

Organizing Accounts with Sets

Many accounting systems model the chart of accounts as a single hierarchical tree, with "parent" accounts and "child" or sub-accounts. This is especially useful to do things like roll up balances across multiple accounts. However, a single structure for every account can be limiting, as some use cases call for multiple independent ways of organizing accounts.

In Twisp, we use a more flexible concept of AccountSets, which are custom groups of accounts that aggregate balances and provide a unified interface into the entries for all accounts.

Account SetAccountsDebit BalanceCredit BalanceNormal Balance
AAli, Cal$4.10$17.70$13.60
BBea$5.00$6.00$1.00
...............

One important feature of sets is that they can contain other sets. By nesting sets in this way, can model more complex structures for a chart of accounts.

Let's take the above accounts and imagine that they represent FBO accounts that we manage on behalf of our customers. With account sets, we could create a chart of accounts with these relationships:

In this chart, there are only four accounts: "ACH Receivable", "Investments", and the FBO accounts for Ali, Bea, and Cal. Organizing these accounts into various sets lets us materialize balances for different combinations of accounts.

Entries can only be posted to accounts, not to account sets.

Balances Roll Up Entries

All accounts have corresponding Balances to summarize the amounts of entries posted to the account. For example, Bea's account could have the following entries:

AmountDirectionPosted On
$4.00CREDIT2022-09-15
$2.00CREDIT2022-09-19
$5.00DEBIT2022-09-20

Adding these up, we can see how her account reflects a debit balance of $5.00 and a credit balance of $6.00, resulting in a normal balance of $1.00.

We can use account sets to roll up balances for different groupings of accounts. For example, if the "FBO Accounts" set corresponds the balance of a single account at a banking partner, it can be used to do reconciliation confirming that the balances of your FBO accounts match up to the balance shown by the bank.

The balance of account set X is alway equal to the sum of all entries posted to accounts in X plus the balances of all account sets in X.

To illustrate this concept, let's see how each of the account sets in the chart above would calculate their balances. To begin, we need to know the balances for all accounts. We'll focus here on just normal balances to keep things simple.

AccountNormal Balance
ACH Receivable$14.60
Investments$72.67
Ali$6.90
Bea$1.00
Cal$6.70

Next, we can calculate each account set's balance by adding up the balances of its member accounts and account sets.

Account SetMembersMember BalancesAccount Set Balance
CashACH Receivable$14.60$14.60
FBO AccountsAli, Bea, Cal$6.90, $1.00, $6.70$14.60
AssetsCash, Investments$14.60, $72.67$82.27
LiabilitiesFBO Accounts$14.60$14.60

Credit Normal and Debit Normal

In double-entry accounting, accounts are often differentiated between "credit normal" and "debit normal". This means is that the balance for an account is either computed as credits - debits for credit normal accounts, and as debits - credits for debit normal accounts.

Debit normal accounts are often used for asset and expense account types where debits indicate money flowing in to the account and thus increasing its balance, and credits represent money flowing out and decreasing the balance. Credit normal accounts are often used for accounts which track things like revenue, liability, and equity where credits increase the balance and debits decrease the balance.

Read more about how account balances are calculated on the Balances page.

Twisp imposes no strict rules about which accounts can or should be credit or debit normal, as the design for a product ledger's chart of accounts will vary depending on the specifics needs of the product. Some users may decide to impose the standard 5 account types: assets, liabilities, expenses, revenue, and equity. Others may need a modified structure, or may only need credit normal accounts. The accounting core can structured to accommodate any variety.

Creating Accounts

You can provision Twisp with a chart of accounts for a number of business use cases. Twisp can generate a chart of accounts suitable for representing economic activities for use cases such as:

  • Digital Banking and Card Issuing
  • Acquiring, Marketplace, Vertical SaaS
  • Lending
  • Currency Exchange

You have full control over the chart of accounts and can create new settlement and other accounts to represent your own funds flows.

An example of commonly-used accounts include a number of settlement accounts:

AccountPurpose
Suspense AccountThe suspense account is posted to when transactions cannot be booked against a valid open account.
ACH SettlementThe ACH settlement account for settling ACH transactions.
Bill Pay SettlementAn account for settling bill payments.
ChecksSettlement account for checks that are posted to the system.
ACH ReconciliationAn account for ACH reconciliations losses
Charge offAccounts for charging off accounts that we’re closing due to losses.
Fraud LossFraud losses are booked here.
Courtesy CreditAccount used by customer service/experience for courtesy funds.
Levies, garnishmentsAccount used for dealing with account levies and wage garnishments.
Card DisputesAccount for issuing funds for card disputes.
ACH DisputesAccount for ACH disputes.
Previous
Encoded Transactions