[GH-ISSUE #7158] [Feature] Reimbursable expense tracking #9931

Closed
opened 2026-04-10 20:16:50 -05:00 by GiteaMirror · 10 comments
Owner

Originally created by @jhjessup on GitHub (Mar 9, 2026).
Original GitHub issue: https://github.com/actualbudget/actual/issues/7158

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

There's currently no way to mark a transaction as reimbursable, associate a reimbursement with the original expense, or see a running total of what's been spent but not yet paid back.

This comes up in several common situations: HSA medical expenses, employer expense reports, shared costs fronted by one person, and security deposits. The workaround — using a flag color as a convention — works but produces no actionable reporting and is easy to miss at categorization time.

Describe your ideal solution to this problem

My ideal solution consists of three components:

  1. A boolean "reimbursable" marker on transactions, surfaced as a toggle in the transaction detail pane. Inline indicator similar to the reconciled lock icon for at-a-glance status.
  2. A way to link a reimbursement transaction to one or more expense transactions it settles, updating the expense status to "reimbursed." This might be similar to the existing split transaction relationship — open to maintainer guidance on the right data model approach before building this piece.
  3. A filter view or report showing reimbursable transactions not yet linked to a reimbursement, with a running total.

I'm happy to discuss the transaction linkage data model on Discord before starting implementation.

Teaching and learning

No response

Originally created by @jhjessup on GitHub (Mar 9, 2026). Original GitHub issue: https://github.com/actualbudget/actual/issues/7158 ### Verified feature request does not already exist? - [x] I have searched and found no existing issue ### 💻 - [x] Would you like to implement this feature? ### Pitch: what problem are you trying to solve? There's currently no way to mark a transaction as reimbursable, associate a reimbursement with the original expense, or see a running total of what's been spent but not yet paid back. This comes up in several common situations: HSA medical expenses, employer expense reports, shared costs fronted by one person, and security deposits. The workaround — using a flag color as a convention — works but produces no actionable reporting and is easy to miss at categorization time. ### Describe your ideal solution to this problem My ideal solution consists of three components: 1. A boolean "reimbursable" marker on transactions, surfaced as a toggle in the transaction detail pane. Inline indicator similar to the reconciled lock icon for at-a-glance status. 2. A way to link a reimbursement transaction to one or more expense transactions it settles, updating the expense status to "reimbursed." This might be similar to the existing split transaction relationship — open to maintainer guidance on the right data model approach before building this piece. 3. A filter view or report showing reimbursable transactions not yet linked to a reimbursement, with a running total. I'm happy to discuss the transaction linkage data model on Discord before starting implementation. ### Teaching and learning _No response_
GiteaMirror added the needs votesfeature labels 2026-04-10 20:16:50 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Mar 9, 2026):

Thanks for sharing your idea!

