{{ pattern.title }}
{{ pattern.evidence }}
{% extends 'base.html.twig' %} {% block title %}AI Insights{% endblock %} {% block content %}
Patterns from your last {{ dataset.historyCount }} completed pay periods and the current period to date.
{{ analysis.summary }}
{% if analysis.patterns|length > 0 %}{{ pattern.evidence }}
{{ recommendation.action }}
{{ recommendation.reason }}Generate an analysis to spot repeated patterns and get practical saving suggestions. Unchanged results are cached for 24 hours.
Completed payday periods only, with the live period shown separately.
| Category | Monthly average | Current so far | Vs average | Budget |
|---|---|---|---|---|
| {{ row.category|replace({'_': ' '})|title }} | £{{ row.average|number_format(2) }} | £{{ row.current|number_format(2) }} | {% if row.differencePercent is null %} New {% elseif row.difference > 0 %} +{{ row.differencePercent|number_format(1) }}% {% elseif row.difference < 0 %} {{ row.differencePercent|number_format(1) }}% {% else %} 0% {% endif %} | {{ row.budget is not null ? '£' ~ row.budget|number_format(2) : '—' }} |
Add more historical expenses to calculate monthly category averages.
A quick view of income, spending and savings movement.
| Period | Dates | Income | Spent | Saved |
|---|---|---|---|---|
| {{ period.label }} | {{ period.start|date('d M') }} – {{ period.endDisplay|date('d M') }} | £{{ period.totalIncome|number_format(2) }} | £{{ period.totalSpending|number_format(2) }} | £{{ period.savings|number_format(2) }} |
Privacy: AI analysis receives category totals, budgets, income totals and period dates only. Merchant names, transaction descriptions, account IDs and personal names are not sent.