mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-06 20:15:33 -05:00
Open
opened 2026-04-14 19:51:15 -05:00 by GiteaMirror
·
46 comments
No Branch/Tag Specified
master
claude/hide-default-categories-1cwBZ
matiss/crdt-source-loading
matiss/crdt-protobuf
release/26.5.0
claude/update-issue-template-ykMNn
claude/fix-issue-7667-DPXi3
cursor/formula-feedback-improvements-4223
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
jfdoming/api-tokens-part-3
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-1
claude/speed-up-vrt-workflow-ZAyI5
claude/crdt-version-auto-publish-Ph1BH
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
worktree-mellow-strolling-dawn
matiss/browser-api
claude/api-consumer-verification-kfz1K
feature/enable-banking
cursor/transaction-table-rewrite-f077
pr-7454
claude/fix-issue-7410-LLLQ4
release/v100.0.0
revert-7350-trim-deps
revert-7220-sankey-report
revert-7242-fix/split-parent-update-corruption
revert-7281-generate-icons
claude/electron-to-tauri-migration-LjBN8
worktree-remotion
release/vv26.4.0-pre
claude/browser-compatible-api-QbhHh
claude/improve-cli-transactions-waTUY
claude/publish-react-native-ios-j8qoT
js-proxy
claude/fix-flaky-ci-job-5gDdz
react-query-rules
react-query-useSchedules
claude/nightly-theme-validation-scan-DzOGD
claude/debug-simplefin-error-ZuKzB
matiss/desktop-client-subpath-imports
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#16853
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @youngcw on GitHub (Nov 12, 2025).
Original GitHub issue: https://github.com/actualbudget/actual/issues/6134
Please put all comments and issues with the crossover point report here.
@tabedzki commented on GitHub (Nov 16, 2025):
When using the test budget file, if I click
3 months,6 monthsor1 yearorAll time, the tool reacts normally. If I click the other options (YTD,Previous YTD, orLast year), the app goes black and I have to reload the page to recover.Edit: no errors in the dev console or in the terminal running
yarn start.@jonner commented on GitHub (Nov 18, 2025):
I just tried this out with my current budget file, and it could not calculate a crossover point at first. I had to expend a fair bit of mental energy figuring out why the report didn't give useful information. As far as I can tell, it's almost all because it defaulted to linear expense projection type. My budget file only has about 6 months of data in it, and I have recently had some larger expenses (child entering college, for example), so this report thinks that my average monthly expenses are rising at a relatively high rate. Based on the graph that it shows, it thinks that my expenses will be over $50,000/mo in a few years and continue rising.
That's just completely nonsensical. I cannot think of a single case where somebody's monthly expenses would follow a linear projection, even if the user had a much longer budget history and the data was relatively stable. Even a small linear slope will result in a pretty significant change in expenses over e.g. 40 years. In the opposite scenario where recent months expenses were lower, I can imagine the linear projection predicting that I will have negative monthly expenses after a number of years. That doesn't provide a user any useful information about their crossover point. So at a minimum, I don't think that linear projection should be the default. In fact, I don't think that it should even be an option, since I can't imagine a scenario where it would provide useful information. Or am I missing something?
(I don't mean this to sound overly critical. I love the feature, and thank you to whoever added it)
@jonner commented on GitHub (Dec 3, 2025):
I have another issue with the chart after playing with it a bit more. I have selected the "hampel filtered median" projection. In the most recent month of my budget, I happened to have unusually low expenses, which caused my expense line to drop below my 'investment income' line for one month. So this report now thinks that due to this unusual low expense month, I've reached my crossover point:
The help text in the popup for the "expense projection type" option suggests that it remove outliers before calculating a median value, but apparently no median or projection is even calculated when the most recent month has expenses below investment income.
@jonner commented on GitHub (Dec 3, 2025):
Another nice thing that could be added to this graph is a way for a user to manually alter some of the calculated values.
On the expense side: perhaps I want to travel a lot in retirement so I want to plan for expenses to be 120% of my current median monthly expenses. Or perhaps I plan to live frugally in retirement and only need to reach 90% of my current monthly expenses. It would be nice to offer the user a way to alter the target monthly income in some way.
On the income side: it would also be nice to consider off-budget 'fixed income' sources in the calculations. For example, in the US, I might want to include an estimated monthly social security payment as part of my income, or monthly income from a defined-benefit pension. If there were an input box where a user could enter these sorts of fixed income sources, they could be added to the calculated "investment income" value to arrive at a more complete picture of retirement income.
@sebastianfredette commented on GitHub (Dec 3, 2025):
I noticed the warning "Historical return calculation includes contributions and may not reflect actual investment performance," and I think that's well put. But I do wonder if, instead of either using the over-inflated return estimate (factoring in contributions) or a rule-of-thumb return (7% or so), we could do some combination of the two.
Basically, could we put in an expected rate of return as well as an expected monthly contribution? That way monthly growth due to contributions would be calculated linearly while investment return would be calculated exponentially.
@mchal commented on GitHub (Dec 3, 2025):
I'm using version 25.12.0 released today.
Same problem with (YTD, Previous YTD, or Last year) - report goes blank; nothing in the console.
Feedback from me:
It would be great to show within a tooltip or somewhere what is projected Net worth based on selected income accounts.
there is no filter on expense categories which in my opinion is needed -
In my scenario - I'm using tags to exclude some expenses so that I can see how much I really spend monthly. If I have a one off big purchase on behalf of my company then it will inflate my "Target Monthly Income" - that's not my typical expense (in other reports I'm using tag "#company" to exclude those expenses)
Target Monthly Income is wrong when one specific "expense category" is excluded, i.e. stays the same regardless of date range (it works fine with others)EDIT: I think I was wrong - I misunderstood how monthly target income is calculated. I thought it's average of expenses for the provided date range, but it's just last month.
‼️
Example when it's wrong:✅
Example when it's good:@TerborX commented on GitHub (Dec 4, 2025):
Additional thoughts:
@dojoca commented on GitHub (Dec 5, 2025):
Wow that BeyondRule4 site is really good. Hopefully we get somethng similar to use with ActualBudget.
@nmathey commented on GitHub (Dec 6, 2025):
Great features: loving it!
Would it be possible to include inflation parameter?
@youngcw commented on GitHub (Dec 17, 2025):
Im noticing that the dashboard card shows a different number than if I click into the report. If I save the report again it seems to fix the problem. Ill see if I can recreate it, but my guess is that it has something to do with a month rolling over and certain values changing
@Lunchtime0614 commented on GitHub (Dec 17, 2025):
I'm not sure I understand how to set it up - do I create at least one account that is off-budget called retirement with a single line for beginning balance - nothing else just what my retirement account balance is? Then just pick budget categories in the report that I expect to continue in retirement and then just the one off-budget income source - the 'retirement' account?
If this is it - I tried this, and it showed 0 for income - just flatlined at 0 even though the investment account had a value and I entered an expected rate of return.
@sjones512 commented on GitHub (Dec 18, 2025):
@Lunchtime0614 - That is one way to do it, however there is no requirement that your retirement account be off-budget or that it only has a single line for beginning balance. You can have other transactions in the account just like you normally would any other account.
Yes, you want to pick the budget categories in the report that you expect to continue in retirement. For the income source you can select as many accounts as you'd like, their balance will just be lumped together.
My guess for why you are seeing 0 is that the report currently does not include the current month. This is because it tries to calculate your average expenses, and those will be artificially low in the current month before all of the money for the month has been spent. If your beginning balance for your retirement account is in December, the chart will not see any balance in your retirement account. You can either entire the balance the account had in November, or wait until January.
If this isn't the issue, maybe you can provide some screen shots to better help us understand what might be happening.
@youngcw I have a feeling you are correct and it is similar to the changes that #6383 . I forgot to update the Card when updating the main chart. I'll try and get a PR together soon.
@Lunchtime0614 commented on GitHub (Dec 18, 2025):
Yes this did solve the problem I was having. Thanks!
@Daedalus359 commented on GitHub (Jan 2, 2026):
All of the features for projections for returns and expenses produce unbelievable output on my Off budget account data for reasons others have already discussed. of the two implemented options, I agree that the median should be the default for expense projection. The return projection relies on assumptions that apply to a minority of people (those who have been "coastFI" for the entire analysis period, basically).
I think that a manually entered estimated return should be the default for return projections, and there should also be a space to manually input a monthly contribution of $x/mo. The monthly contribution number could also be used to better approximate a historical return based on real account data if the user's monthly contributions have been fairly steady over the analysis period. Getting good results with this approach would likely require setting different analysis periods for spending vs returns calculations for a lot of people.
While making these changes to manually specified parameters would bring the tool in line with already available web tools such as this one, just having a version of that kind of tool integrated into Actual which uses median spending data and which stays up to date with my current account balances would be helpful to me.
The current tool is already useful after some tweaks, and a lot of the pieces needed for my ideal version are already in place. Thanks for making it.
@jonner commented on GitHub (Jan 6, 2026):
It might also be nice to add a non-filtered median as a projection type to the crossover point report. If I have a large expense that is due once per year, I don't necessarily want to filter out that "outlier" expense from my projections since I will (probably) need to that that expense during retirement as well.
@Daedalus359 commented on GitHub (Jan 6, 2026):
I just took a look at
calculateHampelFilteredMedian, and there are a few things about it that don't make sense to me. Removing outliers just to calculate a median seems unlikely to have a meaningful impact on the final value. The use of the constant 1.4826 in the calculations suggests an assumption that the monthly spending data is sampled from a gaussian distribution. This is a typical and reasonable assumption to make, but it's also one which basically guarantees that the Hampel filtering won't make much difference for anyone with more than a few months of spending data. It doesn't make a big difference to leave it in, but it's worth keeping in mind when thinking about comments like the one above.A Hampel filtered mean could be useful. A median yearly mean could also be good, and that's probably the best choice of the three for dealing with periodic jumps in monthly spending.
@jonner commented on GitHub (Jan 6, 2026):
@Daedalus359 It does in fact have a meaningful impact on the final value in certain cases. For instance, in my budget, I have only six months of data, and in my crossover report, I have excluded an expense category that includes things like piano lesson tuition for my kids. But after toggling this category to include these extra expenses in the calculations, it made the crossover date sooner. Apparently the month that I paid the semester's piano lesson bill was a relatively low expense month and when I removed the piano lesson expense, it was low enough to be considered an outlier and was removed from analysis. But when adding that expense to the analysis, that month just became a slightly-below average expense month and therefore reduced the median value calculation.
What do you mean by "median yearly mean"? And how would that interact with the different date ranges you can select for the report?
@Daedalus359 commented on GitHub (Jan 6, 2026):
That's a fair point. I guess Actual is a new enough project to have a significant number of users with only a few months of budget data. I'm someone who has almost a decade of data imported from YNAB, so that's the case I was thinking about.
Median yearly mean could be:
This is admittedly not a good fit for a situation like yours, but I do think it could work well for people with seasonal spending patterns (a yearly vacation, for example) but who also have a handful of rare large expenses, e.g. house down payment / had to replace the car. It might produce similar output to a Hampel filtered mean, though, and the latter might be easier to implement via a minor tweak to the existing code.
Your case might be one where it makes sense to just let people manually input certain parameters for the report. The other reports already present in Actual would allow you to take a look at that much data and, combined with your own additional knowledge, get a reasonable guess for the monthly value you would want to project.
@sjones512 commented on GitHub (Jan 7, 2026):
Perhaps it would be best to get rid of the "Expense Projection Type" parameter altogether and just replace it with an unfiltered median or mean, which would simplify the report.
The two shortcoming I see with that are
Good discussion. In the mean time I have been using the Hampel Filtered Median and it does seem to work ok.
@jonner commented on GitHub (Jan 8, 2026):
Here's what I'm currently playing with:
Sumary:
Comments welcome. UX is not my strong suit, so the UI is a little bit rough, but as a proof of concept I think it works pretty well.
@TerborX commented on GitHub (Jan 8, 2026):
I really like the additions of the target income adjustment and the custom growth option (especially expected monthly contribution piece of that).
Having the filter option for expenses is definitely something that interests me. Without playing with it, I'm sure if they should fully replace the category picker that currently exists. Sometimes the checkboxes are easier to manipulate, but the quick switch ability of saved filters might be enough of a favorable trade-off.
Any thoughts on adding additional crossover points? They might be useful for some folks and of course there are various interpretations of what these mean. I got my definitions from: https://choosefi.com/podcast-episode/032-milestones-fi
@sjones512 commented on GitHub (Jan 8, 2026):
With changes for contributions, I would consider having the same tools and methods decided on for Expenses to use for Contributions.
So you could specify which category(s) are contributions and we use the same median method for projecting them in the future.
I guess a downside is you would still probably need a text box for contributions for payroll deductions that aren't tracked in the budget, and supporting both might crowd the UI.
But the power of having this in the budget tool and not a separate spreadsheet is using the Actual data.
@jonner commented on GitHub (Jan 8, 2026):
Hmm, I didn't even consider this, since it wouldn't really be useful to me. The majority of my retirement account contributions come from payroll deductions directly into an investment account and therefore are not even present in my on-budget transaction data. My (possibly ignorant) gut feeling is that the vast majority of people would not have complete retirement contribution information in their budget and therefore it probably isn't worth complicating the UI to add this feature. But I could be wrong about that.
@sjones512 commented on GitHub (Jan 8, 2026):
Agreed. I imagine I'm in the minority tracking payroll deductions in the budget.
But if we make the switch from the category selector to the more robust (and complex) transaction filter would you be able to select transactions by payee in off budget accounts that could be your payroll deducted contributions?
This also raises the thought of if there should be an "additional income" text box for people that like to try to include other retirement income that maybe be hard to track in the budget, like social security or a pension.
@TerborX commented on GitHub (Jan 9, 2026):
I also track payroll deductions so I have retirement contribution expense categories to exclude. Filtering transfers might work to exclude them for me since I show them that way.
@jonner commented on GitHub (Jan 9, 2026):
Nope, I don't track my retirement account besides reconciling the total balance every so often. So contributions and investment growth are not distinguishable.
@sjones512 commented on GitHub (Jan 9, 2026):
Fair enough. I guess I didn't mean you individually, but that would be a use case we could support if we decided to try to use the Transaction Filter instead of the Category Filter for identifying contributions and projecting them.
@nmathey commented on GitHub (Jan 9, 2026):
Hi guys,
I’m not sure this is the right place to ask, but should we also consider the inflation rate? Would it make sense to include this parameter when estimating the target income?
@jonner commented on GitHub (Jan 9, 2026):
There's already a PR for inflation: #6495
@sjones512 commented on GitHub (Jan 9, 2026):
I wonder if the inflation parameter is worth it? Can't it kind of be approximated by using the real return instead of the nominal return for the expected return?
@jonner commented on GitHub (Jan 9, 2026):
Yes, if you enter a custom 'estimated return' value, then you can make a conscious decision to discount that rate by the rate of expected inflation in order to approximate the inflation parameter. But this may not be obvious to the casual user, whereas if there was an inflation parameter with a reasonable default, then casual users would be more likely to make sane projections.
In addition, if you use the auto-calculated return rate, then inflation is not accounted for at all.
@youngcw commented on GitHub (Jan 12, 2026):
Im still having issues with the dashboard card showing a different number than if I click into the report. Im guessing its something to do with the month change still.
@sjones512 commented on GitHub (Jan 13, 2026):
@youngcw odd. Is it possible that the chart needs to be saved again after the latest changes were pushed?
@youngcw commented on GitHub (Jan 13, 2026):
@sjones512 I saved it again and there is still a difference in numbers.
@youngcw commented on GitHub (Jan 21, 2026):
Is anyone else seeing an issue on edge where the graph constantly grows taller and taller? (when the report is opened)
@jonner commented on GitHub (Jan 21, 2026):
I just noticed that. git bisect suggests the offending commit is
de0f4e9440@sjones512 commented on GitHub (Jan 22, 2026):
@youngcw Are you still seeing different numbers on the dashboard card and the full report? If so, are you able to share any more details. I'm not sure if it would be possible to share a
metaobject that reproduces the issue?@youngcw commented on GitHub (Jan 22, 2026):
I am still seeing it. Making a brand new one also gives different numbers. Here is the export of that report. Doesn't seem to have anything special in it. Using a demo file I don't see the problem, just with my budget.
dashboard.json
@ezgibas commented on GitHub (Jan 23, 2026):
Great feature! There seems to be a formatting issue on the right upper corner. (Screenshots: full screen vs. half screen on a 15.6 in laptop using Firefox)
@Mikesco3 commented on GitHub (Jan 31, 2026):
It should be an estimated moving average in my opinion... and to make it even better it would be nice if one could even chose the EMA size, (1 year, 6 months, 3 months), I feel that would show better info...
You could have two lines where based on one ema the proyection leads to one figure, and based on the other the projection leads to another.
@Mikhail773 commented on GitHub (Feb 6, 2026):
Curious if it would make sense to have more configurable custom return percentages and expected contributions. It would be feasible to expect higher returns further from retirement and for a more conservative portfolio mix closer to retirement. Maybe an option for a glide path or or something along those lines.
@youngcw commented on GitHub (Feb 12, 2026):
@sjones512 I think the difference in data between the dashboard card and the open report is because of months used. I get the same crossover date if I shift each month back by 1 in the open report
@pstone05 commented on GitHub (Feb 12, 2026):
For me it looks like the difference in Years to Retire between the dashboard card and the open report is due to hidden categories. When I select to show hidden categories and save the report the years to retire is then matches the dashboard card.
@MatissJanis commented on GitHub (Apr 1, 2026):
@sjones512 just checking in: are there issues we should address for crossover reports before removing the feature flag? Would love to clean up the feature flag.
@youngcw commented on GitHub (Apr 1, 2026):
@jonner Do you want to take over the inflation adjustment PR? It was just closed for being stale. I think that is the last thing that would be nice to add before mainlining.
@jonner commented on GitHub (Apr 2, 2026):
I will try to take a look soon