docs(operations): add budget-from-csv runbook for Yuvomi
Step-by-step procedure to import N26 CSV transactions into Yuvomi's Budget and Subscriptions modules using the yuvomi-mcp tools. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
133
operations/runbook-budget-from-csv.md
Normal file
133
operations/runbook-budget-from-csv.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Runbook: Budget import from N26 CSV → Yuvomi
|
||||
|
||||
Distil a bank-export CSV into Yuvomi's Budget and Subscriptions modules using
|
||||
the `yuvomi-mcp` tools. Run this whenever a new CSV period needs to be
|
||||
summarised into targets and fixed costs.
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `yuvomi-mcp` is running on LXC 129 and connected as an MCP server in Claude.
|
||||
- The CSV is an N26 export (columns: Booking Date, Value Date, Partner Name,
|
||||
Partner Iban, Type, Payment Reference, Account Name, Amount (EUR), …).
|
||||
|
||||
---
|
||||
|
||||
## Step 1 — Categorise the transactions
|
||||
|
||||
Ask Claude to read the CSV and group rows into:
|
||||
|
||||
| Category | Examples |
|
||||
|---|---|
|
||||
| **Subscriptions** | Miete, SWM, SYNVIA, Carmen Muller (Hundefutter), Netflix, Grover, Rundfunk ARD, KuKita, Lillydoo |
|
||||
| **Recurring income** | Kindergeld, Cookie Share (Stefanie Müller), Pocket Money |
|
||||
| **Groceries** | E-Center, Knuspr, EDEKA, Tegut, VollCorner, Lidl, Netto, REWE, Bakeries |
|
||||
| **Drugstore** | DM, Rossmann |
|
||||
| **Pharmacy / Health** | Apotheke, Dermatologist |
|
||||
| **Transport** | Uber, RYD GMBH, MVG, Handyparken |
|
||||
| **Dining & restaurants** | Restaurant names, Lieferando |
|
||||
| **Children** | Baby products, toys, PEKiP/courses |
|
||||
| **Clothing** | Zalando, Ernsting's, Schuhmair, Thalia |
|
||||
| **Amazon / Online** | Amazon, AMZN |
|
||||
| **Home & Furniture** | IKEA, furniture invoices, Sostrene Grene |
|
||||
| **Internal transfers** | The Joy Pot ↔ Cookie, Hauptkonto splits — **exclude from budgets** |
|
||||
|
||||
---
|
||||
|
||||
## Step 2 — Discover existing category & payment-method IDs
|
||||
|
||||
```
|
||||
list_budget_categories() → note the key strings (e.g. 'housing', 'food')
|
||||
get_subscriptions_meta() → note category_id and payment_method_id values
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 3 — Create subscriptions
|
||||
|
||||
For each fixed recurring cost, call:
|
||||
```
|
||||
stage_create_subscription(
|
||||
name="...",
|
||||
amount=...,
|
||||
billing_cycle="monthly", # or "yearly" with cycle_interval
|
||||
cycle_interval=1, # 3 for quarterly
|
||||
next_payment_date="YYYY-MM-DD",
|
||||
category_id=..., # from get_subscriptions_meta()
|
||||
)
|
||||
commit_pending(pending_id)
|
||||
```
|
||||
|
||||
**Standard subscriptions (as of Jun 2026):**
|
||||
|
||||
| Name | Amount | billing_cycle | cycle_interval |
|
||||
|---|---|---|---|
|
||||
| Miete | 1080.00 | monthly | 1 |
|
||||
| Strom (SWM) | 79.00 | monthly | 1 |
|
||||
| Internet/TV/Telefon (SYNVIA) | 29.99 | monthly | 1 |
|
||||
| Hundefutter | 75.00 | monthly | 1 |
|
||||
| Netflix | 8.00 | monthly | 1 |
|
||||
| Grover | 16.90 | monthly | 1 |
|
||||
| Rundfunk ARD | 55.08 | monthly | 3 |
|
||||
| KuKita Daycare (Leon) | 503.00 | monthly | 1 |
|
||||
| Lillydoo diapers | 56.70 | monthly | 2 |
|
||||
|
||||
---
|
||||
|
||||
## Step 4 — Add recurring income entries
|
||||
|
||||
```
|
||||
stage_add_budget_entry(
|
||||
title="Kindergeld",
|
||||
amount=55.00,
|
||||
category="<income category key>",
|
||||
date="YYYY-MM-01",
|
||||
is_recurring=True,
|
||||
recurrence_interval="monthly",
|
||||
)
|
||||
commit_pending(pending_id)
|
||||
```
|
||||
|
||||
**Standard recurring income:**
|
||||
|
||||
| Title | Amount | category |
|
||||
|---|---|---|
|
||||
| Kindergeld | +55.00 | Sozialleistungen |
|
||||
| Cookie Share | +1600.00 | Erwerbseinkommen (adjust to actual amount) |
|
||||
|
||||
---
|
||||
|
||||
## Step 5 — Set budget targets (monthly spending categories)
|
||||
|
||||
**From the Jan–Jun 2026 6-month averages:**
|
||||
|
||||
| Category | Monthly target |
|
||||
|---|---|
|
||||
| Groceries | 600 € |
|
||||
| Children products & activities | 150 € |
|
||||
| Dining & restaurants | 100 € |
|
||||
| Transport | 70 € |
|
||||
| Drugstore | 55 € |
|
||||
| Clothing | 40 € |
|
||||
| Amazon / Online | 40 € |
|
||||
| Home & furniture | 100 € |
|
||||
| Pharmacy & health | 15 € |
|
||||
|
||||
---
|
||||
|
||||
## Step 6 — Verify
|
||||
|
||||
```
|
||||
get_budget_summary("YYYY-MM")
|
||||
list_subscriptions()
|
||||
```
|
||||
|
||||
Expected fixed costs total: ~1848 €/month (before KuKita; ~2351 € after).
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### 2026-06-29 — Initial runbook
|
||||
Created from Jan–Jun 2026 N26 Cookie account analysis.
|
||||
Reference in New Issue
Block a user