Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Goals set a "left to be budgeted" amount similar to YNAB #1006

Closed
2 tasks done
jonezy35 opened this issue May 7, 2023 · 21 comments
Closed
2 tasks done

[RFC] Goals set a "left to be budgeted" amount similar to YNAB #1006

jonezy35 opened this issue May 7, 2023 · 21 comments
Labels
goal templates Related to the experimental goal templates feature

Comments

@jonezy35
Copy link
Contributor

jonezy35 commented May 7, 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?

When implementing the experimental goals feature, the only option is to use those goals to budget the full amount of the goal. When I used YNAB I prefered to use goals as a way to see how much I have left to budget. I find this to be an area where goals could be made much more useful before they are moved out of the experimental stage. See the below "Ideal Solution" for more details on how this could be implemented.

I would be willing to do some of the legwork to try and get this feature implemented. However, I am a noob when it comes to Javascript and Node.JS so I'm unsure if I have the skills to work on this mysel. or if the time required for me to get up to speed on the skills needed would be longer than it would take for someone else to implement.

Describe your ideal solution to this problem

I do really like the way YNAB handles goals. When a user sets a goal for a category, that category then shows the goal amount as "left to budget". Then, when the user budgets a portion of that amount, the "left to budget" amount updates. Once the entire goal is budgeted, the "left to budget" amount is zero.

This is powerful per category, but I find the real power is at the top of the budget, where a user can see how much is left to budget over all categories. For those of us that are paid twice a month or are considering a large purchase, it is SUPER helpful to be able to do the quick mental math of "I have budgeted X, I have left to budget Y, and my next paycheck is Z, so I will have (Z - Y) left over for either the next month or for another big purchase".

Teaching and learning

No response

@jonezy35 jonezy35 added feature This issue is a feature request needs triage labels May 7, 2023
@github-actions github-actions bot added the needs votes Please upvote this feature request if you would like to see it implemented! label May 7, 2023
@github-actions
Copy link
Contributor

github-actions bot commented May 7, 2023

✨ Thanks for sharing your idea! ✨

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. 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 github-actions bot closed this as completed May 7, 2023
@j-f1 j-f1 removed the needs triage label May 7, 2023
@jonezy35
Copy link
Contributor Author

jonezy35 commented May 9, 2023

I have forked the repo and have begun working on this. I don't have a ton of free time lately so it might take a bit. Open to any comments/suggestions from anyone else. My fork is HERE if anyone wants to stay up to date on it.

@jonezy35
Copy link
Contributor Author

Just an update for anyone awaiting this: Currently working through some Udemy courses at 1.5 speed. Trying to get up to speed on stuff as fast as possible. Life does throw a lot of other busy stuff my way but I'm still working hard at this!

@jonezy35
Copy link
Contributor Author

jonezy35 commented May 30, 2023

Request to re-open this issue so that there can be some back and forth discussion on if this change would be in line with the projects long term vision, as well as discuss what the final implementation will look like.

First, a discussion on goals overall.

The way I use goals is to plan my month ahead. Goals help me remember how much I need to budget each month in order to have enough in each category for my monthly spending/ bills. They also provide an easy way to automatically budget up to the goal amount with the click of a button.

Secondly, goals can provide a numeric value letting the user know how much they have left to budget to meet the goal for a specific item. If a user selects one Item (say, groceries), the user will be able to see how much they have left to budget to meet their goal (for example, if their goal is $500 and they have budgeted $200 so far, they will see that the category is underfunded by $300). Additionally, if a use selects multiple categories at once, they can see the cumulative amount underfunded for the selected categories.

Implementation

I am coming from YNAB, and I really like how they handled this. I think when a category is selected, a side menu should appear showing information about that category. Additionally, if multiple categories are selected, the sidebar should show the cumulative information for all of those categores. This is how YNAB handles it

Not saying it has to be handled like YNAB... after all, Actual is not YNAB. But I think the functionality should be similar. I personally love this workflow. It lets me plan for the future but also the "average spent" for each category helps me see behavioral trends.

Open for some back and forth discussion on the matter.

Edit

