I am trying to properly set up some internal funds in a double-entry context for personal finances.

For example, I have a Home Improvement fund to which some variable amount of money may be added every month. That money typically sits in a savings account with a particular bank, and when I receive a paycheck I designate part of it for the Home Improvement fund and transfer it from my checking account to a savings account subaccount. (There are similar funds for other purposes, so my transfer is generally a split to multiple subaccounts.)

When I spend money for home improvement, it generally comes from a credit card, and that credit card will eventually get paid from my checking account.

I currently have the following setup in GnuCash:

Asset: Checking account
Asset: Savings account
    Asset: Home Improvement fund subaccount
Credit: Credit Card account
Expense: Home Improvement expense

When I add paycheck money to my Home Improvement fund, I debit my checking account, and credit my Home Improvement fund subaccount. This corresponds to a bank transfer from checking to savings.

When I spend Home Improvement money, I debit my Credit Card account and credit my Home Improvement expense. I will eventually pay the Credit Card account from my checking account, and for the portion pertaining to home improvement, I'll have to transfer money back from my Home Improvement fund subaccount to my checking account.

My numbers will be correct with this system, but it gives me no automatic way to track how much I have spent from my Home Improvement fund. It will be the sum of the Home Improvement expenses since my last debit from the Home Improvement fund, but I will be manually adding those expenses, which is error prone if there are a large number of them. I can't create a split transaction that simultaneously debits the Home Improvement fund subaccount, credits the checking account, debits the Credit Card account, and credits the Home Improvement expense, because the two parts of that transaction are not directly related and happen at different times.

How can I set up and use my accounts to properly track my Home Improvement fund money?

  • Does running a report on your subaccount help?
    – Lawrence
    Commented Jul 5, 2021 at 17:29
  • @Lawrence I think I would probably have to find the date of the last transfer from Home Improvement fund to checking account, run a report on the Home Improvement expenses since that date, and use that total to make the next transfer from Home Improvement fund to the checking account. Not the most foolproof approach. Commented Jul 5, 2021 at 18:19

4 Answers 4


To be honest, I think that you're over-complicating things. You're not really using the Home Improvement Fund as a Savings Goal, because you're spending money progressively on Home Improvement, not waiting until the Home Improvement Fund reaches a certain size.

If your need is to simply keep track of how much you're spending on Home Improvements, that's dead easy. When you spend money on HI, you should credit your Credit Card account with the relevant amount, and debit your Expense:Home Improvement expense account with the same amount. In this scenario, you don't need your Asset: Home Improvement fund subaccount at all. GnuCash reporting will allow you to easily report on expenditure against any expense account for any desired time period.

On a separate but equally important note, I think that you have debit and credit reversed in your question. When you (for example) receive a salary payment from your employer, you should debit the Asset:Checking account and credit your Income:salary account. This is different to the way that your bank will report this transaction because the bank's books are not your books. If you later transfer some money from your Checking Account to your Savings Account, you should credit your 'Checking Account' in GnuCash.


One possibility would be to make a sub-subaccount of your Home Improvement subaccount ("HI") called something like "Spent". When you charge home improvement expenses to the credit card, add to the transaction a corresponding move of money from HI to Spent.

Since Spent is a subaccount of HI, HI will still show the full amount you have allocated to it in the account tree. When it comes time to move money to the checking account, just move the full amount from Spent.

  • An interesting suggestion. But is what I'm asking about not a known and solved problem? Doesn't everybody run into this situation? Commented Jul 9, 2021 at 2:21

The subaccount method is simple and matches the mental picture of having an "envelope" within your savings account. The drawback is that the fund is tied to the actual cash stored in your savings account. As you have experienced, this creates complications when this cash has an interesting trajectory between your savings account to your expense account, or if you want to keep half of that money in your account and the other half in your freezer.

If you'd like to keep track of your home improvement fund in a way that is less tied to the physical location of the cash, you could represent the fund as a liability account instead. This is counter-intuitive at first but bear with me.

Account setup

Your chart of accounts would look something like:

  • Assets
    • Checking Account
    • Savings Account
  • Expenses
    • Home Improvement
  • Liabilities
    • Credit Card
    • Home Improvement Fund

Intuitively, you can think of the fund as an external entity whose money you are keeping in your bank accounts. This creates a liability for you, which you will have to settle whenever Home Improvement Fund LLC wants its money back (to spend it on improving your home).

Setting money aside

When you decide to allocate some of your money towards home improvement, record a transaction:

Set money aside Dr Cr
Expenses:Home Improvement $100
Liabilities:Home Improvement Fund $100

Note that there is no actual cash involved here. In effect, you are recording a home improvement expense ahead of time, "funded" by a promise to yourself to spend on home improvement at a later date. This will increase the balance of both the expense and liability accounts, and reduce the net worth reported by Gnucash by $100.

In other words, you just made a donation to Home Improvement Fund LLC. But since you're holding its money anyway, no cash moved around; you simply increased the liability account associated with it.

Spending money from the fund

When you spend the actual money, the only thing you have to do differently from a regular purchase is that instead of recording it directly as a home improvement expense, you will repay this "debt to yourself", decreasing the balance of the liability account.

For example, if you buy a caulk cartridge with a $5 bill, you would record the following transaction:

Hardware store Dr Cr
Liabilities:Home Improvement Fund $5
Assets:Cash in Wallet $5

This will reduce the balance of both accounts by $5 and leave your net worth unchanged (you are repaying a debt) and it will not show up on that month's expense report. That is, you didn't really spend your money but rather spent money on behalf of Home Improvement Fund LLC.

As another example, if you bought the caulk cartidge with your credit card, while doing groceries at the supermarket, you would record the transaction as:

Shop & Drop Dr Cr
Expenses:Groceries $25
Liabilities:Home Improvement Fund $5
Liabilities:Credit Card $30

You would then proceed to pay off your credit card in the standard way, with no need to take your home improvement fund into account.


There are a few things to note about this method, compared with the subaccount approach:

  • The reported expenses will be spread out, and follow your decisions to allocate the money to home improvement over the months, instead of appearing as a lump sum when you spend the actual money.
  • You will have to make sure your savings account holds enough money to cover the "debt" once you decide to spend, just like you have to make sure you have enough money to pay off your credit card when the balance is due.

Those could count as advantages or drawbacks depending on how you want to use your accounting data.

  • 1
    Would this method also work with an equity fund instead of a liability fund? If so, would that affect the pros/cons? Commented Nov 15, 2023 at 21:37
  • 1
    Yes, it would work! In that case the fund will be counted as part of your net worth (which might well make sense). Otherwise the mechanics would be the same. Commented Nov 22, 2023 at 15:11

I don't like the words credit and debit, they confuse me

What I do with credit cards is have a sub-account1 called 'CC repayment', which specifically contains 'funds destined to be used to repay CCs'. Then:

  • Whenever I spend with my CC, I move funds from the appropriate sub-account (food, car-stuff, home-improvement) to the 'CC repayment' sub-account. I regard the money as spent at that stage, although the funds are still in my bank
  • When I actually repay a CC, funds move from the 'CC repayment' sub-account to the CC account. The nature of the expenditure being repaid is irrelevant now

It's easy to see how much has been 'spent' (whether or not the money has actually left my bank) on (eg) home improvement - it's simply the outflow from the relevant sub-account.

This is similar to Greg Schmidt's answer but also allows you to budget for home improvement (by loading up the sub-account) and see how much you're spending versus budget. You can go over-budget temporarily (by allowing the sub-account to go negative) and see that number there.

1actually one sub-account per bank account

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .