[Feature] Option to automatically hold income for next month #764

Closed
opened 2026-02-28 19:18:07 -06:00 by GiteaMirror · 12 comments
Owner

Originally created by @Teifun2 on GitHub (Nov 26, 2023).

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?

My Income comes relatively late in the month. I want to Budget this always for the next month only.

What im currently doing is every month, i "hold for next Month" the exact value that was in my Income tab.

Ideally this could be setup automatically, so that this additional action is not required.

Describe your ideal solution to this problem

Similar to the "Rollover Overspending" of the Expenses total, i would like to have the option to indicate which category in the incomes should be automatically set aside for next months budget.

Teaching and learning

After i discovered the "Rollover Overspending" feature i naturally searched for the this feature. As it would be interacted with the same way (click on total value of month to activate) i hope users would find it quickly.

https://actualbudget.com/docs/budgeting/how-it-works/ This documentation would need an additional paragraph, maybe below: Rollover negative category balances
to explain the "Hold for next Month" of the Income!

Originally created by @Teifun2 on GitHub (Nov 26, 2023). ### 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? My Income comes relatively late in the month. I want to Budget this always for the next month only. What im currently doing is every month, i "hold for next Month" the exact value that was in my Income tab. Ideally this could be setup automatically, so that this additional action is not required. ### Describe your ideal solution to this problem Similar to the "Rollover Overspending" of the Expenses total, i would like to have the option to indicate which category in the incomes should be automatically set aside for next months budget. ### Teaching and learning After i discovered the "Rollover Overspending" feature i naturally searched for the this feature. As it would be interacted with the same way (click on total value of month to activate) i hope users would find it quickly. https://actualbudget.com/docs/budgeting/how-it-works/ This documentation would need an additional paragraph, maybe below: **Rollover negative category balances** to explain the "Hold for next Month" of the Income!
GiteaMirror added the feature label 2026-02-28 19:18:08 -06:00
Author
Owner

@github-actions[bot] commented on GitHub (Nov 26, 2023):

Thanks for sharing your idea!

This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make 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 👍!

@github-actions[bot] commented on GitHub (Nov 26, 2023): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make 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

@Teifun2 commented on GitHub (Nov 26, 2023):

Would this be approved if i could do it in a PR?

Any poiners to understand what would be needed to do it.

@Teifun2 commented on GitHub (Nov 26, 2023): Would this be approved if i could do it in a PR? Any poiners to understand what would be needed to do it.
Author
Owner

@ricketyboo commented on GitHub (Dec 6, 2023):

Hey @Teifun2 firstly, re your question: I think a PR being approved would be dependent on if the maintainers feel it aligns with their vision. Might be good to flesh out your intended delivery plan or a rough proof of concept before you make the PR. Obviously harder to do if you don't know where to start, I am not very familiar with the code yet myself so can't advise, sorry! If you feel brave it might be worth just pulling the code down and poking through it with a debugger to see what happens with the numbers when you add them and see if you can get something dirty that does what you want and then post your findings for extra help and cleanup?

We sort of already have an "auto rollover". Anything that is not allocated is just immediately available in the next month. You're probably aware of this already, but see this $19 left unbudgeted in Dec, is now "Available" in the January budget. (Please ignore my other numbers)

image

In theory Month 1 has income near the end, and you haven't budgeted it, it'll be available for the next month, and then you'll budget from that first and it'll go down to zero. Then your pay will hit and you'll have the extra available again, which will then be available, and you can budget it down to zero.

It does mean you'll wind up at the end of the month with suddenly a surplus of un-budgeted income, but hopefully by that point you've already locked in your spending for the month? Not clean, I know. I'd probably get annoyed by always having a surplus every month as well.

I am curious about how auto hold would work. I think if we tried to automatically "hold" budget balance as if you'd pressed the "hold for next month" it'd cause issues if the budget categories values change for this month and change what that held figure would be. This is fixable with a manual value change because you know how to resolve it, and if more money comes in, it could just be auto held again, but if the hold goes negative it might be impossible to automatically resolve... there's some UX considerations here to think about!

I wonder if it'd be possible to change the way income works so you can change which period it's -allocated- into, despite what period it was added to the register. It it would be an interesting approach to the budget to force a "budget what I have, not what I might have" mindset, where any income in the month is not available until the next month. I don't even know where to begin with that code wise, and suspect it may require some substantial changes to the way transactions and budgets are linked, but I could certainly see some benefits to doing that.

