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 = [] txns = []
# ── Monthly recurring transactions (Oct 2025 Mar 2026) ────────────── # ── Monthly recurring transactions (Oct 2025 Apr 2026) ──────────────
months = [(2025, 10), (2025, 11), (2025, 12), (2026, 1), (2026, 2), (2026, 3)] months = [(2025, 10), (2025, 11), (2025, 12), (2026, 1), (2026, 2), (2026, 3), (2026, 4)]
for year, month in months: for year, month in months:
ny, nm = next_month(year, month) 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()))) d(year, month, 3), True, rr("monthly", -25.00, d(ny, nm, 3).isoformat(), d(year, month, 3).isoformat())))
# Energy (variable) # 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, txns.append(txn(monzo, "expense", energy,
"DIRECT DEBIT OVO ENERGY", "OVO Energy", "Electricity", "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()))) 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 top-ups (2/month)
tfl = [(-40, 17, -30, 29), (-35, 15, -40, 28), (-40, 16, -35, 30), 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", txns.append(txn(monzo, "expense", tfl[0], "TfL Travel Top-Up", "Transport for London",
"Public Transport", d(year, month, tfl[1]))) "Public Transport", d(year, month, tfl[1])))
txns.append(txn(monzo, "expense", tfl[2], "TfL Travel Top-Up", "Transport for London", 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, 14, -61.40, "Sainsbury's"), (2026, 2, 21, -55.90, "Lidl"),
(2026, 2, 28, -80.45, "Waitrose"), (2026, 3, 7, -69.30, "Tesco"), (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, 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: for y, m, day, amt, merch in groceries:
txns.append(txn(monzo, "expense", amt, f"{merch} Groceries", merch, "Groceries", date(y, m, day))) 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, 6, -42.00, "Dishoom"), (2026, 2, 14, -78.00, "Restaurant"),
(2026, 2, 22, -31.50, "Deliveroo"), (2026, 3, 8, -38.00, "Wagamama"), (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, 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: for y, m, day, amt, merch in eating_out:
txns.append(txn(monzo, "expense", amt, merch, merch, "Eating Out", date(y, m, day))) 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, 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, 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, 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: for y, m, day, amt, merch in coffee:
txns.append(txn(monzo, "expense", amt, merch, merch, "Coffee", date(y, m, day))) 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, 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, 8, -38.50, monzo, "Amazon", "AMAZON.CO.UK", "Other Expense"),
(2026, 3, 22, -55.00, 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) # Car insurance (October, annual)
(2025,10, 15, -485.00, monzo, "Aviva", "AVIVA CAR INSURANCE ANNUAL", "Car Insurance"), (2025,10, 15, -485.00, monzo, "Aviva", "AVIVA CAR INSURANCE ANNUAL", "Car Insurance"),
# Amex purchases # Amex purchases