mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-11 20:44:32 -05:00
[Bug]: Filtered balance on Split's notes not calculating properly #1863
Open
opened 2026-02-28 19:56:35 -06:00 by GiteaMirror
·
2 comments
No Branch/Tag Specified
master
matiss/oxlint-no-floating-promises-require-array-sort-compare
matiss/fix-6804
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
react-query-rules
react-query-useSchedules
matiss/separate-lint-format
dependabot/npm_and_yarn/ajv-6.14.0
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.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#1863
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 @Rescue9 on GitHub (Feb 14, 2025).
Verified issue does not already exist?
What happened?
When trying to filter transactions by Note, the "Filtered Balance" doesn't include the split if each line doesn't also have the note.
I would expect that the split be included if each split note is empty. If each split has a different note, then those splits should be filtered accordingly. For example, in the image, if the note on the External Purchases split said "Family" I would not expect it to calculate in the "contains kro" filter. However, those splits that are empty should calculate. Otherwise, every split needs to have all fields filed out to calculate properly.
How can we reproduce the issue?
How can we reproduce the issue?
Create a split transaction, notate the main split, but not the individual sub-splits, filter by note. Filtered Balance will be different than expected, and not show non-notated sub-splits.
Where are you hosting Actual?
Locally via Yarn
What browsers are you seeing the problem on?
Chrome, Firefox
Operating System
Windows 11
@alecbakholdin commented on GitHub (Feb 26, 2025):
I looked into this and I'm able to reproduce it as well, not just in the account filter but also in reports if you make a custom report and add a filter that matches both child and parent, you will only see the parent transaction. The issue seems to be happening here
5214549ed3/packages/loot-core/src/server/aql/schema/executors.ts (L98)(Note the
${s.from}.is_parent = 0) For aggregate queries we simply don't consider split parent transactions at all. I don't immediately see a good solution to this and I'm new to the codebase so probably shouldn't be modifying something as integral as this right now.@Mansarde commented on GitHub (Jun 4, 2025):
But what if both the parent and one of its child-transactions had "Kroger Card" in the notes?
A) Should only the parent amount be counted?
B) Or only the child amount?
C) Or both?
If A), then why does the parent amount take precedence over the child amount? After all, if a child doesn't match the note, why should its amount be be indirectly counted (seeing as it's a part of the parent amount)?
If B), then we have how it works right now. Only the amounts of child entries that match will be counted. If only a parent matches, but no child, then the matched amount might be 0, but if you select that parent, the selected amount will count the parent.
If C), then you would be counting the child amount two times, because it's already included in the parent amount.
Out of these three options, B) seems to produce the least issues IMO.
In your example, simply select all and see the difference between the matched amount and the selected amount.
The latter is probably what you were seeking, but the former is also useful information in case you tagged specific split-transactions.