{{ greeting() }}

{{ dateTimeDisplay() }}

{{ 'dashboard.total_income' | translate }}

{{ totalIncome() | number:'1.2-2' }}

{{ 'dashboard.per_month' | translate }}

{{ 'dashboard.fixed_costs' | translate }}

{{ totalFixedCosts() | number:'1.2-2' }}

{{ 'dashboard.per_month' | translate }}

{{ 'dashboard.expenses' | translate }}

{{ totalExpenses() | number:'1.2-2' }}

{{ 'dashboard.chf_total' | translate }}

{{ 'dashboard.balance' | translate }}

{{ balance() | number:'1.2-2' }}

{{ 'dashboard.chf_remaining' | translate }}

{{ 'dashboard.income_vs_expenses' | translate: { year: selectedYear() } }}

@if (yearDropdownOpen()) {
    @for (year of availableYears(); track year) {
  • }
}

{{ 'dashboard.fixed_costs_breakdown' | translate }}

@for (item of donutItems(); track item.name) {
{{ item.name }} CHF {{ item.amount | number:'1.2-2' }} {{ item.pct }}%
}

{{ 'dashboard.savings_rate' | translate }}

@if (!savingsSettingsOpen()) {
{{ savingsRate() }}% {{ 'dashboard.of_income' | translate }}
0% {{ 'dashboard.goal' | translate }}: {{ savingsGoal() }}% 100%
} @else {
%

{{ 'dashboard.goal_hint' | translate }}

0% {{ goalInputValue() }}% 100%
}

{{ 'dashboard.recent_expenses' | translate }}

@if (recentExpenses().length === 0) {

{{ 'dashboard.no_expenses' | translate }}

} @else {
@for (expense of recentExpenses(); track expense.id) {

{{ expense.name }}

{{ expense.date | date:'dd.MM.yyyy' }} ยท {{ ('expenses.categories.' + expense.category) | translate }}

-{{ expense.amount | number:'1.2-2' }} CHF
}
}