I've been working on this myself so far. I am fairly new to Javascript, am working on contributing to a few other open source projects as well, and also have a lot going on life wise these next 6 months so I need to be realistic with what I can do. I am a fast learning and work hard, but depending on the final idea on implementation I may need to see if someone more senior with the project could help guide me through the implementation here. Getting up to speed on the codebase has been difficult so far for me.

@j-f1 j-f1 removed feature This issue is a feature request needs votes Please upvote this feature request if you would like to see it implemented! labels May 30, 2023
@j-f1 j-f1 changed the title [Feature] Goals set a "left to be budgeted" amount similar to YNAB [RFC] Goals set a "left to be budgeted" amount similar to YNAB May 30, 2023
@rich-howell rich-howell reopened this May 30, 2023
@j-f1 j-f1 added the goal templates Related to the experimental goal templates feature label May 30, 2023
@j-f1 j-f1 reopened this May 30, 2023
@rich-howell
Copy link
Contributor

Some of the screenshots taken from the Discord discussion that shows how this is done in YNAB. Some of the concerns raised around this are highlighted below.

image
image
image

Suggestion

It might just be a case that the detail is hidden and as you say a traffic light shows the "state" of the category's goal

A few issues were raised with this;

  • What technical debt does that add
  • How much extra complexity does it add to the budget sheet,
  • What stress will it put on the database
  • Will it slow down the app
  • These are all things we consider every time we merge something

Consideration

Given how Actual is currently developed and designed it would need to be considered how this would fit into the existing UI implementation.

@youngcw
Copy link
Member

youngcw commented May 31, 2023

I like the simplicity of the checkbox and pie chart for quickly seeing status of the goal. I would think we could figure out a similar setup while not muddying up the UI.

@jonezy35
Copy link
Contributor Author

I also like the checkbox and pie chart. I personally would like to see a numeric value of the total sum of all goals for the checked categories as well. I am unsure where it would fit in the UI.

I personally am a data nerd so I don't mind sacrificing UI for more data points, but I understand that doesn't line up with the projects long term vision or what most other users prefer. Perhaps it's ok to give a little on the UI if we can have things hidden behind a checkbox in the settings (similar to the way goals are currently not enabled unless the box is checked).

@shall0pass
Copy link
Contributor

I like the idea of the slide out window, like #1035. I'm biased
I think this could be used for all of the Modal fields for goals. We could have the dialogs to view existing goals, create new goals, and see the progress of the goals all within that dialog and simply slide it away to have the clean view back.

I'm not sure I totally like the pie chart or small vertical bar graph options. Maybe I'd just have to see it. A longer horizontal bar, I think, would would easier to see how full the bar is. I have a hard time seeing the small icons and how full they are.

Unfortunately, I don't have the technical acumen to develop such a feature.

@youngcw
Copy link
Member

youngcw commented May 31, 2023

I agree about the side window as long as it can be hidden away. One thing that I don't like about ynab is that the side pane is fixed.

I like that idea of putting all the goal gui things in a slide out, or some sort of option addition to the budget page. Setup, edit, progress, remaineder, etc in one place vs multiple modals.

@jonezy35
Copy link
Contributor Author

I really like the slide out idea. Basically the sidebar that YNAB has but it can be hidden.

I also agree a long horizontal bar would be ideal over a vertical bar.

At the end of the day I think the slide out sidebar is the best idea. I haven't built something like that before. If that's the direction that the project wants to go, what's the technical debt/ requirement of that? I'd be willing to work in tandem with some others on it. Will be a big project.

@jonezy35
Copy link
Contributor Author

jonezy35 commented Jun 4, 2023

If we can flesh out what we want this to look like I can get started on the research for what it will take to implement.

Again, need to evaluate the Technical debt of this RFC.

Examples of things to consider:

  1. UI implementation (slide out?)
  2. Server side (store values in database? Will this slow down the app? Or should values be calculated when called and not be stored in the database?)

@jonezy35
Copy link
Contributor Author

jonezy35 commented Jun 4, 2023

Also, are there any devs on the project that have the skills to develop what we want here? If they simply don't have enough time, would they be willing to work in tandem with me (me doing most of the work and basically just having them to answer questions (about the codebase, etc.))?

@rich-howell
Copy link
Contributor

Discord Discussion

