Personal finance · A4 portrait · v0.1.0
Household Budget
Monthly household budget on one A4 page: income and expense tables with planned vs actual, per-category progress bars with a 100% tick, savings summary tiles and goals. Pick it when a family or household plans or reviews a month of money.
Paste the prompt into Claude (or any agent that can fetch URLs) with your content — you get back a finished, self-contained HTML file. Manifest ↗
Live preview — the example content ships with the template and is replaced by your content.
What an agent may change — and what content you should have ready. Everything outside these slots is fixed by design.
Slots
| Slot | Type | Req. | Example |
|---|---|---|---|
doc-title |
text | yes | Household budget — Familie Jansen · September 2026 |
title |
text | yes | Household budget |
household-name |
text | yes | Familie Jansen |
month-label |
text | yes | September 2026 |
sum-income |
text | yes | € 5.461,45 |
sum-expenses |
text | yes | € 4.239,70 |
sum-saved |
text | yes | € 1.221,75 |
sum-rate |
text | yes | 22,4% |
income-planned-total |
text | yes | € 5.400,00 |
income-actual-total |
text | yes | € 5.461,45 |
expense-planned-total |
text | yes | € 4.200,00 |
expense-actual-total |
text | yes | € 4.239,70 |
expense-diff-total |
text | yes | − € 39,70 |
goals-content |
html | no | <ul><li><strong>Emergency fund</strong> — € 4.200 / € 6.000</li><li><strong>Summer holiday 2027</strong> — € 850 / € 2.500</li></ul> |
notes-content |
html | no | <p>New energy contract from October — the advance drops to € 195.</p> |
footer-line |
text | no | Reviewed together on 2 Oct 2026 · next check-in 1 Nov 2026 |
Repeat: income-row (1–8×)
One row per income source (salaries, benefits, side income).
| Slot | Type | Req. | Example |
|---|---|---|---|
income-source |
text | yes | Salary — Mark (net) |
income-planned |
text | yes | € 3.180,00 |
income-actual |
text | yes | € 3.180,00 |
Repeat: expense-row (3–24×)
One row per spending category, with planned vs actual, a signed diff and a progress bar.
| Slot | Type | Req. | Example |
|---|---|---|---|
expense-group |
text | yes | Housing |
expense-category |
text | yes | Mortgage & service costs |
expense-planned |
text | yes | € 1.485,00 |
expense-actual |
text | yes | € 1.485,00 |
expense-diff |
text | yes | − € 53,45 |
expense-diff-class |
text | yes | delta |
expense-bar-style |
text | yes | width:76% |
expense-bar-class |
text | yes | fill fill-ok |
Optional blocks
goals— Compact savings-goals list (goals-content) — remove when the household tracks no goals.notes— Short free-form notes on outliers or next month's changes — remove when empty.
The authoritative fill instructions from manifest.json — the only place a template may instruct an agent (why).
Fill one income-row per income source and one expense-row per spending category; DELETE every data-example row — they are preview filler. Compute all numbers yourself, then re-check the arithmetic: totals are column sums; expense-diff = planned − actual (negative = overspent); sum-income and sum-expenses mirror the actual totals; sum-saved = sum-income − sum-expenses; sum-rate = sum-saved ÷ sum-income with one decimal ('22,4%'). Format money exactly like the placeholders — '€ 1.234,56' (adapt symbol and separators to the user's locale, but never mix formats in one document). Bars: expense-bar-style must be EXACTLY 'width:NN%' with NN = round(actual ÷ planned × 100), capped at 120 even when spending runs higher (the track ends at 120%; the tick marks 100%). expense-bar-class must be EXACTLY 'fill fill-ok' (≤100%) or 'fill fill-over' (>100%). expense-diff-class must be EXACTLY 'delta' (zero or money left) or 'delta delta-neg' (overspent — renders red; red is reserved for overspend). Sign diffs like the placeholders: '+ € 23,20', '− € 53,45', '€ 0,00'. Keep it to ONE page: beyond ~24 categories merge the smallest into a single 'Other' row. Remove the goals and notes optional blocks when there is nothing real to put in them. Unknown amounts: leave a recognizable placeholder like [MORTGAGE PER MONTH] and tell the user to fill it via the built-in Edit button.
Published versions are immutable: /t/household-budget@{version}/ never changes once live. /t/household-budget/ always points at the latest.