I've been using Ledger to keep track of my finances. A typical income entry looks like this:

2018-01-05 * My Company
    Assets:Cash:Checking                    1,000 USD
    Expenses:Taxes:Federal:Income           200 USD
    Expenses:Taxes:Federal:SS               100 USD
    Expenses:Taxes:Federal:Medicare         25.00 USD
    Expenses:Taxes:State:Income             45.00 USD
    Income:Salary                           -1,370.00 USD

How should I record tax refunds? Should they come from the Expenses:Taxes account or a separate Income account? Currently, I'm using a separate income account:

2018-03-19 * IRS
    Assets:Cash:Checking                    500.00 USD
  • By "tax return" do you mean "income tax refund"? Mar 29 '18 at 22:53
  • @ChrisW.Rea Yes, sorry.
    – Shane
    Mar 29 '18 at 22:59

For personal accounting there are no regulations, so do whatever suits you.

Arguably, on a cash basis a credit to an expense account makes the most sense. Treat it as you would had you bought an item at a store, then returned it. It's not really income, but rather an expense that's been reversed. Though mathematically, crediting an income account works just as well, if that will generate more meaningful reports for you.

I would suggest you make the entry to a subaccount, so the balance of what's been withheld from your paycheck is tallied separately from refunds you've received.

On an accrual basis, there will be an asset account which represents money owed to you by the IRS. This account balance will grow each accounting period when you estimate your actual tax liability. (It might also be a liability account, or have a negative balance, if you estimate you'll owe money to the IRS.) When you receive the refund check, credit this account to bring the balance to zero, and debit the account where you deposit the check. No income or expense accounts are involved.

This allows your tax expenses to be recorded in the same periods as the income that generated them, making for more accurate comparisons between periods. It does require some effort to accurately estimate taxes each period. Or since there's no law requiring personal accounts to be kept a particular way, you may choose to add the accrual entries retrospectively, backdating them into each of the 12 months for the tax year, or whatever suits your reporting methods.


This should be a rebate or refund to your tax expense account. If you were to instead list it as income, you're essentially counting those dollars twice - first when you got paid (before you credited it to taxes) and again when you got the tax return. As a result, your income would be inaccurate with an excess while it would also appear that you paid more in your tax expense account than you actually did.


For personal finances, you can of course track things however you want. For me, since one of the main reasons I track my finances is to be able to file taxes accurately, I tend to try to line things up with how the state and federal taxes work in the absence of a reason not to. This can be a little tricky sometimes, because the federal and state governments sometimes look at things a little differently.

In the United States, you can deduct state income taxes paid in the year that you paid them, but if you do so then you need to treat any state tax refund for that year as income in the year that you receive it. My state's income tax doesn't really care about federal taxes one way or the other. So, I generally look at things from the federal taxes point of view.

For federal taxes, here's what I do:

  • Deductions from my paycheck are paid to Expenses:Taxes:Federal Income Tax.
  • Tax return refunds are paid from Expenses:Taxes:Federal Income Tax Prior Year.
  • Tax return payments are paid to Expenses:Taxes:Federal Income Tax Prior Year.

Having that "Prior Year" account is pretty weird, though. It's just how Microsoft Money managed things many ages ago, and I've pretty much just kept it even though I've long since moved to Gnucash. I should probably consolidate them into one account at some point. But in general just treating it all as an Expense or negative Expense works fine, since for both my federal and state tax purposes it isn't something I need to track further as it's not considered income. It's still not considered income by them even when I get back more than I paid for a year due to refundable credits.

For state taxes, here's what I do:

  • Deductions from my paycheck are paid to Expenses:Taxes:State Income Tax.
  • Tax return refunds are paid from Income:Other:State Income Tax Refunds.
  • Tax return payments are paid to Expenses:Taxes:State Income Tax.

As I itemize my federal deductions each year, this lines up with what I need to put on my federal taxes, where I deduct the state income tax (whether automatically paid from my paycheck or whether I needed to pay it directly for a prior year) in the year that I pay it. And when I get a refund, it counts as income for federal tax purposes in the year I receive it.

Obviously depending on which governments you owe tax to you may want to arrange things slightly differently, but as long as you can find the information you need to easily there's not really a "wrong" approach. The books balance whether you transfer from an Income account or an Expense account, so it to some extent just depends on whether you want to treat it as "getting my previously paid taxes back" or "getting more income from some other source".

  • Do you lump medicare and social security together in your income tax account?
    – Shane
    Mar 31 '18 at 22:23
  • 1
    @Shane No, my paycheck entry has a bazillion splits, including to Expenses:Taxes:Social Security and Expenses:Taxes:Medicare. Basically each line on my pay stub gets a split entry.
    – user42405
    Apr 1 '18 at 0:49

What's actually happening (cold comfort that it is) is that tax withholding is still your money. It doesn't become the IRS's money until you compute your form 1040, arrive at a final number, and send it to the IRS. That causes a single annual tax transaction.

So transactionally, it's part of your pay, I just post to an "IRS deposit account" instead of my normal bank account.

At the end of the year, I post a single event that is the actual tax from the bottom of my 1040. If I owe money, the payment is split between the "IRS deposit account" and whichever bank account I pay the remainder out of. If a refund is due, I post an account-account transfer for that refund.

If you wanted to do something tricky like accrue expected taxes throughout the year, it wouldn't be wrong to have the accrual match up exactly to what the paystub is deducting.


It should match up with what account it came out of originally. If you were deducting taxes from income (i.e. treating your income as being take-home pay, rather than nominal pay), you should add it back. Since you're putting taxes in expenses, you should adjust that account.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.