actualbudget / actual

A local-first personal finance app
https://actualbudget.org
MIT License
15.75k stars 1.22k forks source link

[Bug]: Future transactions should not be included in the account balance summary #2354

Open tavlima opened 9 months ago

tavlima commented 9 months ago

Verified issue does not already exist?

Is this related to GoCardless, Simplefin or another bank-sync provider?

What happened?

TL;DR; I'd like to see my balances as-of today in the left panel.

I have a lot of future transactions (mostly credit card installments) that I create ahead of time and that is messing up with the accounts balance summary shown in the left panel. I don't think future transactions should impact my current balances, as the balances should match what is reported by the bank.

It may be debatable if that is ok for credit card accounts, but given Actual doesn't have any concept of "credit card account", the same rule is applied for everything, which, I think, is wrong.

What error did you receive?

No response

Where are you hosting Actual?

None

What browsers are you seeing the problem on?

No response

Operating System

None

youngcw commented 9 months ago

Are you adding those early installments in place of schedules? Schedule are meant for this, were you can see the transactions before hand but they don't actually affect the balances

tavlima commented 9 months ago

They are monthly installments, not yearly. And I get schedules are meant for that, but

1) I couldn’t find any API for that (those are coming from my custom importer, that pulls from the bank);

2) does it really matter? IMHO, future transactions, no matter the “source”, should not affect current balance, only forecasts. Indeed, there is a feature request to treat future transactions just like scheduled.

On Sat, Feb 10, 2024 at 23:24 youngcw @.***> wrote:

Are you adding those early installments in place of schedules? Schedule are meant for this, were you can see the transactions before hand but they don't actually affect the balances

— Reply to this email directly, view it on GitHub https://github.com/actualbudget/actual/issues/2354#issuecomment-1937397668, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJZKI5J5TDI5RUBVAZPQHTYTATWFAVCNFSM6AAAAABDDEXA3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZXGM4TONRWHA . You are receiving this because you authored the thread.Message ID: @.***>

Waseh commented 9 months ago

I agree with this. I use the gocardless integration to pull transactions from my bank which indeed also adds future transactions (bills scheduled to be paid and so forth) which is messing up the current balance.

youngcw commented 9 months ago

I disagree that future transactions should be excluded from the budget or account summary. I would expect that to cause more confusion than help. That also would remove the possibility of budget projections.

I do think it would make sense to not import transactions that are in the future with bank syncing.

Teprifer commented 9 months ago

I disagree that future transactions should be excluded from the budget or account summary. I would expect that to cause more confusion than help. That also would remove the possibility of budget projections.

I do think it would make sense to not import transactions that are in the future with bank syncing.

I'd seen the comments flow through on this and wasn't sure what I thought for a bit because I could see some reasons each way, but ultimately I'm inclined to agree. If a transaction has been added, then it should affect the balance. Having two different rules for how transactions affect an account and the budget doesn't flow.

I can see the view with this being inconsistent with the notion of 'now', but if someone is adding a transaction, it should behave the same as any other transaction to remain consistent in that respect, that it's in the future is beside the point. There are no doubt workflows setup off the current approach for some where they expect their future transactions to affect the balance. so they can 'forecast'.

Whether these shouldn't be imported at all, or imported as an 'upcoming' record in the same manner of a one off scheduled transactions that can be posted manually (or automatically when the date comes due). I don't know.

Kidglove57 commented 9 months ago

I agree @Teprifer but I have also noted how my most recent alternative app (Banktivity on Mac) deals with this. It gives the option to display in the sidebar either Today’s Value, Today's Cleared Value or the Total Value (ie net of all future posted transactions). However, it does include future manually posted transactions in the budget because they are posted - but not scheduled transactions. Apologies if I have misunderstood any of the previous comments but for me, once a transaction is manually posted on the ledger (or imported) in Actual, even if with a future date, it will inevitably show both in the budget and in the account balance. Anything else seems to me like a recipe for confusion. UNLESS a choice is given as to what account balance to display in the side bar.

