{{ budgetEnabled ? 'Set Your Budget' : 'Expense Tracking Mode' }}

Budget Tracking {{ budgetEnabled ? 'Set a monthly budget to track spending limits' : 'Track expenses without a budget limit' }}
{{ getCurrencySymbol() }}

You're in expense-tracking mode. Add expenses and see your spending breakdown without setting a budget limit. Enable budget tracking above if you want to set spending limits.

Currency

Quick Insights

{{ insight.title }}

{{ insight.message }}

Financial Summary

Budget {{ formatCurrency(budget) }}
Total Expenses {{ formatCurrency(totalExpenses) }}
Remaining Balance {{ formatCurrency(remainingBalance) }} {{ Math.round(budgetUtilization) }}%
Total Expenses {{ expenses.length }} items

Expense Breakdown

Weekly (per week) {{ formatCurrency(deductions.weekly) }}
Fortnightly (per fortnight) {{ formatCurrency(deductions.fortnightly) }}
Monthly (per month) {{ formatCurrency(deductions.monthly) }}
Daily Avg (from monthly) {{ formatCurrency(deductions.daily) }}

Monthly Equivalent Total

All expenses normalized to monthly for budget comparison:

Daily expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.daily) }}/month
Weekly expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.weekly) }}/month
Fortnightly expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.fortnightly) }}/month
Monthly expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.monthly) }}/month
Quarterly expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.quarterly) }}/month
Yearly expenses {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.yearly) }}/month
Total Monthly Equivalent: {{ formatCurrencyNoDecimals(monthlyEquivalentBreakdown.total) }}

Upcoming Expenses

{{ expense.name }}

{{ formatCurrency(expense.amount) }} {{ expense.frequency }}
{{ expense.daysUntil === 0 ? 'Today' : expense.daysUntil === 1 ? 'Tomorrow' : expense.daysUntil + ' days' }} {{ formatDate(expense.nextDueDate) }}

No upcoming expenses

{{ isEditing ? 'Edit Expense' : 'Add New Expense' }}

{{ getCurrencySymbol() }}

Your Expenses

{{ getCurrencySymbol() }}
{{ getCurrencySymbol() }}

No matching expenses

Try adjusting your filters or search terms.

No expenses yet

Add your first expense using the form above.

{{ selectedExpenseIds.size }} selected

Change Category

Move {{ selectedExpenseIds.size }} expense(s) to:

{{ expense.name }}

{{ getCategoryById(expense.category).name }} {{ expense.frequency }} {{ expense.frequency === 'monthly' ? 'Day ' + (expense.dayOfMonth || 1) : expense.day }}
{{ formatCurrency(expense.amount) }}

Spending Insights

{{ insight.title }}

{{ insight.message }}

Statistics Overview

{{ expenseStatistics.expenseCount }} Total Expenses
{{ formatCurrency(expenseStatistics.averageExpense) }} Average per Item
{{ formatCurrency(expenseStatistics.dailyAverage) }} Daily Average
{{ formatCurrency(expenseStatistics.weeklyAverage) }} Weekly Average
Highest Expense {{ expenseStatistics.highestExpense.name }} - {{ formatCurrency(expenseStatistics.highestExpense.amount) }}/mo
Lowest Expense {{ expenseStatistics.lowestExpense.name }} - {{ formatCurrency(expenseStatistics.lowestExpense.amount) }}/mo

Expenses by Category

{{ category.name }}
{{ formatCurrency(category.amount) }} ({{ category.percentage }}%)

Expenses by Frequency

Chart shows monthly equivalent values for accurate comparison

Spending Trend

Your spending is {{ getSpendingTrend() }}

Currency Converter

{{ currencyConverter.error }}
Rates last updated: {{ new Date(currencyConverter.lastUpdated).toLocaleString() }}
Total Monthly Expenses {{ getConvertedAmount(totalExpenses, currencyConverter.targetCurrency) || 'N/A' }}
Budget {{ getConvertedAmount(budget, currencyConverter.targetCurrency) || 'N/A' }}
Remaining {{ getConvertedAmount(remainingBalance, currencyConverter.targetCurrency) || 'N/A' }}
Exchange rates are provided by ExchangeRate-API and cached for 24 hours.

Budget vs Actual Spending

Spending Overview

