Files
oikos/operations/runbook-budget-from-csv.md
dtoro b67389b137 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>
2026-06-29 10:55:25 +02:00

134 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.