{% extends "base.html" %} {% block title %}Reports{% endblock %} {% block page_title %}Reports{% endblock %} {% block extra_css %} .report-tab { font-size:13px; border-radius:6px; padding:6px 14px; border:1px solid var(--border); background:var(--card-bg); color:var(--muted); text-decoration:none; transition:all .15s; } .report-tab:hover { background:#f1f5f9; color:var(--text); } .report-tab.active { background:#0f172a; color:#f1f5f9; border-color:#0f172a; } {% endblock %} {% block topbar_actions %}
CSV Excel PDF
{% endblock %} {% block content %}
Monthly Quarterly Yearly Tax Year
{% if report_type == 'monthly' %} {% elif report_type == 'quarterly' %} {% endif %}
Income
{{ report.income | currency }}
Expenses
{{ report.expense | currency }}
Net
{{ report.net | currency }}
Savings Rate
{{ report.savings_rate }}%
{% if report_type == 'monthly' %}Income vs Expenses — {{ report.period }} {% elif report_type == 'quarterly' %}Monthly Breakdown — {{ report.period }} {% else %}Monthly Breakdown — {{ report.period }} {% endif %}
Expense Breakdown
{% if report.expense_categories %}
{% for cat in report.expense_categories[:5] %}
{{ cat.name }} {{ cat.total | currency }}
{% endfor %}
{% else %}

No expenses this period.

{% endif %}
{% if report_type == 'monthly' and mom_data %}
Month-over-Month Comparison
{% for row in mom_data %} {% endfor %}
Category This Month Last Month 3-Mo Avg Change
{{ row.name }} {{ row.this_month | currency }} {{ row.last_month | currency }} {{ row.avg_3mo | currency }} {% if row.change_pct is none %} {% elif row.change_pct > 0 %} +{{ row.change_pct | round(0) | int }}% {% elif row.change_pct < 0 %} {{ row.change_pct | round(0) | int }}% {% else %} 0% {% endif %}
{% endif %}
Net Worth History {% if nw_history.projected_1yr is defined and nw_history.projected_1yr %} Proj. 1yr: {{ nw_history.projected_1yr | currency }} {% endif %}
{% if nw_history.count > 1 %}
{% else %}

Not enough snapshots yet. Snapshots save automatically on the 1st of each month, or click "Snapshot Now".

{% endif %}
Spending Trends — Top Categories (Last 6 Months)
{% if cat_trend.datasets %}
{% else %}

Not enough data for trends yet.

{% endif %}
{% if report_type == 'yearly' %}
Avg Monthly Income
{{ report.avg_monthly_income | currency }}
Avg Monthly Expense
{{ report.avg_monthly_expense | currency }}
{% endif %} {% endblock %} {% block extra_js %} {% endblock %}