Add entries to see a chart.
+ {/if} +Personal finance
+One place for every account, plan and household cost.
+Across {data.accounts.length} accounts
+{amount(total)}
+Current combined balance
+Transactions
+{data.transactions.length.toLocaleString('en-NL')}
+Monthly recurring net
+{amount(Math.round(monthlyRecurring))}
+Balances calculated from opening balances and dated transactions.
++ Add an account or import your transactions to get started. +
{/if} ++ Transactions will appear here after you add or import them. +
{/if} +{filtered.length} of {data.transactions.length} entries
+| Date | Description | Account | Amount | Actions |
|---|---|---|---|---|
| {dateLabel(row.date)} | {row.description} | {accountName(row.accountId)} | {amount(row.amountCents)} |
+ No matching transactions. +
{/if}{#if filtered.length > 25}Monthly equivalent
+{amount(Math.round(monthlyRecurring))}
+Signed total of recurring income and costs
++ Recurring items are a reference list. Dated forecasts do not change actual balances. +
++ Current combined balance plus dated future estimates. Recurring items are not + automatically included. +
+Rent, subscriptions, salary and other known repeats.
+| Name | Account | Frequency | Amount | Actions |
|---|---|---|---|---|
| {row.name} | {row.accountId ? accountName(row.accountId) : 'Any'} | {row.cadence} | {amount(row.amountCents)} |
No recurring items yet.
{/if} +Dated income and costs you expect.
+| Date | Description | Account | Amount | Actions |
|---|---|---|---|---|
| {dateLabel(row.date)} | {row.description} | {row.accountId ? accountName(row.accountId) : 'Unassigned'} | {amount(row.amountCents)} |
+ Add expected costs or income to look ahead. +
{/if} +Meter readings, estimated variable cost and monthly advances.
+Usage in billing period
++ {estimate ? estimate.usage.toLocaleString('en-NL', { maximumFractionDigits: 3 }) : '—'} + {utility.unit} +
+Estimated variable cost
+{estimate ? amount(estimate.estimatedCents) : '—'}
+Advances less estimated cost
+{estimate ? amount(estimate.differenceCents) : '—'}
++ Estimate uses the first and last readings in the billing period, the current unit rate and + prorated monthly advances. Fixed charges, taxes, rate changes and supplier settlements are + not included. +
+{readings.length} recorded
+| Date | Meter value ({utility.unit}) | Actions |
|---|---|---|
| {dateLabel(row.date)} | {Number(row.reading).toLocaleString('en-NL', { maximumFractionDigits: 3 })} |
Add at least two readings to calculate usage.
{/if} +Ideas for later, kept outside your forecasts.
+| Item | Notes | Estimated cost | Actions |
|---|---|---|---|
| {row.name} | {row.notes ?? '—'} | {row.estimatedCents == null ? '—' : amount(row.estimatedCents)} |
Nothing on your wish list yet.
{/if} +Policies, providers, coverage and premiums in one place.
+| Policy | Provider | Coverage | Premium | Actions |
|---|---|---|---|---|
| {row.name} | {row.provider ?? '—'} | {row.coverage ?? '—'} | {row.premiumCents == null + ? '—' + : amount(row.premiumCents) + ' / ' + row.cadence} |
+ Add policies to keep track of what is covered. +
{/if} +Opening balances plus every signed transaction.
+| Account | Opening balance | Current balance | Actions |
|---|---|---|---|
| {row.name} | {amount(row.openingBalanceCents)} | {amount(balances.get(row.id) ?? 0)} |
+ Add your first account or import a CSV to create them automatically. +
{/if} +