Giter Site home page Giter Site logo

Comments (6)

Zburatorul avatar Zburatorul commented on August 13, 2024

Along the same lines: how does EB handle the more general case of someone getting paid irregularly (but let's say with a monthly average that's nearly constant)?

from fava-envelope.

egetzner avatar egetzner commented on August 13, 2024

From my understanding, Envelope Budget does not take the Income accounts into consideration at all, and the time of the month also should not matter (it cannot be in the future I think). Rather, the "Funds for month" amount is just the sum of all defined budget accounts at the end of that month (or today for the current month). This way, you can only ever budget the money you have right now, and your expenses are not related to the income.

My current budgeting workflow is to have an eye on the "To be budgeted for month" amount, if I've just tracked an inflow in my accounts I'll see the money there and create/adjust the respective envelope allocations.

The problem here is that Fava counts that Income as The income for the month, and Expenses made at the beginning of the month get's removed from the budget. This makes things very awkward.

Not sure what you mean by that @andrewebdev, maybe you can elaborate.

from fava-envelope.

andrewebdev avatar andrewebdev commented on August 13, 2024

@egetzner after your explanation. I went back and fiddled around with the budgeting setup. It all seems to make more sense and working as expected now. I guess I'm too used to my old setup in ledger-cli, so the results was looking strange.

But I also discovered that I was running into some issues because I had to set up a budget for my "opening balances". I never previously did that, so even when I start my budget at a later time the "funds for the month" value was always in-accurate.

After revisiting and fixing my opening balances error, and a shift in perspective to do things the fava-envelope way, things seems to be working correctly now.

from fava-envelope.

Zburatorul avatar Zburatorul commented on August 13, 2024

@egetzner, I had a look at the project's code and it looks like "Funds for month" does actually contain the income as computed from Income accounts. It also rolls over any over/under-spent funds from last month.
See here and here.

From the Readme is sounds like the Budget Accounts are accounts from which money will be spent. At first glance it makes sense that these can only be Assets or Liabilities, but in the US it is common to pay for certain things directly from your paycheck (therefore Income account).
I must be missing something. Why do I want to have an account (even virtual) from which the spending gets tracked?

Then there's the concept of "buckets" which are used to track where the money goes. Here again it makes sense that Expense accounts are the most common use case. I could also have some Asset accounts as buckets, to track that I'm putting a set amount of money aside. A Liability also makes sense if I'm paying down a loan.

From my incomplete understanding, it seems the logic of the system is:
0. Period = a month.

  1. I have targets for how much income I expect in a period, and how much I expect to spend in a period. These expectations are allocation directives in the journal file. How much I actually earn/spend may turn out differently. I will adjust the allocations at the end of the period to match the actual spending.
  2. All income earned in a period goes to "Funds available" (which is not an account nor a bucket). This is computed from Income accounts. The goal is to distribute all the income into buckets.
  3. A transfer into a bucket account is either spending, saving or paying something down. Buckets are supposed to have allocations. It doesn't matter which account the money came from (whether I paid with Asset, Liability, Income), it only matters which bucket it went to.
  4. If I spend less than initially budgeted, I adjust the allocations down. As a result I will have some unbudgeted income that I need to put into a bucket, say Savings.

Now that I've written this, it doesn't quite gel for me. I'm getting confused between only spending money that's already there, and adjusting allocations post-factum.
Any comments?

from fava-envelope.

andrewebdev avatar andrewebdev commented on August 13, 2024

@Zburatorul I think you are getting confused with a traditional budget and a YNAB-style budget. Fava-envelope uses the YNAB style budgeting system.

This article here give a very good summary of how this should work in a text based system like beancount (with fava). The article in question is actually instructions on how to set up YNAB for ledger-cli... but the principles is generally the same.

https://emacs.cafe/ledger/emacs/ynab/budgeting/2018/06/12/elbank-ynab.html

The Idea is that you don't want to think about taking money from a bucket to pay a expense. You just keep all your money in your "bank account" and when expenses are made, fava-envelope tracks the changes to buckets.

As for 4. the idea of YNAB is not that you move un-allocated to savings. You keep that money in the buckets where they belong, and they roll-over to the next month. You can move un-allocated into savings, but the general idea is that you would rather allocate money that you want to put to savings. Anything that rolls over becomes (emergency) cash ready in the buckets. Also if you overspend from one bucket, you zero that out and take the difference from another bucket.

from fava-envelope.

Zburatorul avatar Zburatorul commented on August 13, 2024

Thank you @andrewebdev, I understood that I didn't understand that ynab style of budgeting. Now it's more clear.
It appears that this extension expects me to spend/budget all the money in the (budget) asset accounts. That is why you had to allocate to an "opening balances" envelope.

from fava-envelope.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.