Extend demo seed transactions through April 2026

Adds salary, all recurring bills, groceries, eating out, coffee, and
shopping for April 2026 so the demo feels current (today is 23/04/2026).
Also adds an April net worth snapshot row.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
megaproxy 2026-04-23 22:57:39 +00:00
parent 664b530136
commit 8fff5f4217

View file

@ -135,8 +135,8 @@ async def seed_demo(db: AsyncSession) -> None:
txns = []
# ── Monthly recurring transactions (Oct 2025 Mar 2026) ──────────────
months = [(2025, 10), (2025, 11), (2025, 12), (2026, 1), (2026, 2), (2026, 3)]
# ── Monthly recurring transactions (Oct 2025 Apr 2026) ──────────────
months = [(2025, 10), (2025, 11), (2025, 12), (2026, 1), (2026, 2), (2026, 3), (2026, 4)]
for year, month in months:
ny, nm = next_month(year, month)
@ -169,7 +169,7 @@ async def seed_demo(db: AsyncSession) -> None:
d(year, month, 3), True, rr("monthly", -25.00, d(ny, nm, 3).isoformat(), d(year, month, 3).isoformat())))
# Energy (variable)
energy = [-102, -98, -115, -108, -103, -95][months.index((year, month))]
energy = [-102, -98, -115, -108, -103, -95, -88][months.index((year, month))]
txns.append(txn(monzo, "expense", energy,
"DIRECT DEBIT OVO ENERGY", "OVO Energy", "Electricity",
d(year, month, 5), True, rr("monthly", energy, d(ny, nm, 5).isoformat(), d(year, month, 5).isoformat())))
@ -197,7 +197,8 @@ async def seed_demo(db: AsyncSession) -> None:
# TfL top-ups (2/month)
tfl = [(-40, 17, -30, 29), (-35, 15, -40, 28), (-40, 16, -35, 30),
(-40, 17, -30, 28), (-40, 14, -35, 27), (-40, 17, -30, 29)][months.index((year, month))]
(-40, 17, -30, 28), (-40, 14, -35, 27), (-40, 17, -30, 29),
(-40, 10, -35, 22)][months.index((year, month))]
txns.append(txn(monzo, "expense", tfl[0], "TfL Travel Top-Up", "Transport for London",
"Public Transport", d(year, month, tfl[1])))
txns.append(txn(monzo, "expense", tfl[2], "TfL Travel Top-Up", "Transport for London",
@ -242,7 +243,8 @@ async def seed_demo(db: AsyncSession) -> None:
(2026, 2, 14, -61.40, "Sainsbury's"), (2026, 2, 21, -55.90, "Lidl"),
(2026, 2, 28, -80.45, "Waitrose"), (2026, 3, 7, -69.30, "Tesco"),
(2026, 3, 14, -58.75, "Lidl"), (2026, 3, 21, -76.20, "Sainsbury's"),
(2026, 3, 28, -65.80, "Tesco"),
(2026, 3, 28, -65.80, "Tesco"), (2026, 4, 5, -72.40, "Tesco"),
(2026, 4, 12, -61.15, "Sainsbury's"), (2026, 4, 19, -55.90, "Lidl"),
]
for y, m, day, amt, merch in groceries:
txns.append(txn(monzo, "expense", amt, f"{merch} Groceries", merch, "Groceries", date(y, m, day)))
@ -258,6 +260,7 @@ async def seed_demo(db: AsyncSession) -> None:
(2026, 2, 6, -42.00, "Dishoom"), (2026, 2, 14, -78.00, "Restaurant"),
(2026, 2, 22, -31.50, "Deliveroo"), (2026, 3, 8, -38.00, "Wagamama"),
(2026, 3, 15, -25.00, "Deliveroo"), (2026, 3, 22, -47.00, "Nando's"),
(2026, 4, 8, -44.00, "Dishoom"), (2026, 4, 18, -27.50, "Deliveroo"),
]
for y, m, day, amt, merch in eating_out:
txns.append(txn(monzo, "expense", amt, merch, merch, "Eating Out", date(y, m, day)))
@ -274,6 +277,8 @@ async def seed_demo(db: AsyncSession) -> None:
(2026, 2, 12, -4.80, "Costa Coffee"), (2026, 2, 20, -5.50, "Blank Street"),
(2026, 2, 27, -4.80, "Pret a Manger"), (2026, 3, 5, -4.80, "Costa Coffee"),
(2026, 3, 12, -5.20, "Starbucks"), (2026, 3, 19, -4.50, "Pret a Manger"),
(2026, 4, 10, -4.80, "Costa Coffee"), (2026, 4, 17, -5.20, "Starbucks"),
(2026, 4, 22, -4.50, "Pret a Manger"),
]
for y, m, day, amt, merch in coffee:
txns.append(txn(monzo, "expense", amt, merch, merch, "Coffee", date(y, m, day)))
@ -300,6 +305,8 @@ async def seed_demo(db: AsyncSession) -> None:
(2026, 2, 25, -19.99, monzo, "Amazon", "AMAZON.CO.UK", "Other Expense"),
(2026, 3, 8, -38.50, monzo, "Amazon", "AMAZON.CO.UK", "Other Expense"),
(2026, 3, 22, -55.00, monzo, "Amazon", "AMAZON.CO.UK", "Other Expense"),
(2026, 4, 9, -29.99, monzo, "Amazon", "AMAZON.CO.UK", "Other Expense"),
(2026, 4, 16, -42.00, monzo, "Boots", "Boots", "Personal Care"),
# Car insurance (October, annual)
(2025,10, 15, -485.00, monzo, "Aviva", "AVIVA CAR INSURANCE ANNUAL", "Car Insurance"),
# Amex purchases