It occurs to me that if we allow the sidebar balance to be different then the budget will also look as if it is completely out of kilter - ie budget available should = total of all on budget account balances.

tavlima commented 9 months ago

To be clear, I’m not saying those should be excluded from the budget, just from the accounts totals/summary, as I think it is more intuitive to display the current values in your bank account, not future. Budgeted amounts in the future (and scheduled/future transactions for that matter) seem to work just fine. I’m only talking about the accounts summary.

nYNAB, for example, shows the current balance. GNUCash, as the accounting app that it is, can display a column with the “posted” and another with the “current” balance of the accounts.

As a solution, I think a settings/preference option would suffice, as I don’t think this would change how things are internally calculated too much, but mostly just displayed. A custom query to the DB with a date constraint would likely be needed (assuming that is not being computed in the UI), but not much else.

I hope that clears things up.

rich-howell commented 9 months ago

I raised this a long time ago as it completely breaks my workflow. Here is an example.

I get paid on the 23rd of the month, I usually get a pay slip one week before which tells me exactly how much I am going to get paid.

I enter the amount into the Account Register with a date of the 23rd (which is almost always in the future)

The value that I add appears in my To Be Budgeted and my Account Balance increases by the amount I added.

This is wrong in my mind, because my bank balance does not yet have that extra money, I have just added it ready.

youngcw commented 9 months ago

To be clear, I’m not saying those should be excluded from the budget, just from the accounts totals/summary, as I think it is more intuitive to display the current values in your bank account, not future. Budgeted amounts in the future (and scheduled/future transactions for that matter) seem to work just fine. I’m only talking about the accounts summary.

How would the be functionally different than looking at the cleared vs uncleared balance? If the transactions are still included in the budget view then this sounds like the same number as the uncleared balance.

rich-howell commented 9 months ago

To be clear, I’m not saying those should be excluded from the budget, just from the accounts totals/summary, as I think it is more intuitive to display the current values in your bank account, not future. Budgeted amounts in the future (and scheduled/future transactions for that matter) seem to work just fine. I’m only talking about the accounts summary.

How would the be functionally different than looking at the cleared vs uncleared balance? If the transactions are still included in the budget view then this sounds like the same number as the uncleared balance.

Have a look at my example above this reply.

youngcw commented 9 months ago

@rich-howell You and Tavlima are giving different examples. He is saying don't show in the account but do include on budget, you are saying exclude from budget (and maybe account?).

Kidglove57 commented 9 months ago

Future but unposted regular transactions should (in my view) be dealt with via scheduled transactions - updating the scheduled figure as needed. Isn’t that what schedules are designed for ?

I have seen other folk say that they want to post all their transactions for the month early to see the effect on their budget and accounts so it sort of feels that the devs can’t win whatever they do. Unless of course an option is given as to which bank balance should be displayed.

Waseh commented 9 months ago

I disagree that future transactions should be excluded from the budget or account summary. I would expect that to cause more confusion than help. That also would remove the possibility of budget projections.

I do think it would make sense to not import transactions that are in the future with bank syncing.

From my perspective in regards to the bank syncing just not importing transactions that are in the future would be my preferred solution, or at least getting the option of not importing transactions that are in the future.

youngcw commented 9 months ago

From my perspective in regards to the bank syncing just not importing transactions that are in the future would be my preferred solution, or at least getting the option of not importing transactions that are in the future.

@Waseh Could you make a separate feature request or issue ticket for that? I feel like that should at least be an option.

tavlima commented 9 months ago

How would the be functionally different than looking at the cleared vs uncleared balance

It would be different as I wouldn't have to go through each of the accounts having future transactions to get a hold of their current balance.


Let's see how Actual currently behaves... Given this account/transactions...

image

This is what I see in the budget section...

image

