I'm using gnucash to record my finances (but it should apply to any double entry accounting system). I wonder how should I record transactions for medical expenses which I can reimburse from HSA (and I will probably in about 40 years or so).

I've thought about following structure - in this way the reimbursement is liability of HSA account(s) to me and I can attach scan of receipt to the transaction.

Account structure:
 - Assets:Current Assets:Checking account
 - Assets:HSA:Account1
 - Assets:HSA:Account1:Cash
 - Assets:HSA:Reimbursements
 - Assets:Reimbursements:HSA
 - Expenses:Medical
 - Liabilities:Credit card

Account                     Db              Cr
Expenses:Medical            $X
Liabilities:Credit card                     $X
Assets:HSA:Reimbursements                   $X
Assets:Reimbursements:HSA   $X

Account                                  Db              Cr
Assets:Current Assets:Checking account   $X
Assets:HSA:Account1:Cash                                 $X
Assets:HSA:Reimbursements                $X
Assets:Reimbursements:HSA                                $X

Is there a better way? I have a mixed feeling about putting 'liability' in assets category (asset with negative value) but on the other hand it wouldn't belong to liabilities as it's not my liability. On the other hand it allows to both check the current assets which can be liquidated and current status of account for reconciliation (Assets:HSA:Account1).

  • This is not good, my friend. Assets:HSA:Reimbursements and Assets:Reimbursements:HSA should not both exist! Also, your Assets look the same after incurring medical expenses, and your Liabilities went up. It should be that your Liabilities go up (because of the credit card) and the asset goes up (because you have a reimbursable expense). I have no alternative suggestion, though. I'll try to remember to come back if I come up with anything. ..wait maybe I have something...answering now. Oct 10, 2018 at 23:23

2 Answers 2


My plan is to move all pre-HSA medical transactions into a Expenses:Medical:nonHSA (pre and non-eligible for whatever you might still classify as "medical") and create new Expenses:Medical:HSA (eligible only, reimbursable). This way I don't have to enter each transaction twice, i.e. when I pay with CC and that HSA owes it to me as you propose, as it is easy to forget.

I see nothing wrong with getting money back from Expenses.

P.S. Apparently this leaves out tracking of investments within HSA.


When you incur a medical expense which is reimbursable from your HSA, it should be represented as an Accounts Receivable.

it wouldn't belong to liabilities as it's not my liability.

At first I thought you were right (hence my consternation in the comments), but I changed my mind. It's the HSA's liability. The HSA is your account, so it's your liability. That means you need an Accounts Payable to represent it. Putting these together, we get:

Expenses:Medical                    $5
    Liabilities:AP:Reimbursements       $5
Assets:AR:HSA Reimbursable          $5
    Liabilities:Credit Card             $5

And when you reimburse yourself:

Assets:Chequing                     $5
    Assets:AR:HSA Reimbursable          $5
Liabilities:AP:Reimbursements       $5
    Assets:HSA                          $5

You'll use the AR to pay the chequing account back, and you'll relieve the AP obligation from the HSA.

You must log in to answer this question.

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