Hope my waffle has been at all helpful or given you some sparks of things to think about in your solution.

Secondly, could I ask a favour? Would you be able to rename this issue to include a short summary sentence of what you're asking for? I have no official capacity to ask this of you, it's just a friendly request you can ignore, butI think it'd help with people scanning the request log looking for existing requests or for things to work on!

@ricketyboo commented on GitHub (Dec 6, 2023): Hey @Teifun2 firstly, re your question: I think a PR being approved would be dependent on if the maintainers feel it aligns with their vision. Might be good to flesh out your intended delivery plan or a rough proof of concept before you make the PR. Obviously harder to do if you don't know where to start, I am not very familiar with the code yet myself so can't advise, sorry! If you feel brave it might be worth just pulling the code down and poking through it with a debugger to see what happens with the numbers when you add them and see if you can get something dirty that does what you want and then post your findings for extra help and cleanup? We sort of already have an "auto rollover". Anything that is not allocated is just immediately available in the next month. You're probably aware of this already, but see this $19 left unbudgeted in Dec, is now "Available" in the January budget. (Please ignore my other numbers) ![image](https://github.com/actualbudget/actual/assets/4494839/cc62af47-7c5d-487b-a4be-2488ce319f8c) In theory Month 1 has income near the end, and you haven't budgeted it, it'll be available for the next month, and then you'll budget from that first and it'll go down to zero. Then your pay will hit and you'll have the extra available again, which will then be available, and you can budget it down to zero. It does mean you'll wind up at the end of the month with suddenly a surplus of un-budgeted income, but hopefully by that point you've already locked in your spending for the month? Not clean, I know. I'd probably get annoyed by always having a surplus every month as well. I am curious about how auto hold would work. I think if we tried to automatically "hold" budget balance as if you'd pressed the "hold for next month" it'd cause issues if the budget categories values change for this month and change what that held figure would be. This is fixable with a manual value change because you know how to resolve it, and if more money comes in, it could just be auto held again, but if the hold goes negative it might be impossible to automatically resolve... there's some UX considerations here to think about! I wonder if it'd be possible to change the way income works so you can change which period it's -allocated- into, despite what period it was added to the register. It it would be an interesting approach to the budget to force a "budget what I have, not what I might have" mindset, where any income in the month is not available until the next month. I don't even know where to begin with that code wise, and suspect it may require some substantial changes to the way transactions and budgets are linked, but I could certainly see some benefits to doing that. Hope my waffle has been at all helpful or given you some sparks of things to think about in your solution. Secondly, could I ask a favour? Would you be able to rename this issue to include a short summary sentence of what you're asking for? I have no official capacity to ask this of you, it's just a friendly request you can ignore, butI think it'd help with people scanning the request log looking for existing requests or for things to work on!
Author
Owner

@jrucker2004 commented on GitHub (Dec 11, 2023):

I also think the way income is handled needs some work, but I don't know the best way to go about it. I'm self employed, and my income comes in gradually throughout the month, so it's really difficult to see what I'm working with ahead of time. My current solution is to create a new account called "Projections" and a category called "Projected income". I then add a transaction for what I predict what I'll have for income for the current or next month, and adjust it as the month progresses. I also have some income for contract work that takes 4-6 weeks to pay out. I need to be able to budget with that money, so I add it to my projections account, then delete it when the money actually shows up.

I'd love to be able to budget multiple months out, but since income can't be "Budgeted" like expenses are, I have to fake it with my projected transactions.

@jrucker2004 commented on GitHub (Dec 11, 2023): I also think the way income is handled needs some work, but I don't know the best way to go about it. I'm self employed, and my income comes in gradually throughout the month, so it's really difficult to see what I'm working with ahead of time. My current solution is to create a new account called "Projections" and a category called "Projected income". I then add a transaction for what I predict what I'll have for income for the current or next month, and adjust it as the month progresses. I also have some income for contract work that takes 4-6 weeks to pay out. I need to be able to budget with that money, so I add it to my projections account, then delete it when the money actually shows up. I'd love to be able to budget multiple months out, but since income can't be "Budgeted" like expenses are, I have to fake it with my projected transactions.
Author
Owner

@Kidglove57 commented on GitHub (Dec 11, 2023):

@jrucker2004 in the circumstances you describe I can totally understand you wanting to project forward your income and expenditure.

There is a conflict here with Actual’s fundamental budgeting principle (Envelope Budgeting). This mirrors the way our forebears used to put money into physical envelopes dedicated to each expense category. Since envelope budgeting as a core principle only budgets the cash you already have we run into a problem.