I honestly can't, for the life of me, understand how some do not consider this inconsistent... How can my "To Budget" for February show 100.00, while the account summary itself shows only 75.00?


The options, as I see:

Introduce a settings/preference option on whether to show the posted or current balance in the accounts summary

Pros: existing users that are OK with the current behavior can continue with their lives, while users like me (and seemingly others) can switch to more intuitive behavior (as we see it, ofc).

Cons: one more setting for the users, which some may consider a problem.

Introduce an API to create/update scheduled transactions

Pros: no behavior change in the app/calculations

Cons: switching between two APIs for importing transactions (past vs future) will definitely increase the complexity of the importers.

Additional notes: This is good in itself, as exposing additional APIs will definitely be useful (if not to me, but others). In this particular use-case, though, I'm afraid it will be really troublesome to implement, as the API for scheduled transactions should (IMHO) behaves the exact same way as regular transactions in regards to match/deduplication. It is important to have in mind that a transaction that is in the future as of today (and thus a "scheduled transaction") may no longer be tomorrow, when the importer runs again. This will be tricky to handle in the importers as well.

youngcw commented 9 months ago

I honestly can't, for the life of me, understand how some do not consider this inconsistent... How can my "To Budget" for February show 100.00, while the account summary itself shows only 75.00?

In this case your budget and account do have 100 left in February. The expenditure only happens in March which shouldn't affect February since that is in the future from February. By adding those March transactions you are living in the future. If those transactions weren't there the 100 would be exactly what would be in the account, so if the transactions were added in March, when they posted, the 100 would still be accurate for February and would still be sitting there.

So at the end of February your account has $25, TB has 100 and the budget has -75. Which is correct for the month where 100+(-75)=25. Then for March the math is still correct with 125+(-50)=75.

rich-howell commented 9 months ago

Future but unposted regular transactions should (in my view) be dealt with via scheduled transactions - updating the scheduled figure as needed. Isn’t that what schedules are designed for ?

I have seen other folk say that they want to post all their transactions for the month early to see the effect on their budget and accounts so it sort of feels that the devs can’t win whatever they do. Unless of course an option is given as to which bank balance should be displayed.

You can't make deposits using schedules, at least I can't in my install or in the demo.

youngcw commented 9 months ago

You can't make deposits using schedules, at least I can't in my install or in the demo.

That sounds like a bug. I have my paycheck as a schedule ... hmm looks like this broke again. I fixed that once before. Chrome works for me, but not firefox

Teprifer commented 9 months ago

You can't make deposits using schedules, at least I can't in my install or in the demo.

That sounds like a bug. I have my paycheck as a schedule ... hmm looks like this broke again. I fixed that once before. Chrome works for me, but not firefox

Just tested in Chrome desktop, can't toggle the - to a + in the demo. Tried Chrome mobile(view desktop site) for my own install of three latest release and I can't toggle there either.

youngcw commented 9 months ago

Just tested in Chrome desktop, can't toggle the - to a + in the demo. Tried Chrome mobile(view desktop site) for my own install of three latest release and I can't toggle there either.

Ok, so it is only working with existing schedules for me. So a work around for now is to create a schedule with the wrong amount. Then edit the schedule and it should work

tavlima commented 9 months ago

So at the end of February your account has $25, TB has 100 and the budget has -75. Which is correct for the month where 100+(-75)=25. Then for March the math is still correct with 125+(-50)=75.

I never questioned the math. From the budget perspective, it looks good enough for me. It is the account summary that is inconsistent, IMO.

Kidglove57 commented 9 months ago

You can't make deposits using schedules, at least I can't in my install or in the demo.

Thanks for spotting this @youngcw. I was puzzled as I have about a dozen scheduled income events.

As an aside I am mulling over how the software should react when used in a way for which it was never designed. I would imagine that this use case would cause a problem for any envelope budgeting system.

youngcw commented 9 months ago

That sounds like a bug. I have my paycheck as a schedule ... hmm looks like this broke again. I fixed that once before. Chrome works for me, but not firefox