@shall0pass
Copy link
Contributor

shall0pass commented Aug 1, 2023

I pushed a branch this morning that places the calculated monthly contribution amount to stay on target for goals. The value is the amount that would be applied without any artificial priorities, so its basically the ( need / number of months to expense ).
I put a field in the zero_budgets table called goal. It get's updated any time the goal templates are applied. I thought this might be the only value needed out of the templates to do anything, but if more is needed it shouldn't be too hard to get it. Spent and Budgeted values are already available in the table.

My initial thought was this could be useful for a progress bar. I don't plan on pushing this to a PR because I'm not totally sure how to get the database field back to the components file. And I'm 100% sure I can't make a beautiful progress bar. So if anyone wants to take up the challenge, here it is: https://github.com/shall0pass/actual/tree/goalProgressBar

Anyways, the initial framework has a start. Whether or not this turns into something 🤷

Edit: It could be used for a pie chart similar to the screenshots above too. There are already pie charts in the report budget, so there possibly could be some reusable code there.

@youngcw
Copy link
Member

youngcw commented Aug 1, 2023

A simple place to start would be to just color the budgeted amount based on the goal. If the goal is not met yellow, and if the goal is met green.

Edit: This has been added in #1780

@youngcw
Copy link
Member

youngcw commented Nov 11, 2023

I was thinking that maybe the most "Actual like" way to do this would be to have a page similar to the Schedules or rules page that listed all the goals. That way they could be viewed in one nice place and sorted based on priority, ideal amount, category etc. Then to to make the goal easy to make or view for a single category we could add an indicator similar to the note button for a goal. Hover to see the goal, click to edit, hidden if not used.

That doesn't block any kind of indicator of the goals though. Just the way they get made viewed.

@shall0pass
Copy link
Contributor

I was thinking that maybe the most "Actual like" way to do this would be to have a page similar to the Schedules or rules page that listed all the goals. That way they could be viewed in one nice place and sorted based on priority, ideal amount, category etc. Then to to make the goal easy to make or view for a single category we could add an indicator similar to the note button for a goal. Hover to see the goal, click to edit, hidden if not used.

That doesn't block any kind of indicator of the goals though. Just the way they get made viewed.

Yeah. My views on this are shifting with time. I think you're on the right track with a new page similar to the other pages.

@LarsStegman
Copy link

I prefer the YNAB style where the sidebar is an "inspector" for the currently selected Category. A separate page would mean a lot of clicking around to get an overview of the current state of the budget.

@tiagodj
Copy link

tiagodj commented Apr 1, 2024

I've found this thread while looking for some information for the targets. I started using templates, and now I can see the coloured balance (from this PR #1780) which are handy.

But I'd like to be able to tell how much more money I need to budget for that category, and also overall (as in, how much more money do I need this month?).

When I see the yellow balance, there's no way to tell how much is it missing, other than looking at the template to see the target value and doing some math.

A tooltip (example: "Add $123.45 to reach target") when hovering on the balance would already be extremely helpful!

@jonezy35
Copy link
Contributor Author

jonezy35 commented Apr 1, 2024

I've found this thread while looking for some information for the targets. I started using templates, and now I can see the coloured balance (from this PR #1780) which are handy.

But I'd like to be able to tell how much more money I need to budget for that category, and also overall (as in, how much more money do I need this month?).

When I see the yellow balance, there's no way to tell how much is it missing, other than looking at the template to see the target value and doing some math.

A tooltip (example: "Add $123.45 to reach target") when hovering on the balance would already be extremely helpful!

I would really like this feature. I apologize for not being present in almost a year. I had a lot of life stuff come up. I am still using actual and I really enjoy it. If I can free up some time I would like to start plugging away at this, but honestly I'm unsure if I can make the time right now.

@youngcw
Copy link
Member

youngcw commented Sep 9, 2024

some of this has been implemented via a tooltip for each category with goal information. Ill close this issue for now as discussion going forward will happen mostly in the feature request and on the dedicated discord project channel https://discord.com/channels/937901803608096828/1265303844187803670.

@youngcw youngcw closed this as completed Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
goal templates Related to the experimental goal templates feature
Projects
None yet
Development

No branches or pull requests

7 participants