{{ Math.round(budgetUtilization) }}%
Spent {{ formatCurrency(totalExpenses) }}
/
Budget {{ formatCurrency(budget) }}
Remaining
{{ formatCurrency(remainingBalance) }} {{ Math.round(((budget - totalExpenses) / budget * 100)) }}% left
Status
{{ budgetUtilization >= 100 ? 'Over Budget' : budgetUtilization >= 90 ? 'Critical' : budgetUtilization >= 75 ? 'Caution' : budgetUtilization >= 50 ? 'Moderate' : 'Healthy' }}

You have {{ formatCurrency(remainingBalance) }} remaining this month

Category Budget Status

{{ category.name }}
{{ formatCurrency(getCategorySpending(category.id)) }} / {{ formatCurrency(getCategoryBudget(category.id)) }}

No Analytics Yet

Add some expenses to see detailed analytics and insights about your spending patterns.

{{ confirmModal.title }}

{{ confirmModal.message }}

Track Your Savings

Calculate how much you'll save over a year based on your fortnightly and monthly savings.

{{ getCurrencySymbol() }}
{{ getCurrencySymbol() }}

Annual Savings Total

{{ formatCurrency(savingsTracking.yearlySavings) }}

Breakdown:
Fortnightly: {{ formatCurrency(savingsTracking.fortnightly * 26) }}
Monthly: {{ formatCurrency(savingsTracking.monthly * 12) }}

Interest Calculator

Calculate your total savings including compound interest from your bank or investment account.

{{ getCurrencySymbol() }}
Your current savings balance or initial investment amount.
How often interest is calculated and added to your account (more frequent = higher returns).
Annual percentage rate (APR) provided by your bank or investment account.
Number of years to project your savings accumulation (1-100 years).
{{ getCurrencySymbol() }}
{{ getCurrencySymbol() }}

Savings Projection Summary

Final Amount

{{ formatCurrency(interestCalculator.totalSavings) }}

Total Interest Earned

{{ formatCurrency(interestCalculator.accumulationBreakdown.length > 0 ? interestCalculator.accumulationBreakdown[interestCalculator.accumulationBreakdown.length - 1].closingBalance - interestCalculator.principal - (interestCalculator.accumulationBreakdown.length * interestCalculator.annualTotalSavings) : 0) }}

Annual Contribution

{{ formatCurrency(interestCalculator.annualTotalSavings) }}

Years Calculated

{{ interestCalculator.yearsToCalculate }}

Year-by-Year Breakdown

Year Opening Balance Interest Earned Contributions Closing Balance
Year {{ year.year }} {{ formatCurrency(year.openingBalance) }} +{{ formatCurrency(year.interestEarned) }} +{{ formatCurrency(year.contributions) }} {{ formatCurrency(year.closingBalance) }}
Year {{ year.year }} {{ formatCurrency(year.closingBalance) }}
Opening Balance {{ formatCurrency(year.openingBalance) }}
+ Interest Earned {{ formatCurrency(year.interestEarned) }}
+ Contributions {{ formatCurrency(year.contributions) }}

How Your Money Grows

Your initial investment of {{ formatCurrency(interestCalculator.principal) }} earns {{ interestCalculator.rate }}% annual interest compounded {{ interestCalculator.compoundingFrequency === 'monthly' ? 'monthly' : interestCalculator.compoundingFrequency === 'quarterly' ? 'quarterly' : interestCalculator.compoundingFrequency === 'semiannual' ? 'semi-annually' : 'annually' }}. In addition, you contribute {{ formatCurrency(interestCalculator.annualTotalSavings) }} per year ({{ formatCurrency(interestCalculator.fortnightlyContribution) }} fortnightly + {{ formatCurrency(interestCalculator.monthlyContribution) }} monthly). After {{ interestCalculator.yearsToCalculate }} year{{ interestCalculator.yearsToCalculate !== 1 ? 's' : '' }}, your total balance reaches {{ formatCurrency(interestCalculator.totalSavings) }}!

💡 Note: More frequent compounding (monthly vs annual) results in higher returns because interest is calculated on a larger balance more often. This matches how real bank accounts work!

Appearance

Dark Mode Enable dark theme for easier viewing
Theme Color Customize the primary theme color
#007bff

Data Management

Export Data Download all your data as a JSON file
Import Data Restore data from a backup file
Clear All Data Permanently delete all expenses and settings

Categories

{{ category.name }} {{ category.id }}

Expense Templates

{{ template.name }}
{{ formatCurrency(template.amount) }} {{ template.frequency }}

No Templates Yet

Save an expense as a template for quick entry later.

About

Version 1.0.0
Storage Used {{ getStorageUsed() }}