For everyone here. There isn't a bug. You have to make the amount non-zero before you can change the sign. Its weird and probably should be changed to not be confusing. See #2360

tavlima commented 9 months ago

I would imagine that this use case would cause a problem for any envelope budgeting system.

@Kidglove57, if you are talking about the future transaction issue that is being discussed here, I already called out how that works in other systems.

nYNAB, for example, shows the current balance. GNUCash, as the accounting app that it is, can display a column with the “posted” and another with the “current” balance of the accounts.

tavlima commented 9 months ago

For the reference, this is nYNAB, which I think is much more intuitive and expected.

image

image

It doesn't make any distinction between future posted transactions or recurrent scheduled expenses: they are all future and (perhaps) subject to change, thus do not impact either budgeted amounts (the expense/income didn't happen yet) or the balances (for the same reason).

youngcw commented 9 months ago

@tavlima I would be open to adding something like this as long as its possible to post early, thus applying to the budget.

Kidglove57 commented 9 months ago

I was referring to @youngcw comments about posting into the following month.

However in fairness to you, I have never posted transactions more than a day or so in advance - I just look at the prospective running balance alongside the upcoming scheduled transactions to see where I am headed.

I also expand the balance figure at top left of each account register to see what the notional balance on the account is (after all posted transactions) and what the current cleared balance is and what uncleared transactions remain. So I would be referencing the cleared balance as the correct balance on my bank account.

I have no objection to a menu giving users the choice as to which balance is displayed in the sidebar. Although I do want to retain as a default the basic logic that: Balance of all "for budget" accounts = Balance available in budget + income held for next month

tavlima commented 9 months ago

@tavlima I would be open to adding something like this as long as its possible to post early, thus applying to the budget.

Couldn't that also be gated by the same settings? image

youngcw commented 9 months ago

yes it could. Im just saying that the option needs to be there before any changes are made

Kidglove57 commented 9 months ago

It doesn't make any distinction between future posted transactions or recurrent scheduled expenses: they are all future and (perhaps) subject to change, thus do not impact either budgeted amounts (the expense/income didn't happen yet) or the balances (for the same reason).

I recall this now from nYNAB (its a while ago for me) - i always explained it to myself as nYNAB treating any future dated transaction as if it were a one-off scheduled transaction.

I looked at another envelope budgeting app (Moneywell on Mac). That displays in a way that would suit your use case - it treats all future dated transactions as pending and not part of the sidebar balance. Hands up, I have used Actual since April 2019 and got used to its way of doing things and as a result rarely post future dated transactions. As I say, I just use the arrows to expand the account balance view at the top of each account register so as to easily see what the cleared and uncleared balances are. PS Banktivity on Mac offers a choice as to which balance is displayed in the side bar PPS I am not trying to be quarrelsome but I would regard this as a Feature Request rather than a Bug since for right or wrong the current treatment is by design.

rich-howell commented 9 months ago

The moment this becomes a feature request it will loose any traction it has and just fall into the endless pit of ideas. Hopefully someone is willing to pick this up before that happens.

nYNAB does exactly what i would like, if I create a one of schedule for a future posted transaction, after the posted date will it still appear in the schedules list? So I could end up with hundreds of schedules in a list that potentially have passed?

Kidglove57 commented 9 months ago

So I could end up with hundreds of schedules in a list that potentially have passed?

My experience is that a completed schedule is hidden from the schedules list - but I take your point. I only need a very few one off future dated transactions a year so I guess this is a case of various users commenting who have very different use cases. In fairness to the original Dev I assume he felt that the display (by clicking the arrows) of the cleared, uncleared balances at the top of each register would address this?

HOWEVER I am all for pending transactions being marked as such and not included in the account balance OR a choice being given to the user.

