[PR #6903] Add Budgeted type to custom report widgets #6806

Open
opened 2026-02-28 21:32:56 -06:00 by GiteaMirror · 0 comments
Owner

Original Pull Request: https://github.com/actualbudget/actual/pull/6903

State: open
Merged: No


Feature: Add a "Budgeted" type to the custom report widget.

This feature adds a new "Budgeted" type to the custom report widget, which allows analyzing the budgeted amounts instead of only payment, deposited, or net amounts.

image image

Motivation: The custom report is a powerful report that allows analyzing the transactions by time period, category, group... However, it can only analyze transactions but not budgeted amounts. In some situations, this is not enough, especially with sinking fund categories or saving categories. For example, people may want to know how much they are allocating to a sinking fund or saving category over time in comparison to other usual expenses such as food. If the report only analyzed transactions, sinking fund categories would not show any allocation in almost all periods except in the period when the big expense is done, which is not very useful. By using the budgeted amounts, the report allows us to have a more consistent view of the amount being allocated to the sinking fund each period.

Existing functionality: PR #6137 introduced a new widget to perform budget analysis, but it doesn't have the same functionality. That feature allows analyzing the cash flow without comparing by category or group, whereas the present feature leverages the existing custom report functionality to allow comparing the budgeted amounts by category/group over time.

Changes:

  • The changes are done behind a new experimental feature flag.
  • A new budgeted type has been added to custom report widget. When the budgeted type is selected, Weekly and Daily intervals are disabled, as budgets are monthly. The split options Payee and Account are also disabled, as budgets don't apply there.
  • Make sure the Budget Analysis widget and the Budgeted type in Custom Report widget are not visible if budgeting mode is set to tracking instead of envelope.

Disclaimer: This feature was generated with the help of AI agents.


Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 28 14.86 MB → 14.89 MB (+26.7 kB) +0.18%
loot-core 1 5.86 MB 0%
api 1 4.4 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
28 14.86 MB → 14.89 MB (+26.7 kB) +0.18%
Changeset
File Δ Size
src/components/reports/spreadsheets/budgetDataQuery.ts 🆕 +3.6 kB 0 B → 3.6 kB
src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts 🆕 +760 B 0 B → 760 B
src/components/reports/reports/CustomReport.tsx 📈 +18.98 kB (+73.73%) 25.74 kB → 44.72 kB
src/components/reports/useReport.ts 📈 +166 B (+30.18%) 550 B → 716 B
src/components/reports/spreadsheets/custom-spreadsheet.ts 📈 +787 B (+13.38%) 5.75 kB → 6.51 kB
src/components/reports/spreadsheets/filterEmptyRows.ts 📈 +37 B (+10.98%) 337 B → 374 B
src/components/reports/spreadsheets/calculateLegend.ts 📈 +123 B (+8.53%) 1.41 kB → 1.53 kB
src/components/reports/ReportSidebar.tsx 📈 +734 B (+4.31%) 16.63 kB → 17.35 kB
src/components/reports/spreadsheets/trimIntervals.ts 📈 +110 B (+3.62%) 2.97 kB → 3.08 kB
src/components/reports/spreadsheets/recalculate.ts 📈 +69 B (+3.49%) 1.93 kB → 2 kB
src/components/reports/ReportSummary.tsx 📈 +118 B (+3.26%) 3.53 kB → 3.65 kB
src/components/reports/ReportRouter.tsx 📈 +187 B (+3.04%) 6.01 kB → 6.2 kB
src/components/reports/graphs/tableGraph/ReportTableTotals.tsx 📈 +105 B (+2.60%) 3.95 kB → 4.05 kB
src/components/reports/graphs/BarGraph.tsx 📈 +299 B (+2.55%) 11.45 kB → 11.74 kB
src/components/reports/spreadsheets/grouped-spreadsheet.ts 📈 +75 B (+2.18%) 3.37 kB → 3.44 kB
src/components/reports/graphs/AreaGraph.tsx 📈 +269 B (+2.16%) 12.18 kB → 12.44 kB
src/components/reports/graphs/tableGraph/ReportTableList.tsx 📈 +43 B (+1.99%) 2.11 kB → 2.15 kB
src/components/reports/graphs/showActivity.ts 📈 +25 B (+1.46%) 1.67 kB → 1.69 kB
src/components/reports/ReportOptions.ts 📈 +80 B (+1.08%) 7.22 kB → 7.3 kB
src/components/reports/Overview.tsx 📈 +188 B (+0.76%) 24.21 kB → 24.39 kB
src/components/reports/graphs/tableGraph/ReportTableHeader.tsx 📈 +25 B (+0.53%) 4.59 kB → 4.61 kB
src/components/reports/graphs/tableGraph/ReportTableRow.tsx 📈 +25 B (+0.18%) 13.49 kB → 13.52 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/ReportRouter.js 1.13 MB → 1.16 MB (+26.7 kB) +2.31%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/index.js 9.52 MB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 12.94 kB 0%
static/js/workbox-window.prod.es5.js 5.64 kB 0%
static/js/ca.js 177.71 kB 0%
static/js/da.js 106.62 kB 0%
static/js/de.js 180.44 kB 0%
static/js/en-GB.js 7.18 kB 0%
static/js/en.js 167.25 kB 0%
static/js/es.js 173.83 kB 0%
static/js/fr.js 179.97 kB 0%
static/js/it.js 171.44 kB 0%
static/js/nb-NO.js 157.23 kB 0%
static/js/nl.js 106.65 kB 0%
static/js/pl.js 88.64 kB 0%
static/js/pt-BR.js 154.57 kB 0%
static/js/sv.js 78.2 kB 0%
static/js/th.js 182.35 kB 0%
static/js/uk.js 215.11 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.54 kB 0%
static/js/narrow.js 638.75 kB 0%
static/js/TransactionList.js 106.13 kB 0%
static/js/wide.js 165.25 kB 0%
static/js/AppliedFilters.js 9.71 kB 0%
static/js/usePayeeRuleCounts.js 10.05 kB 0%
static/js/useTransactionBatchActions.js 13.23 kB 0%
static/js/FormulaEditor.js 1.04 MB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.86 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.BuYcuVkQ.js 5.86 MB 0%

api

Total

Files count Total bundle size % Changed
1 4.4 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
bundle.api.js 4.4 MB 0%
**Original Pull Request:** https://github.com/actualbudget/actual/pull/6903 **State:** open **Merged:** No --- <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> Feature: Add a "Budgeted" type to the custom report widget. This feature adds a new "Budgeted" type to the custom report widget, which allows analyzing the budgeted amounts instead of only payment, deposited, or net amounts. <img width="1702" height="935" alt="image" src="https://github.com/user-attachments/assets/93f7fa73-0d47-4fab-9b5f-0f1d0d73a1ea" /> <img width="1119" height="405" alt="image" src="https://github.com/user-attachments/assets/998ab521-3370-4a31-b0d3-f7064f9f0d72" /> Motivation: The custom report is a powerful report that allows analyzing the transactions by time period, category, group... However, it can only analyze transactions but not budgeted amounts. In some situations, this is not enough, especially with sinking fund categories or saving categories. For example, people may want to know how much they are allocating to a sinking fund or saving category over time in comparison to other usual expenses such as food. If the report only analyzed transactions, sinking fund categories would not show any allocation in almost all periods except in the period when the big expense is done, which is not very useful. By using the budgeted amounts, the report allows us to have a more consistent view of the amount being allocated to the sinking fund each period. Existing functionality: PR #6137 introduced a new widget to perform budget analysis, but it doesn't have the same functionality. That feature allows analyzing the cash flow without comparing by category or group, whereas the present feature leverages the existing custom report functionality to allow comparing the budgeted amounts by category/group over time. Changes: - <strike>The changes are done behind a new experimental feature flag.</strike> - A new budgeted type has been added to custom report widget. When the budgeted type is selected, Weekly and Daily intervals are disabled, as budgets are monthly. The split options Payee and Account are also disabled, as budgets don't apply there. - Make sure the Budget Analysis widget and the Budgeted type in Custom Report widget are not visible if budgeting mode is set to tracking instead of envelope. Disclaimer: This feature was generated with the help of AI agents. <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 28 | 14.86 MB → 14.89 MB (+26.7 kB) | +0.18% loot-core | 1 | 5.86 MB | 0% api | 1 | 4.4 MB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 28 | 14.86 MB → 14.89 MB (+26.7 kB) | +0.18% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/components/reports/spreadsheets/budgetDataQuery.ts` | 🆕 +3.6 kB | 0 B → 3.6 kB `src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts` | 🆕 +760 B | 0 B → 760 B `src/components/reports/reports/CustomReport.tsx` | 📈 +18.98 kB (+73.73%) | 25.74 kB → 44.72 kB `src/components/reports/useReport.ts` | 📈 +166 B (+30.18%) | 550 B → 716 B `src/components/reports/spreadsheets/custom-spreadsheet.ts` | 📈 +787 B (+13.38%) | 5.75 kB → 6.51 kB `src/components/reports/spreadsheets/filterEmptyRows.ts` | 📈 +37 B (+10.98%) | 337 B → 374 B `src/components/reports/spreadsheets/calculateLegend.ts` | 📈 +123 B (+8.53%) | 1.41 kB → 1.53 kB `src/components/reports/ReportSidebar.tsx` | 📈 +734 B (+4.31%) | 16.63 kB → 17.35 kB `src/components/reports/spreadsheets/trimIntervals.ts` | 📈 +110 B (+3.62%) | 2.97 kB → 3.08 kB `src/components/reports/spreadsheets/recalculate.ts` | 📈 +69 B (+3.49%) | 1.93 kB → 2 kB `src/components/reports/ReportSummary.tsx` | 📈 +118 B (+3.26%) | 3.53 kB → 3.65 kB `src/components/reports/ReportRouter.tsx` | 📈 +187 B (+3.04%) | 6.01 kB → 6.2 kB `src/components/reports/graphs/tableGraph/ReportTableTotals.tsx` | 📈 +105 B (+2.60%) | 3.95 kB → 4.05 kB `src/components/reports/graphs/BarGraph.tsx` | 📈 +299 B (+2.55%) | 11.45 kB → 11.74 kB `src/components/reports/spreadsheets/grouped-spreadsheet.ts` | 📈 +75 B (+2.18%) | 3.37 kB → 3.44 kB `src/components/reports/graphs/AreaGraph.tsx` | 📈 +269 B (+2.16%) | 12.18 kB → 12.44 kB `src/components/reports/graphs/tableGraph/ReportTableList.tsx` | 📈 +43 B (+1.99%) | 2.11 kB → 2.15 kB `src/components/reports/graphs/showActivity.ts` | 📈 +25 B (+1.46%) | 1.67 kB → 1.69 kB `src/components/reports/ReportOptions.ts` | 📈 +80 B (+1.08%) | 7.22 kB → 7.3 kB `src/components/reports/Overview.tsx` | 📈 +188 B (+0.76%) | 24.21 kB → 24.39 kB `src/components/reports/graphs/tableGraph/ReportTableHeader.tsx` | 📈 +25 B (+0.53%) | 4.59 kB → 4.61 kB `src/components/reports/graphs/tableGraph/ReportTableRow.tsx` | 📈 +25 B (+0.18%) | 13.49 kB → 13.52 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- static/js/ReportRouter.js | 1.13 MB → 1.16 MB (+26.7 kB) | +2.31% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 9.52 MB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 12.94 kB | 0% static/js/workbox-window.prod.es5.js | 5.64 kB | 0% static/js/ca.js | 177.71 kB | 0% static/js/da.js | 106.62 kB | 0% static/js/de.js | 180.44 kB | 0% static/js/en-GB.js | 7.18 kB | 0% static/js/en.js | 167.25 kB | 0% static/js/es.js | 173.83 kB | 0% static/js/fr.js | 179.97 kB | 0% static/js/it.js | 171.44 kB | 0% static/js/nb-NO.js | 157.23 kB | 0% static/js/nl.js | 106.65 kB | 0% static/js/pl.js | 88.64 kB | 0% static/js/pt-BR.js | 154.57 kB | 0% static/js/sv.js | 78.2 kB | 0% static/js/th.js | 182.35 kB | 0% static/js/uk.js | 215.11 kB | 0% static/js/resize-observer.js | 18.37 kB | 0% static/js/BackgroundImage.js | 120.54 kB | 0% static/js/narrow.js | 638.75 kB | 0% static/js/TransactionList.js | 106.13 kB | 0% static/js/wide.js | 165.25 kB | 0% static/js/AppliedFilters.js | 9.71 kB | 0% static/js/usePayeeRuleCounts.js | 10.05 kB | 0% static/js/useTransactionBatchActions.js | 13.23 kB | 0% static/js/FormulaEditor.js | 1.04 MB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.86 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.BuYcuVkQ.js | 5.86 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.4 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- bundle.api.js | 4.4 MB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end --->
GiteaMirror added the pull-request label 2026-02-28 21:32:56 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#6806