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

3.6 KiB
Raw Blame History

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.