Did you want these future transactions to be hidden from both the account balance AND the budget until their due date arrives? Other users seemed in the past to have varying opinions about this. Some wanted to post all their month’s transactions in advance to see the effect on their budget. I think that is where I have got a bit confused and apologies therefore to @tavlima for my initial misunderstanding.

A question - UNLESS the budget is unaffected, would this not mean that the available balances in the budget (net of future transactions) would be out of line with the recorded balance for the “for budget” accounts which could lead to difficulties for users reconciling this. Unless the “cleared total” balance figure available already against the Budgeted Accounts view (top left of register revealed by arrows) is used for this?

Waseh commented 9 months ago

From my perspective in regards to the bank syncing just not importing transactions that are in the future would be my preferred solution, or at least getting the option of not importing transactions that are in the future.

@Waseh Could you make a separate feature request or issue ticket for that? I feel like that should at least be an option.

Sure thing, just did - #2361

xentara1 commented 9 months ago

Stupid question and apologies if already covered. should this not be handled by cleared vs uncleared transactions. i.e future transactions are not cleared. This can then be seen in the uncleared breakdown. (Setting can be set to adjust if cleared or uncleared is default view) Then once the transaction actually clears it can be marked as such and thus feed the cleared balances.

This way the only change needs to be a setting adjusting if the default view is for cleared balances only or all balances.

Kidglove57 commented 9 months ago

This way the only change needs to be a setting adjusting if the default view is for cleared balances only or all balances.

That is certainly the way I see it too.

Teprifer commented 9 months ago

This way the only change needs to be a setting adjusting if the default view is for cleared balances only or all balances.

That is certainly the way I see it too.

Can already add a filter, but it doesn't save.

I'm not sure repurposing the cleared flag is ideal. It would make it difficult for anyone with future transactions, and current transactions that haven't bank cleared yet.

Any proposal, in my view, shouldn't break existing workflows and app behaviour.

I think the ideal method is some form along the lines of how scheduled transactions show before they're due. Similar to YNAB upcoming.

xentara1 commented 9 months ago

It’s not repurposing the cleared flag. A uncleared transactions is simply a transaction that the bank is aware of but is subject to change.
This to me sounds the same as a future transaction, which is a transaction you are aware of, but is subject to change.

From my understanding this issue is not about scheduled transactions which are treated differently already. It’s specifically about future dated transactions. Which as per above just sound like uncleared transactions to me.

Teprifer commented 9 months ago

It’s not repurposing the cleared flag. A uncleared transactions is simply a transaction that the bank is aware of but is subject to change. This to me sounds the same as a future transaction, which is a transaction you are aware of, but is subject to change.

From my understanding this issue is not about scheduled transactions which are treated differently already. It’s specifically about future dated transactions. Which as per above just sound like uncleared transactions to me.

It is repurposing, at the moment a transaction has an impact, cleared or not. To user it as a filter you'd have to stop it affecting budget calculations too. Now the behaviour has changed and it can't be used as it currently is.

Uncleared transactions are not future transactions, for example a payment involving a foreign currency which the bank takes time to settle the exact amount. It has happened, you want it reflected in your budget, but you don't want to mark it cleared as the value may change slightly.

A future transaction just outright hasn't happened, which is why they're asking for it not to affect balances or the budget.

These are two very different behaviours.

tiagodj commented 7 months ago

Here are my 2 cents. This is a practical example of mine, that brought me here to this thread.

I have multiple checking accounts. I have bills and credits in both of them. The option of moving everything to a single account, for me, is not ideal.

So, a scenario that I see myself in often is: how much money do I need in this account in the foreseeable future, in order to cover incoming charges?

For schedules (expected and transactions with a known amount), it works fine.

But, for example, for credit card payments it is trickier. CC payments are not really payments; they are transfers. So the money for the purchases made in the card are already accounted for in the budget, but are not necessarily in the correct account where the transfer payment will come out of.

