Fix Income vs Expenses report bars not rendering
Details
The Income bar in the Income vs Expenses report was invisible because
Avalonia's ProgressBar ignores the Foreground property for fill color —
it uses the theme accent color instead. Replaced both Income and Expense
ProgressBars with Border-based bars (same pattern as budget goal bars)
using ThemeSuccessBrush (green) for income and ThemeDangerBrush (red)
for expenses. Added a subtle track background behind each bar. Bar
widths are computed as pixel values (IncomeBarPixels, ExpenseBarPixels)
from the normalized ratio × 500px max width.
Version bump to 3.10.1.
Fix goal progress to use allocated amount for spending goals
Details
The goal progress calculation used balance/target for ALL goal types,
which meant spending categories (Rent, Groceries, etc.) showed 0% funded
after money was spent — even when the full amount had been budgeted.
Spending goals (MonthlySpending, WeeklySpending, MonthlySavingsBuilder)
now calculate progress as allocated/target, reflecting whether the user
has set aside enough money. Accumulation goals (SavingsBalance, NeededByDate)
still use balance/target since those track total savings toward a target.
Updated GoalProgressDisplay to show "allocated of target" for spending
goals and "balance of target" for accumulation goals. Added allocated
parameter to GoalService.CalculateGoalProgress signature.
Version bump to 3.10.0 (minor — goal calculation behavior change).
Fix seed data income and add income display to budget dashboard
Details
The seed data had monthly allocations ($4,215) exceeding income ($4,200),
causing To Be Budgeted to show negative. Bumped bi-monthly paychecks from
$2,100 to $2,350 ($4,700/mo total) to give a healthy positive TBB of ~$485.
Added an "Income" label to the left side of the TBB banner so users can
see their monthly income at a glance. Extracted GetIncomeForMonthAsync
from BudgetService as a reusable public method and added IncomeThisMonth
property to BudgetDashboardViewModel.
Version bump to 3.9.2.
Fix goal bar theming, overfunding visibility, and weekly seed data
Details
Three fixes for the budget goal progress bar:
1. GoalService.CalculateGoalProgress no longer clamps to [0, 1] — values
above 1.0 now flow through so the overfunded state and dark-green
overage extension render correctly.
2. Replaced all hardcoded hex colors (#E5A100 warning, #1B7A3D overage,
SystemFillColorSuccess) with proper theme resources (ThemeWarningBrush,
ThemeSuccessBrush). The overage segment uses ThemeSuccessBrush at 0.7
opacity for a visually distinct darker appearance that still respects
theme switching.
3. Changed Groceries seed category from MonthlySpending to WeeklySpending
($112.50/week target) so the weekly tick marks feature is testable with
seed data.
Version bump to 3.9.1.
Redesign budget goal progress bar with color-coded funding states
Details
Replace the plain full-width ProgressBar with a compact 300px custom goal bar
that communicates funding status at a glance through color states. The bar uses
red for critical (<50%), amber for warning (50-75%), purple for near-target
(75-100%), and green for funded (100%+). Overfunded categories show a dark green
extension past the 100% mark. Weekly spending goals display tick marks at 25%
intervals to indicate week boundaries. The goal bar is now integrated directly
into the Goal column alongside the type label and progress text, rather than
spanning the full row width. Version bump to 3.9.0.
Get notified about new releases