Bookkeeping tips for Software Developers using Beancount

Why I start bookkeeping

My money go out of my control.

Bookkeeping is not the task for the people who earn a lot, it is for everyone. Bookkeeping Why I start to do bookkeeping?

I started to record my expenditures three years ago, before that, I have no ideas what bookkeeping means, and I have no ideas how to save money. I am just a normal software developer and not an finiancial experts, how can I save more money.

After three years of bookkeeping experience, what I learn is that I really love recording my money, it becomes my habits, and my idea to money totally changed.

  1. Money is data, my daily expenditures are good source of data to be analysed. To understand myself more.

  2. I complely control my money, no panic. Panic is software is disaster, you know. I would not worry about if some case I need to pay a big bill, since it is under my control.

In order to analyse my data easily, I choose Plain Text Accounting, it is a lot of benefits than APP accounting well-known to others.

  1. Most apps don't use double-entry accounting.

  2. Most apps have privacy issue.

  3. Plain text can be easily analyse by Any Programming Languages and create unlimited possibilites, and a lot of advance usage. I like to use python to do indept analysis, the data plotting feature is really impressive.

  4. Your data is only text, will be saved forever. You can sync with any cloud services.

  5. Treat the record is programms.

  6. Would be great to integrate with org-mode.

Making a budget is the single most important thing you can do to take control of your spending.



There is no specify rules to tell you what should record, what should not. It really depends on your habit. For the people who is lazy like me, my banks already bookkeeping for me, that's enough, I do not need to open an app and record every single expense. But if you really need to, I would recommend to use Money Manager Ex or Money Wiz, which is great for Collecting and Exporting. But I highly recommend Fiva.

Rather than record the expenses after every expense, I will perioidally check my bank statment. Save them and analyze them each month. Around half to 1 hour Each month on my free time.

Think what you need to record

I will tell you how to record your daily life easily. Normally, you may want to know:

  1. What is my expenses?

  2. How many assest I own?

  3. The money you lend to others

  4. You spend your money in advance for your friends/company, they promise that they will give you back

  5. The debit.

  6. The mollage

  7. The income

  8. The side income

  9. How much income I made

  10. How many money I can save

  11. Daily Expenses

  12. Reimbursements

  13. Income

  14. Investments

    • Stocks

    • Bit Coins

  15. Liabilities

  16. Mortgage

  17. Special Account: Equity


Here are some basic knowledge

Intro to Plain text money management

Intro to Basic Finance Knowledge

Need to understand some basic concept, target for no finance knowledge guys.

  1. What is assets

  2. What is liability

  3. What is equity

  • In ledger manual

  • In Money Management's help manual

Introduce some finiance books I read

Make good use of Blink!!!老高也是这么做的,先阅读,然后收集,最后整理,并且呈现给人,如此反复。

Double-entry bookkeeping

Why we need double-entry bookkeeping?

The history of double-entry bookkeeping

What's the benefits of double-entry bookkeeping

What's the disadvantages of single-entry



  • Fava

  • Emacs

  • Fava

  • My

How to use Emacs to manage

How to use phone to manage

How to use Termux to setup


Open Accounts

option "operating_currency" "HKD" option "operating_currency" "CNY" option "operating_currency" "USD" 1970-01-01 commodity CNY 1970-01-01 commodity HKD 1970-01-01 commodity USD

Manage "Assets"


Type Category Content
Assets Checking Hang-Seng-HKD
Assets Checking Cash


Type Category Content
Assets Saving BEA-Saving


Type Category Content
Assets Investment Hang-Seng-CNY
Assets Investment Hang-Seng-Stocks
Assets Investment Hang-Seng-USD
Assets Investment Bitcoins


Type Category Content Person
Assets Reimbursements Company Alipay
Assets Reimbursements Friend Raine


Type Category Content
Assets Fixed 新会保利西海岸

Manage "Expenses"


Type Category Content
Expenses Bills Electricity
Expenses Bills Gas
Expenses Bills Water
Expenses Bills Internet-Broadband
Expenses Bills Mobile-Phone
Expenses Bills Stock
Expenses Bills Fine
Expenses Bills Other


Type Category Content
Expenses Clothing Clothes
Expenses Clothing Shoes


Type Category Content
Expenses Digital Apps
Expenses Digital Books
Expenses Digital Movies
Expenses Digital Other


Type Category Content
Expenses Education Books
Expenses Education Tuition


Type Category Content
Expenses Food Dining-Eating-Out
Expenses Food Groceries


Type Category Content
Expenses Health-Care Dental
Expenses Health-Care Facial
Expenses Health-Care Gym
Expenses Health-Care Sports
Expenses Health-Care Haircut
Expenses Health-Care Health-Insurance
Expenses Health-Care Medical
Expenses Health-Care Pharmacy
Expenses Health-Care Physician
Expenses Health-Care Other


Type Category Content
Expenses Housing Cooking
Expenses Housing Furniture-Accessories
Expenses Housing Home-Insurance
Expenses Housing Rent
Expenses Housing Other


Type Category Content
Expenses Online Shopping


Type Category Content
Expenses Stuff Electronics
Expenses Stuff Tools


Type Category Content
Expenses Taxes NA


Type Category Content
Expenses Transfer Credit-Card
Expenses Transfer Stock


Type Category Content
Expenses Vacation Accommodation
Expenses Vacation Souvenir
Expenses Vacation Transportation
Expenses Vacation Travel
Expenses Vacation Travel-Insurance


Type Category Content
Expenses Withdrawal Cash


Type Category Content
Expenses Other-Expenses NA

Manage "Income"

Type Category
Income Salary
Income Family-Support
Income Credit-Interest
Income Gift
Income Investments
Income Other-Income
Income Red-Packet
Income Refund
Income Bitcoin

Manage "Liabilities"


Type Category Content
Liabilities Credit-Card BEA-Visa
Liabilities Credit-Card Hang-Seng-Master


Type Category Content
Liabilities Mortgage 广发银行

Manage Equity

Type Category
Equity Opening-Balances


Programming Tips

Analysis your data