[PR #7884] [WIP] [AI] Add tracking budget forecast mode #85148

Open
opened 2026-05-19 10:31:00 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7884
Author: @samaluk
Created: 5/18/2026
Status: 🔄 Open

Base: master ← Head: feature/tracking-budget-forecast-mode


📝 Commits (8)

  • 5b422e5 [AI] Add forecast source types
  • b28aafe [AI] Add tracking budget forecast projection helper
  • 8c46a09 [AI] Route forecast generation by source
  • 4e30e7d [AI] Add forecast source selector to report
  • c79dfe0 [AI] Persist forecast source on dashboard widgets
  • 934b526 [AI] Add tracking forecast UI coverage
  • 860a307 [AI] Add tracking budget forecast VRT coverage
  • e35cb73 [AI] Document tracking budget forecast mode

📊 Changes

19 files changed (+602 additions, -63 deletions)

View changed files

📝 packages/desktop-client/e2e/page-models/budget-page.ts (+63 -2)
📝 packages/desktop-client/e2e/page-models/navigation.ts (+9 -0)
📝 packages/desktop-client/e2e/page-models/reports-page.ts (+12 -0)
📝 packages/desktop-client/e2e/reports.test.ts (+23 -1)
➕ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-1-chromium-linux.png (+0 -0)
➕ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-2-chromium-linux.png (+0 -0)
➕ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/src/components/budget/MonthPicker.tsx (+1 -0)
📝 packages/desktop-client/src/components/reports/reports/BalanceForecast.tsx (+110 -42)
📝 packages/desktop-client/src/components/reports/reports/BalanceForecastCard.tsx (+23 -6)
➕ packages/desktop-client/src/hooks/useBalanceForecast.test.ts (+41 -0)
📝 packages/desktop-client/src/hooks/useBalanceForecast.ts (+41 -9)
📝 packages/docs/docs/experimental/balance-forecast-report.md (+7 -2)
📝 packages/loot-core/src/server/forecast/app.test.ts (+48 -0)
📝 packages/loot-core/src/server/forecast/app.ts (+38 -1)
➕ packages/loot-core/src/server/forecast/forecast-tracking-budget.test.ts (+88 -0)
➕ packages/loot-core/src/server/forecast/forecast-tracking-budget.ts (+93 -0)
📝 packages/loot-core/src/types/models/dashboard.ts (+2 -0)
📝 packages/loot-core/src/types/models/forecast.ts (+3 -0)

📄 Description

Description\n\nAdds a tracking budget forecast source for the Balance Forecast report. In tracking budget files, the report now projects balances from future budgeted income minus budgeted expenses, while keeping the existing schedule/account-based forecast for envelope budgeting and cashflow forecasting.\n\n## Related issue(s)\n\nRelates to #7669\nJira: N/A\n\n## Testing\n\n- Added unit coverage for tracking-budget forecast projection and request building.\n- Added E2E coverage for the tracking budget forecast report flow.\n- Verified the report UI updates for source selection, ending balance, and lowest visible point.\n\n## Checklist\n\n- [x] Release notes added (see link above)\n- [x] No obvious regressions in affected areas\n- [x] Self-review has been performed - I understand what each change in the code does and why it is needed\n\n


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/7884 **Author:** [@samaluk](https://github.com/samaluk) **Created:** 5/18/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `feature/tracking-budget-forecast-mode` --- ### 📝 Commits (8) - [`5b422e5`](https://github.com/actualbudget/actual/commit/5b422e5767b94acd306713f2112722f543b5e5d1) [AI] Add forecast source types - [`b28aafe`](https://github.com/actualbudget/actual/commit/b28aafef726d7166e442879e23023ada9a489a4d) [AI] Add tracking budget forecast projection helper - [`8c46a09`](https://github.com/actualbudget/actual/commit/8c46a09c9a24019a093e50fd93bd19785e778959) [AI] Route forecast generation by source - [`4e30e7d`](https://github.com/actualbudget/actual/commit/4e30e7dbb0c080154b4bd7568543fd916e57b107) [AI] Add forecast source selector to report - [`c79dfe0`](https://github.com/actualbudget/actual/commit/c79dfe057842d4e17cccfe89684478cc58979f3f) [AI] Persist forecast source on dashboard widgets - [`934b526`](https://github.com/actualbudget/actual/commit/934b5262c17dcee61722bb91554200804a61c980) [AI] Add tracking forecast UI coverage - [`860a307`](https://github.com/actualbudget/actual/commit/860a307cd9eb1d7cb311d2e8c626439da1dc3256) [AI] Add tracking budget forecast VRT coverage - [`e35cb73`](https://github.com/actualbudget/actual/commit/e35cb73bda2002c4172bcd98abfbd7066af3560c) [AI] Document tracking budget forecast mode ### 📊 Changes **19 files changed** (+602 additions, -63 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/page-models/budget-page.ts` (+63 -2) 📝 `packages/desktop-client/e2e/page-models/navigation.ts` (+9 -0) 📝 `packages/desktop-client/e2e/page-models/reports-page.ts` (+12 -0) 📝 `packages/desktop-client/e2e/reports.test.ts` (+23 -1) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-1-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-2-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-tracking-budget-forecast-report-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/src/components/budget/MonthPicker.tsx` (+1 -0) 📝 `packages/desktop-client/src/components/reports/reports/BalanceForecast.tsx` (+110 -42) 📝 `packages/desktop-client/src/components/reports/reports/BalanceForecastCard.tsx` (+23 -6) ➕ `packages/desktop-client/src/hooks/useBalanceForecast.test.ts` (+41 -0) 📝 `packages/desktop-client/src/hooks/useBalanceForecast.ts` (+41 -9) 📝 `packages/docs/docs/experimental/balance-forecast-report.md` (+7 -2) 📝 `packages/loot-core/src/server/forecast/app.test.ts` (+48 -0) 📝 `packages/loot-core/src/server/forecast/app.ts` (+38 -1) ➕ `packages/loot-core/src/server/forecast/forecast-tracking-budget.test.ts` (+88 -0) ➕ `packages/loot-core/src/server/forecast/forecast-tracking-budget.ts` (+93 -0) 📝 `packages/loot-core/src/types/models/dashboard.ts` (+2 -0) 📝 `packages/loot-core/src/types/models/forecast.ts` (+3 -0) </details> ### 📄 Description ## Description\n\nAdds a tracking budget forecast source for the Balance Forecast report. In tracking budget files, the report now projects balances from future budgeted income minus budgeted expenses, while keeping the existing schedule/account-based forecast for envelope budgeting and cashflow forecasting.\n\n## Related issue(s)\n\nRelates to #7669\nJira: N/A\n\n## Testing\n\n- Added unit coverage for tracking-budget forecast projection and request building.\n- Added E2E coverage for the tracking budget forecast report flow.\n- Verified the report UI updates for source selection, ending balance, and lowest visible point.\n\n## Checklist\n\n- [x] Release notes added (see link above)\n- [x] No obvious regressions in affected areas\n- [x] Self-review has been performed - I understand what each change in the code does and why it is needed\n\n<!--- actual-bot-sections ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-19 10:31:00 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#85148