As you will have seen there is an experimental Report Budget option as an alternative but I have never used it. Maybe that is where your proposal would best fit for future development?
Edit: I have looked at a lot of personal finance apps over the last few years and very seldom seen what you want. In fact, the only one I know of that majors on projections and provides the sort of thing you are looking for is Pocketsmith. https://www.pocketsmith.com/

@Kidglove57 commented on GitHub (Dec 11, 2023): @jrucker2004 in the circumstances you describe I can totally understand you wanting to project forward your income and expenditure. There is a conflict here with Actual’s fundamental budgeting principle (Envelope Budgeting). This mirrors the way our forebears used to put money into physical envelopes dedicated to each expense category. Since envelope budgeting as a core principle only budgets the cash you already have we run into a problem. As you will have seen there is an experimental Report Budget option as an alternative but I have never used it. Maybe that is where your proposal would best fit for future development? Edit: I have looked at a lot of personal finance apps over the last few years and very seldom seen what you want. In fact, the only one I know of that majors on projections and provides the sort of thing you are looking for is Pocketsmith. https://www.pocketsmith.com/
Author
Owner

@youngcw commented on GitHub (Aug 30, 2024):

I was thinking about this recently and had the same idea as here, to reuse the existing carryover structure that expense categories have and apply it to income categories. I was thinking that we could reuse the existing carryover icons and tooltip setup as expenses. Then the function could happen automatically in some way. A simple, but not perfect, way would be to check the hold amount every time the budget is opened and update the hold automatically if needed. Or this function could be handled the same way auto-posting of schedules is handled (whatever the specifics of that is).

@youngcw commented on GitHub (Aug 30, 2024): I was thinking about this recently and had the same idea as here, to reuse the existing carryover structure that expense categories have and apply it to income categories. I was thinking that we could reuse the existing carryover icons and tooltip setup as expenses. Then the function could happen automatically in some way. A simple, but not perfect, way would be to check the hold amount every time the budget is opened and update the hold automatically if needed. Or this function could be handled the same way auto-posting of schedules is handled (whatever the specifics of that is).
Author
Owner

@axelson commented on GitHub (Nov 29, 2024):

I wonder if it'd be possible to change the way income works so you can change which period it's -allocated- into, despite what period it was added to the register.

Yeah this is exactly how I picture this working. For each income transaction you could control if it's available for the current month or for next month. I don't know the details of Actual's data model but I could definitely picture it being quite tricky to implement!

This is one of the features that I miss from YNAB4.

I can live without it but it does necessitate updating the hold amount twice a month or so when I get paid since I like to keep my "to budget" amount at 0.

@axelson commented on GitHub (Nov 29, 2024): > I wonder if it'd be possible to change the way income works so you can change which period it's -allocated- into, despite what period it was added to the register. Yeah this is exactly how I picture this working. For each income transaction you could control if it's available for the current month or for next month. I don't know the details of Actual's data model but I could definitely picture it being quite tricky to implement! This is one of the features that I miss from YNAB4. I can live without it but it does necessitate updating the hold amount twice a month or so when I get paid since I like to keep my "to budget" amount at 0.
Author
Owner

@erikhuizinga commented on GitHub (May 4, 2025):

