Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
6d1998f
Add Budget Analysis report with full implementation
Copilot Nov 12, 2025
76bd7e4
Add preset time ranges, intervals, bar chart, hide balance, and displ…
Copilot Nov 12, 2025
fd481d0
Fix duplicate function declaration syntax error in budget-analysis-sp…
Copilot Nov 12, 2025
3b9f370
Fix floating point precision error in daily/weekly intervals and repl…
Copilot Nov 12, 2025
15b5fa8
Make card always display monthly data and match report's chart type
Copilot Nov 12, 2025
6b73a0c
fix: adjust widget placement and presentation
tabedzki Nov 13, 2025
aee533e
fix: adjusted the dot presentation
tabedzki Nov 13, 2025
410e434
feat: added svg for line chart/barchart
tabedzki Nov 13, 2025
c055790
fix: added one month to the report
tabedzki Nov 13, 2025
4f941bd
added the upcoming release notes
tabedzki Nov 13, 2025
7e69c1a
amended the upcoming release notes
tabedzki Nov 13, 2025
fc1e9c5
fix: removed unused variables
tabedzki Nov 13, 2025
d23d75d
formatted using prettier --write
tabedzki Nov 13, 2025
f6859cd
[autofix.ci] apply automated fixes
autofix-ci[bot] Nov 13, 2025
002041f
feat: added new feature to the Reports Page in the test budget
tabedzki Nov 13, 2025
f3e2ede
fix: amended the reports.test.ts file to expect Budget Analysis
tabedzki Nov 13, 2025
a283f73
Update VRT screenshots
github-actions[bot] Nov 13, 2025
e4f718d
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 13, 2025
dc56f14
Update VRT screenshots
github-actions[bot] Nov 13, 2025
1062083
revert: removed the inclusion of the Budget Analysis tool from the te…
tabedzki Nov 13, 2025
964f8e8
Update VRT screenshots
github-actions[bot] Nov 13, 2025
7f9ea57
fix: changed the display to always be monthly since budgets are month…
tabedzki Nov 13, 2025
0975768
[autofix.ci] apply automated fixes
autofix-ci[bot] Nov 13, 2025
3b7f744
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Nov 13, 2025
8df403a
fix: removed comment
tabedzki Nov 13, 2025
f8b0448
feat: added experimental feature flag for Budget Analysis tool
tabedzki Nov 13, 2025
869985c
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 13, 2025
b7b9e87
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 14, 2025
59fb205
feat: Switched option to use SVG Icons instead of words to shorten ho…
tabedzki Nov 15, 2025
136519a
Removed interval possibilities and removed unnecessary compact variab…
tabedzki Nov 15, 2025
78057fc
Update packages/desktop-client/src/components/reports/reports/BudgetA…
tabedzki Nov 15, 2025
98dba9e
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 15, 2025
a8f226a
Added basic documentation for Budget Analysis Report
tabedzki Nov 16, 2025
d45c29b
Merge branch 'master' into feat/add-budget-analysis-report
youngcw Nov 17, 2025
1b24f09
Update VRT screenshots
github-actions[bot] Nov 17, 2025
259c34e
Merge branch 'master' into feat/add-budget-analysis-report
youngcw Nov 17, 2025
483bc20
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 18, 2025
24e0fcd
Update VRT screenshots
github-actions[bot] Nov 18, 2025
cec89ac
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 18, 2025
3a2196a
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 20, 2025
daa25e2
Merge branch 'actualbudget:master' into feat/add-budget-analysis-report
tabedzki Nov 23, 2025
5e99daa
fix: added budget-analysis doc to sidebar
tabedzki Nov 23, 2025
2ad0bc2
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 25, 2025
b71d81f
Update VRT screenshots
github-actions[bot] Nov 25, 2025
b4b172b
feat(reports): improve Budget Analysis report UI and behavior
tabedzki Nov 25, 2025
dbc8c85
Update VRT screenshots
github-actions[bot] Nov 25, 2025
80e75b8
feat(reports): refactor BudgetAnalysisGraph and improve isConcise cal…
tabedzki Nov 25, 2025
c8efe24
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Nov 25, 2025
e0708ad
feat(reports): add translation support for Budget Analysis graph labels
tabedzki Nov 25, 2025
a6f846c
feat(reports): centralize translation for Budget Analysis graph labels
tabedzki Nov 25, 2025
4d9628d
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Dec 3, 2025
07f2975
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Dec 4, 2025
fa411d8
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Dec 5, 2025
03884c2
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Dec 5, 2025
528ff3b
feat: use the budget values directly from the budget spreadsheet/server
tabedzki Jan 13, 2026
4e17bf7
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Jan 13, 2026
4796ead
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Jan 13, 2026
db6dc74
feat: enhance budget analysis with overspending adjustments and detai…
tabedzki Jan 13, 2026
7a4ad44
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Jan 14, 2026
17215bf
style: format code for better readability in BudgetAnalysis and budge…
tabedzki Jan 14, 2026
b7b3074
refactor: remove unused variables
tabedzki Jan 14, 2026
641bcaf
docs: added in the image to the docs
tabedzki Jan 14, 2026
a10585d
fix: reimplement support for conditionsOp
tabedzki Jan 14, 2026
71a8f99
[autofix.ci] apply automated fixes
autofix-ci[bot] Jan 14, 2026
5dd7922
style: simplify budget analysis labels for clarity
tabedzki Jan 14, 2026
4b4d6a4
fix: add the on copy function
tabedzki Jan 16, 2026
03131aa
feat: tooltip improvements
tabedzki Jan 16, 2026
be964f9
feat: enhance budget analysis to track overspending adjustments acros…
tabedzki Jan 16, 2026
8d08415
Merge branch 'master' into feat/add-budget-analysis-report
tabedzki Jan 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions packages/desktop-client/src/components/reports/Overview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { NON_DRAGGABLE_AREA_CLASS_NAME } from './constants';
import { DashboardHeader } from './DashboardHeader';
import { DashboardSelector } from './DashboardSelector';
import { LoadingIndicator } from './LoadingIndicator';
import { BudgetAnalysisCard } from './reports/BudgetAnalysisCard';
import { CalendarCard } from './reports/CalendarCard';
import { CashFlowCard } from './reports/CashFlowCard';
import { CrossoverCard } from './reports/CrossoverCard';
Expand Down Expand Up @@ -72,6 +73,7 @@ export function Overview({ dashboard }: OverviewProps) {
const [_firstDayOfWeekIdx] = useSyncedPref('firstDayOfWeekIdx');
const firstDayOfWeekIdx = _firstDayOfWeekIdx || '0';
const crossoverReportEnabled = useFeatureFlag('crossoverReport');
const budgetAnalysisReportEnabled = useFeatureFlag('budgetAnalysisReport');

const formulaMode = useFeatureFlag('formulaMode');

Expand Down Expand Up @@ -509,6 +511,14 @@ export function Overview({ dashboard }: OverviewProps) {
name: 'spending-card' as const,
text: t('Spending analysis'),
},
...(budgetAnalysisReportEnabled
? [
{
name: 'budget-analysis-card' as const,
text: t('Budget analysis'),
},
]
: []),
{
name: 'markdown-card' as const,
text: t('Text widget'),
Expand Down Expand Up @@ -703,6 +713,18 @@ export function Overview({ dashboard }: OverviewProps) {
onCopyWidget(item.i, targetDashboardId)
}
/>
) : item.type === 'budget-analysis-card' &&
budgetAnalysisReportEnabled ? (
<BudgetAnalysisCard
widgetId={item.i}
isEditing={isEditing}
meta={item.meta}
onMetaChange={newMeta => onMetaChange(item, newMeta)}
onRemove={() => onRemoveWidget(item.i)}
onCopy={targetDashboardId =>
onCopyWidget(item.i, targetDashboardId)
}
/>
) : item.type === 'markdown-card' ? (
<MarkdownCard
isEditing={isEditing}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { Route, Routes } from 'react-router';

import { BudgetAnalysis } from './reports/BudgetAnalysis';
import { Calendar } from './reports/Calendar';
import { CashFlow } from './reports/CashFlow';
import { Crossover } from './reports/Crossover';
Expand All @@ -15,6 +16,7 @@ import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag';

export function ReportRouter() {
const crossoverReportEnabled = useFeatureFlag('crossoverReport');
const budgetAnalysisReportEnabled = useFeatureFlag('budgetAnalysisReport');

return (
<Routes>
Expand All @@ -34,6 +36,12 @@ export function ReportRouter() {
<Route path="/custom/:id" element={<CustomReport />} />
<Route path="/spending" element={<Spending />} />
<Route path="/spending/:id" element={<Spending />} />
{budgetAnalysisReportEnabled && (
<>
<Route path="/budget-analysis" element={<BudgetAnalysis />} />
<Route path="/budget-analysis/:id" element={<BudgetAnalysis />} />
</>
)}
<Route path="/summary" element={<Summary />} />
<Route path="/summary/:id" element={<Summary />} />
<Route path="/calendar" element={<Calendar />} />
Expand Down
Loading
Loading