= (int) $yearly['year'] ?> fresh income
= h(Support::money($totals['fresh_income'], $symbol)) ?>Rollover excluded to avoid double-counting= (int) $yearly['year'] ?> fresh income
= h(Support::money($totals['fresh_income'], $symbol)) ?>Rollover excluded to avoid double-counting= (int) $yearly['year'] ?> expenses
= h(Support::money($totals['expenses'], $symbol)) ?>= $totals['fresh_income'] > 0 ? number_format($totals['expenses'] / $totals['fresh_income'] * 100, 1) : '0.0' ?>% of fresh incomeMoved dormant
= h(Support::money($totals['dead_deposits'], $symbol)) ?>= h(Support::money($totals['dead_restorations'], $symbol)) ?> restoredStrongest remainder
= h(Support::money($bestMonth['remaining'] ?? 0, $symbol)) ?>= $bestMonth ? h(date('F', strtotime($bestMonth['month'] . '-01'))) : 'No data' ?>Month-to-month
= h(date('F', strtotime($month . '-01'))) ?>
Record categorized expenses to build this view.
Statistical table
| Month | Fresh income | Rollover | Planned | Expenses | Saved | Remainder |
|---|---|---|---|---|---|---|
| = h(date('F Y', strtotime($row['month'] . '-01'))) ?> | = h(Support::money($row['fresh_income'], $symbol)) ?> | = h(Support::money($row['rollover_in'], $symbol)) ?> | = h(Support::money($row['planned'], $symbol)) ?> | = h(Support::money($row['expenses'], $symbol)) ?> | = h(Support::money($row['dead_deposits'], $symbol)) ?> | = h(Support::money($row['remaining'], $symbol)) ?> |