Now, I've received the CC bill and I know it will be debited, for example, in 2 and a half weeks. But I don't have the money in the right account right now, for example because I am paid bi-weekly and haven't received the money yet. Or maybe the money is in an investment account, because I want to make some interest gains in the mean time.

So in this scenario, I'd like to enter a future transfer transaction, with the CC bill amount, so that I can see in the upcoming list that I will need to have this money ready by that day.

If I already have enough money to move beforehand, sure, I could do that. But when I don't have it right away, this visibility gives me a heads up to transfer the money in in time.

An extra bonus feature that could spawn from this is to have some kind of Alert in the UI showing that I have a transaction in X days for a specific account, but there are insufficient funds in that account (is there such a functionality? I haven't been in this scenario yet to see it).

Being able to see the future is very useful, and I believe it should be easier to manage that. I understand that the envelop system uses the money we have right now, and I agree with it. But that doesn't stop us from adding this extra layer to prepare for what's coming up.

cati-chatou commented 5 months ago

Another case of future transactions is as following:

I know that I will have an expense on specific date, I know the amount. It is recurring but not regular expense, it does not make sense to put it on schedule. I want to see it in my future expenses so I can plan additional budget money for it. But I don't want it to impact my accounts balances or budget until the transaction actually happen, especially that in might be more than month in future.

Toolkit for YNAB additionally shows up sum of future transactions in specific month for category. This is very useful for budgeting flow: planning budget - using template as usual - seeing that I have this additional expense planned - allocating additional money.

The way Actual does it currently is plenty confusing - I have a planned (future) transaction and it treats it as "Spent", affecting budget and accounts (I caught myself few times thinking: oh no, I didn't budgeted for this - while I did, it just already have "eaten" that budget, treating it as already spent).

I think that part of budgeting is to plan for the future - be it saving, a transfer between accounts to assure that I will have the payments covered, adjusting budget to planned transactions.

Elarcis commented 1 month ago

Hi, chiming in with a personal use case:

In my country, mortgages payments are scheduled when I contract my loan — I know exactly what I’m going to pay each month for the next 10 years!

But the amount varies for each payment — each month it’s a little lower due to fees being higher at the start of the loan. I also have an off-budget account representing my loan, with a negative balance — excluding bank fees. In YNAB I just scheduled my transactions for the whole year as a split transaction, a set amount of which goes into my “loan” account, the rest goes to my bank. This represents more than €7,000 each year, which makes a non-negligible impact on my account balance on Actual.

Doing so with schedules and rules is incredibly tedious. I need to create a schedule for each month with a precise amount, then edit it as a rule and use the rule editing UI to set that to a split transaction.

Some features ideas that would help in these cases:

jfdoming commented 1 month ago

Hi, chiming in with a personal use case:

In my country, mortgages payments are scheduled when I contract my loan — I know exactly what I’m going to pay each month for the next 10 years!

But the amount varies for each payment — each month it’s a little lower due to fees being higher at the start of the loan. I also have an off-budget account representing my loan, with a negative balance — excluding bank fees. In YNAB I just scheduled my transactions for the whole year as a split transaction, a set amount of which goes into my “loan” account, the rest goes to my bank. This represents more than €7,000 each year, which makes a non-negligible impact on my account balance on Actual.

Doing so with schedules and rules is incredibly tedious. I need to create a schedule for each month with a precise amount, then edit it as a rule and use the rule editing UI to set that to a split transaction.

Some features ideas that would help in these cases:

  • Allow duplicating schedules and/or rules (especially one-off schedules)
  • Allow inputting split transactions in schedules (or even just transactions, with note and category, automatically translated into a rule)
  • Facilitating split transactions in rules, like showing the split transaction editor (with payee, category and notes) with the transaction total amount locked, for example.

I see value in the use case for sure! That said, as of a few releases ago you can input splits in rules (and also in schedules by clicking "Edit as rule"). Have you had a chance to try that? Is something not working as it should? (Disclosure: I'm the person who worked on this feature, so I'm interested in feedback 😅)