This repository uses a voting-based system for feature requests. While enhancement issues are automatically closed, we still welcome feature requests! The voting system helps us gauge community interest in potential features. We also encourage community contributions for any feature requests marked as needing votes (just post a comment first so we can help guide you toward a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don't forget to upvote the top comment with 👍!

<!-- gh-comment-id:4020649692 --> @github-actions[bot] commented on GitHub (Mar 9, 2026): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses a voting-based system for feature requests. While enhancement issues are automatically closed, we still welcome feature requests! The voting system helps us gauge community interest in potential features. We also encourage community contributions for any feature requests marked as needing votes (just post a comment first so we can help guide you toward a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don't forget to upvote the top comment with 👍! <!-- feature-auto-close-comment -->
Author
Owner

@youngcw commented on GitHub (Mar 9, 2026):

I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses.

<!-- gh-comment-id:4023849667 --> @youngcw commented on GitHub (Mar 9, 2026): I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses.
Author
Owner

@Juulz commented on GitHub (Mar 9, 2026):

I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses.

Forgetting reimbursement categories for a minute, would something linking transactions be helpful for many users? Partial refunds, for example (Home Depot!!) - to link the refund with it's parent transaction?

<!-- gh-comment-id:4023977024 --> @Juulz commented on GitHub (Mar 9, 2026): > I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses. Forgetting reimbursement categories for a minute, would something linking transactions be helpful for many users? Partial refunds, for example (Home Depot!!) - to link the refund with it's parent transaction?
Author
Owner

@jhjessup commented on GitHub (Mar 9, 2026):

I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses.

Can you elaborate on your process? The workflow I'm picturing would be

  • record a pharmacy charge as "Medical:Pharmacy", and mark as Reimbursable
  • Periodically, find all the "Medical:Pharmacy" transactions that are marked reimbursable and not linked to an income transaction and submit a reimbursement form with my HSA provider
  • When the reimbursement is deposited, I mark the deposit as "Income:HSA" and link it to the pharmacy transaction
<!-- gh-comment-id:4024548373 --> @jhjessup commented on GitHub (Mar 9, 2026): > I have reimbusement categories. Enable rollover overspending and then if the balance of the category is negative, you have unreimbursed expenses. Can you elaborate on your process? The workflow I'm picturing would be - record a pharmacy charge as "Medical:Pharmacy", and mark as Reimbursable - Periodically, find all the "Medical:Pharmacy" transactions that are marked reimbursable and not linked to an income transaction and submit a reimbursement form with my HSA provider - When the reimbursement is deposited, I mark the deposit as "Income:HSA" and link it to the pharmacy transaction
Author
Owner

@youngcw commented on GitHub (Mar 9, 2026):

  • Make category called "HSA reimburse" or similar and don't budget any funds to it. Optionally enable rollover overspend.
  • When buying something that is going to be reimbursed, categorize it as "HSA reimburse"
  • Category balance of "HSA reimburse" is now negative by the amount of the charge, telling you that you have something that needs reimbursed.
  • Get reimbursed, categorize the reimbursement to "HSA reimburse".
  • Category balance is now 0, telling you that all charges have been reimbursed.

This also works with multiple pending charges but you have to pay more attention to what has specifically been reimbursed. You can use tags to help track that.

<!-- gh-comment-id:4024953907 --> @youngcw commented on GitHub (Mar 9, 2026): - Make category called "HSA reimburse" or similar and don't budget any funds to it. Optionally enable rollover overspend. - When buying something that is going to be reimbursed, categorize it as "HSA reimburse" - Category balance of "HSA reimburse" is now negative by the amount of the charge, telling you that you have something that needs reimbursed. - Get reimbursed, categorize the reimbursement to "HSA reimburse". - Category balance is now 0, telling you that all charges have been reimbursed. This also works with multiple pending charges but you have to pay more attention to what has specifically been reimbursed. You can use tags to help track that.
Author
Owner

@jhjessup commented on GitHub (Mar 11, 2026):

Thanks. For my immediate use case, I wanted to be able to retain medical subcategories (Pharmacy, Doctor, Vision, Dental), so I can answer questions like "Hey, how much did we spend on prescriptions last year?" or "How much do we need in HSA next year for dental stuff?"

<!-- gh-comment-id:4036446898 --> @jhjessup commented on GitHub (Mar 11, 2026): Thanks. For my immediate use case, I wanted to be able to retain medical subcategories (Pharmacy, Doctor, Vision, Dental), so I can answer questions like "Hey, how much did we spend on prescriptions last year?" or "How much do we need in HSA next year for dental stuff?"
Author
Owner

@LukasFT commented on GitHub (Apr 8, 2026):

I am looking for EXACTLY this feature, and I think it would be great for all the reasons and use cases already mentioned.

If I pay for dinner or medical expenses on the 31st and get reimbursed on the 1st, I do not want that to show up anywhere in my budgets. To me, it is just clutter and skews the categories if I look back in time. Aiming for an automated flow, it is cumbersome to manually split and ensure both the original transaction and the reimbursement transaction are in the same month and category. Instead, I would like to be able to automatically say: this is a restaurant, this is a pharmacy. And then when I see a transfer from a friend or insurance company, I link to the related transaction and that I put out for this transaction becomes invisible in all stats etc.

#7164 was closed - what was the reason for that @jhjessup? I am not very familiar with the tech stack used here, but could give it a try if there are some issues you couldn't overcome

<!-- gh-comment-id:4209584492 --> @LukasFT commented on GitHub (Apr 8, 2026): I am looking for EXACTLY this feature, and I think it would be great for all the reasons and use cases already mentioned. If I pay for dinner or medical expenses on the 31st and get reimbursed on the 1st, I do not want that to show up anywhere in my budgets. To me, it is just clutter and skews the categories if I look back in time. Aiming for an automated flow, it is cumbersome to manually split and ensure both the original transaction and the reimbursement transaction are in the same month and category. Instead, I would like to be able to automatically say: this is a restaurant, this is a pharmacy. And then when I see a transfer from a friend or insurance company, I link to the related transaction and that I put out for this transaction becomes invisible in all stats etc. #7164 was closed - what was the reason for that @jhjessup? I am not very familiar with the tech stack used here, but could give it a try if there are some issues you couldn't overcome
Author
Owner

@LukasFT commented on GitHub (Apr 8, 2026):

Btw., for reference, these are the current recommendations for handling reimbursements and returns

<!-- gh-comment-id:4209606059 --> @LukasFT commented on GitHub (Apr 8, 2026): Btw., for reference, [these are the current recommendations for handling reimbursements and returns](https://actualbudget.org/docs/budgeting/returns-and-reimbursements/)
Author
Owner

@jhjessup commented on GitHub (Apr 8, 2026):

@LukasFT I closed the #7164 because I hadn't figured out the workflow for linking the transactions. I could get the datastructures in place for the backend to connect the expense and the reimbursement, but then I got lost on the frontend for how to do it. All the code should be in the right branches if you want to pick it up, but I think it's probably going to be better to start fresh.

<!-- gh-comment-id:4209636196 --> @jhjessup commented on GitHub (Apr 8, 2026): @LukasFT I closed the #7164 because I hadn't figured out the workflow for linking the transactions. I could get the datastructures in place for the backend to connect the expense and the reimbursement, but then I got lost on the frontend for how to do it. All the code should be in the right branches if you want to pick it up, but I think it's probably going to be better to start fresh.
Author
Owner

@LukasFT commented on GitHub (Apr 8, 2026):

Thanks! UX/UI is not my strongest side ... But I might try to see if I can come up with something.

<!-- gh-comment-id:4209687413 --> @LukasFT commented on GitHub (Apr 8, 2026): Thanks! UX/UI is not my strongest side ... But I might try to see if I can come up with something.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#9931