Bookkeeping

Posted on vr 29 augustus 2025 in tools

Knowing how to Keep the Books is a skill, I believe, everybody would benefit from.

Double-entry accounting

Double-entry accounting simply means that this method accounts for every transaction where the money came from and where it is going. It makes "two entries"!

I highly recommend reading Principles of Accounting with Ledger in the Ledger manual. It very clearly explains the principles of double-entry accounting.

I have used GnuCash, SQL-Ledger, Odoo and Ledger. All these programs support double-entry bookkeeping and make it relatively easy to start with double-entry accounting. Of the programs mentioned, GnuCash is definitely easiest for beginners to start with.

Chart of Accounts

Every set of books has a Chart of Accounts (CoA). This is a hierarchical classification system for your money. How you structure your books is (in principle) completely up to you. Unless you own a company and need to comply with the accounting rules of your country, then there can be a CoA you will need to use for your company.

Here are a few general guidelines.

At the top level of most CoAs you will typically find the following accounts (with the Dutch equivalent between parentheses).

  • Income (Inkomen)
  • Expenses (Uitgaven)
  • Assets (Activa)
  • Liabilities (Passiva)
  • Equity (Eigen Vermogen)

Depending on your taste Equity can also appear as a subcategory to Liabilities.

The goal of a CoA is to provide you with a way to quickly visualize the flow of money. It answers the following questions.

  • Where does it come from?
    • Income can come from an hourly wage, from a monthly job payment, from dividends or interests from investments. These all bring money into your system;
  • What brings it with?
    • Liabilities, be it a credit or a loan, produces a (one-time) income stream by financing an expense. It brings with it a legal obligation to repay at some later date and may include regular payments of interest;
    • It also brings with it a means to exchange tokens for the necessities and luxuries of life: food, shelter, energy, transportation, toys, etc;
  • What is the effect on my system?
    • Money flowing in and out changes your Equity. Over a period of time this change is called a Profit if more money is flowing in than leaving or a Loss if more money is flowing out than in;
    • Too much money going out relative to money coming in will present a problem at some later stage;
    • A large inflow of money (inheritance, lottery winnings, some other financial windfall) can destabilize your system substantially much like a tsunami can wreak havoc on a coastline;
  • Where does it leave?
    • Expenses are things or services you buy. It's your cost of living: expenses for food, shelter, clothing, transportation, entertainment, etc.;
    • Does it leave in a trickle or in a flood?
  • What takes it with?
    • When liabilities are obligations that a stream of money brings into your system, Assets are its opposite. They take obligations out of your system;
    • Having money to solve problems takes away the incentive and imagination on how to solve a problem without spending money; it lets you play life on easy mode.

Example Chart of Accounts

Here is, roughly translated and slightly expanded, the Chart of Accounts I currently use in my own bookkeeping in Ledger (ledger-cli). I will use the same notation as Ledger uses to indicate deeper parts of the hierarchy by separating the parent account and the child account with a colon (:).

Account marked with * have a note further down with some explanation.

On the balance side:

Assets
  Liquid
    Cash
    Bank Checking
    Bank Savings
  Real Estate
  Investments
    Bonds
    Exchange Traded Funds
    Exchange Traded Commodities
    Shares
  Prepaid Invoices
Liabilities
  Credit Card
  Mortgage
  Open Invoices*
Equity:Opening Balances

Notes:

  • Assets:Prepaid Invoices contain subdivisions, one for each supplier; I rarely use this category;
  • Liabilities:Open Invoices: these are either unpaid or on an ongoing payment schedule and thus partially paid. These also have subdivisions, one for each supplier.

On the profit and loss side:

Income*
  Wages
  Sales
  Rental Income
  Reimbursements
  Gifts
  Interests Received
  Dividends
Expenses
  Personal
    Groceries
    Clothes and Shoes
    Insurance:Health Insurance
    Physician
    Dentist
    Hairdresser
    Taxes*
      Dividend Tax
      Income Tax
    Services
      Accountant
      Notary
      Banking Services
  Shelter
    Interest on Mortgage*
    Insurance:Home Insurance
    Taxes:Municipal Tax
    Rent
    Energy
    Water
    Furnishings
    Maintenance
    Gardening Expenses
  Social
    Communications
      Phone Services
      Internet Access
      Devices
    Subscriptions
      Newspaper
      Streaming Services
    Eating Out
    Going Out
    Entrance Fees
    Pets
      Veterinarian
      Feed
      Stuff
    Gifts
    Tips
    Donations
  Transportation
    Public Transport
    Car
      Fuel
      Rental
      Taxes:Road Tax
      Insurance:Liability Insurance
      Maintenance
      Parking
      Purchase
      Fines
      Toll
    Bicycle
    Plane
    Insurance:Travel Insurance
    Travel Expenses
  Studies
    Lessons
    Media
    Subscriptions
  Other Expenses
    Cash Differences*
    Payment Differences

Notes:

  • Income: all categories within income can have subdivisions to clarify where exactly the money is exactly coming. For example, for Income:Wage I could make subdivisions for each employer. If I worked at First Company and later at Second Company, I would use Income:Wage:First Company, Income:Wage:Second Company.

  • Expenses:Cash Differences: This is for small cash expenses without proper categorization, probably because I lost a receipt. It's to correct the amount shown in Assets:Liquid:Cash.

  • Expenses:Personal:Taxes: This category only shows part of the taxes I pay.

    In other categories, there are also taxes paid. For example in Expenses:Transportation:Car:Taxes:Road Tax or Expenses:Shelter:Taxes:Municipal Tax. By coding the accounts this way I easily filter out how much taxes I pay in ledger-cli with ledger bal :Taxes:

    Note that I can do the same for insurance with ledger bal :Insurance:.

  • Expenses:Shelter:Interest on Mortgage: payments of your mortgage usually contain a part interest and a part repayment. The repayment part goes to decrease the absolute amount in Liabilities:Mortgage and is not an expense.

Personal Experiences

Over time I have changed how my Chart of Accounts looks. I have changed the amount of detail, the number of top-level accounts under Expenses, reordered accounts.