I also would very much like an option to allocate all income's time of availability, e.g. next month. My reasoning (as a newcomer to actual but a veteran to YNAB-style budgeting:

  • Months are a standard time period, though that's only by convention and nothing 'natural' dictates that one should use months. (Think about it: they're almost always 28, 29, 30 or 31 days long. Crazy, right?) In that sense I get the decision to make income available to you as soon as it arrives. But why then have months in the budget in the first place, and features like rollover? So yes, you can also timebox income, as another convention.
  • Given the aforementioned arbitrary time periods: budgeting to zero is a powerful peace-of-mind strategy within such periods. Then suddenly some income arrives, expected or not, and there goes your zero budget for the rest of the month. No, I don't like having to reallocate this money in the current month, because (see previous point) the month is a completely arbitrary unit of a time period and for all we know, the income might arrive 1 second before the next month starts, leaving me no time to even enter it in Actual, let alone allocate it to some place that I will spend money from. I know, I know, this money then rolls over, but that's not the point. The point is that the budget is no longer at zero because of date coupling (a code smell, if talking about software design principles). Let expenses be real-time (because you pay what you must pay), and let income incorporate a potential time buffer (e.g. a month or a few ahead) (because you shouldn't allocate to spend today what you might need in the future). Holding all income to some future time period by default preserves the current month's zero budget: budgeting bliss!
  • Allowing a time buffer for income, reduces your dependency on that income: financial sanity!

I know that it's also possible, e.g. with templates, to sink all income into a category, and then consume from that in the next month's budget, but that's just obfuscating the problem that this issue has no solution, AFAIK.

@erikhuizinga commented on GitHub (May 4, 2025): I also would very much like an option to allocate all income's time of availability, e.g. next month. My reasoning (as a newcomer to actual but a veteran to YNAB-style budgeting: - Months are a standard time period, though that's only by convention and nothing 'natural' dictates that one should use months. (Think about it: they're almost always 28, 29, 30 or 31 days long. Crazy, right?) In that sense I get the decision to make income available to you as soon as it arrives. But why then have months in the budget in the first place, and features like rollover? So yes, you can also timebox income, as another convention. - Given the aforementioned arbitrary time periods: budgeting to zero is a powerful peace-of-mind strategy within such periods. Then suddenly some income arrives, expected or not, and there goes your zero budget for the rest of the month. No, I don't like having to reallocate this money in the current month, because (see previous point) the month is a completely arbitrary unit of a time period and for all we know, the income might arrive 1 second before the next month starts, leaving me no time to even enter it in Actual, let alone allocate it to some place that I will spend money from. I know, I know, this money then rolls over, but that's not the point. The point is that the budget is no longer at zero because of date coupling (a code smell, if talking about software design principles). Let expenses be real-time (because you pay what you must pay), and let income incorporate a potential time buffer (e.g. a month or a few ahead) (because you shouldn't allocate to spend today what you might need in the future). Holding all income to some future time period by default preserves the current month's zero budget: budgeting bliss! - Allowing a time buffer for income, reduces your dependency on that income: financial sanity! I know that it's also possible, e.g. with templates, to sink all income into a category, and then consume from that in the next month's budget, but that's just obfuscating the problem that this issue has no solution, AFAIK.
Author
Owner

@github-actions[bot] commented on GitHub (Jun 5, 2025):

🎉 This feature has been implemented in #4778 and will be released in the next version. Thanks for sharing your idea! 🎉

@github-actions[bot] commented on GitHub (Jun 5, 2025): :tada: This feature has been implemented in #4778 and will be released in the next version. Thanks for sharing your idea! :tada: <!-- feature-implemented-comment -->
Author
Owner

@lazynooblet commented on GitHub (Jul 2, 2025):

I will use this feature, thank you, I appreciate the effort. It is definitely an upgrade.

I do however feel like it has been over-engineered. A simpler approach would have been a new category called "Hold for next month" and allow the user to assign new income to that category. Now I need to all or nothing, which isn't as flexible.

Perhaps the entire hold mechanic prevents such a simple solution.

@lazynooblet commented on GitHub (Jul 2, 2025): I will use this feature, thank you, I appreciate the effort. It is definitely an upgrade. I do however feel like it has been over-engineered. A simpler approach would have been a new category called "Hold for next month" and allow the user to assign new income to that category. Now I need to all or nothing, which isn't as flexible. Perhaps the entire hold mechanic prevents such a simple solution.
Author
Owner

@RedHare-Exe commented on GitHub (Jul 3, 2025):

@lazynooblet You can do what you're describing. Just create a new income category manually, set it to hold, and then assign income you want to hold to that category. If there's income you don't want to hold, assign it to the default "income" category.

@RedHare-Exe commented on GitHub (Jul 3, 2025): @lazynooblet You can do what you're describing. Just create a new income category manually, set it to hold, and then assign income you want to hold to that category. If there's income you don't want to hold, assign it to the default "income" category.
Author
Owner

@lazynooblet commented on GitHub (Jul 3, 2025):

@lazynooblet You can do what you're describing. Just create a new income category manually, set it to hold, and then assign income you want to hold to that category. If there's income you don't want to hold, assign it to the default "income" category.

I just tried this and it works. Thank you! I misunderstood the feature obviously.

@lazynooblet commented on GitHub (Jul 3, 2025): > [@lazynooblet](https://github.com/lazynooblet) You can do what you're describing. Just create a new income category manually, set it to hold, and then assign income you want to hold to that category. If there's income you don't want to hold, assign it to the default "income" category. I just tried this and it works. Thank you! I misunderstood the feature obviously.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#764