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:
2026-06-29 10:55:25 +02:00
parent 45b7813eb7
commit b67389b137

View 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 JanJun 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 JanJun 2026 N26 Cookie account analysis.