Personal finance · A4 portrait · v0.1.0
Savings Plan
Multi-year savings plan on one A4 page: per goal the target, the amount saved, the deadline and the required monthly contribution, shown on a progress bar with 25/50/75% milestone ticks, plus summary tiles, a contribution schedule and saving rules.
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 | Savings plan 2026–2028 — Bosma & Veenstra |
plan-title |
text | yes | Savings plan 2026 – 2028 |
owner-line |
text | yes | Femke Bosma & Joris Veenstra · Groningen · joint account NL24 RABO 0388 1147 62 |
plan-date |
date | yes | 19 Aug 2026 |
total-target |
text | yes | € 35.100,00 |
total-saved |
text | yes | € 15.450,00 |
total-monthly |
text | yes | € 1.725,00 |
schedule-note |
text | no | Running total starts from the € 15.450,00 already saved. December includes the year-end bonus; nothing leaves the pots before Mar 2027. |
rules-content |
html | no | <ul><li>Move the money on the 25th, the day after salary — € 480 to the emergency pot first.</li><li>Windfalls split 50/50 between the kitchen and the trip.</li></ul> |
footer-line |
text | no | Agreed together on 19 Aug 2026 · next review 24 Nov 2026 |
Repeat: goal (1–6×)
One card per savings goal: name, deadline, money figures, milestone progress bar and a note.
| Slot | Type | Req. | Example |
|---|---|---|---|
goal-name |
text | yes | Emergency fund |
goal-deadline |
text | yes | Jun 2027 |
goal-saved |
text | yes | € 7.200,00 |
goal-target |
text | yes | € 12.000,00 |
goal-monthly |
text | yes | € 480,00 |
goal-percent |
text | yes | 60% |
goal-bar-style |
text | yes | width:60% |
goal-bar-class |
text | yes | fill fill-ontrack |
goal-note |
text | no | Three months of fixed costs. This pot fills first — nothing else is topped up while it is short. |
Repeat: contribution (0–12×)
One row per month in the contribution schedule; lives inside the schedule optional, so use 0 rows when that block is dropped.
| Slot | Type | Req. | Example |
|---|---|---|---|
month-label |
text | yes | Sep 2026 |
month-amount |
text | yes | € 1.725,00 |
month-running-total |
text | yes | € 17.175,00 |
Optional blocks
schedule— Month-by-month contribution table with running totals; drop it when the plan only needs the goals.rules— The household's own saving rules (transfer day, order of the pots, what happens to windfalls).
The authoritative fill instructions from manifest.json — the only place a template may instruct an agent (why).
One 'goal' card per goal; delete the data-example cards/rows. RE-CHECK EVERY DERIVED FIGURE. goal-percent = saved ÷ target, rounded to a whole number. goal-monthly = (target − saved) ÷ months from now to the deadline, rounded up ('€ 0,00' once reached). The three tiles must equal the goal-row sums: total-target, total-saved, total-monthly. goal-bar-style is exactly 'width:NN%', NN the same whole number, clamped 0–100. goal-bar-class is exactly one of 'fill fill-ontrack', 'fill fill-behind', 'fill fill-done': fill-done once saved reaches target, fill-behind when the monthly amount actually set aside misses the deadline, otherwise fill-ontrack. If a goal is unreachable at the real contribution, say so in goal-note with the month it would land instead, never round to fit. Money exactly like the placeholders ('€ 1.234,56', two decimals), months as 'Jun 2027', dates as '19 Aug 2026'. Each month-running-total = the previous one + month-amount, starting from total-saved. Drop the schedule and/or rules block when not wanted — with five or six goals drop the schedule, or the sheet runs onto a second page. Unknown balances: leave [PLACEHOLDER] and say to fill them via the built-in Edit button. Never give financial advice — this is a planning sheet, not a recommendation.
Published versions are immutable: /t/savings-plan@{version}/ never changes once live. /t/savings-plan/ always points at the latest.