Regeln, die halten: Wie Pinke konsistent bleibt
Pinke ist regelbasiert, weil Konsistenz die eigentliche Superkraft ist. Wenn Kategorien und Tags nächsten Monat und nächstes Jahr dasselbe bedeuten, kannst du vergleichen, Muster erkennen und über deine Ausgaben sprechen, ohne jedes Mal deine eigenen Daten neu erklären zu müssen. Gerade wenn das Budget eng ist, hilft es enorm, ein stabiles Gerüst zu haben.
Dieser Beitrag erklärt, was Regeln & Händler sind, wie die Pipeline funktioniert und wie die Textsuche sich verhält.
Regeln & Händler
Regeln werden während des Imports angewendet und können auch genutzt werden, um bestehende analysierte Zeilen zu aktualisieren. Benutzerregeln überschreiben Systemregeln.
Händler‑Aliase helfen, laute Zahlungsempfängernamen in einen konsistenten Händler zu verwandeln. So wird aus REWE 123, REWE SAGT DANKE usw. derselbe Händler. Dieser normalisierte Name wird zu einem stabilen Eingang für deine Regeln.
Das Ziel ist einfach: chaotische Exporte in ein standardisiertes Schema zu verwandeln, das über die Zeit vergleichbar bleibt.
Wie Regeln funktionieren
Wenn du eine Datei hochlädst, normalisiert Pinke zunächst die Rohzeilen. Das beinhaltet den Aufbau eines Volltext‑Suchblobs und die Erkennung von Händlern via Aliase (damit REWE 123, REWE SAGT DANKE usw. zum gleichen Händler werden).
Wenn du analysierst (oder neu analysierst), führt Pinke diese Schritte in der folgenden Reihenfolge aus:
- Normalisierung + Händlerabgleich (Aliase)
- Benutzerregeln
- Systemregeln
- ML‑Fallback
- Review‑Queue (Muster)
Benutzerregeln gewinnen immer. Wenn du eine persönliche Regel setzt, überschreibt sie alles darunter.
Was jeder Schritt macht (kurz)
Normalisierung + Händlerabgleich (Aliase)
Verwandelt laute Exporte in konsistente Felder und versucht, über Aliase einen kanonischen Händler zu identifizieren. Das Ergebnis ist ein stabiler merchant und ein Volltext‑Blob, der von Regeln genutzt wird.
Benutzerregeln
Deine persönlichen Regeln. Sie haben die höchste Priorität.
Systemregeln
Schreibgeschützte Regeln, die mit Pinke geliefert werden, gruppiert nach Kategorie.
ML‑Fallback
Wird nur verwendet, wenn Regeln nicht gut genug passen. Es ist ein Fallback, nicht das Hauptsystem.
Review‑Queue (Muster)
Alles Unklare bleibt sichtbar als unkategorisiert und kann als Vorschlag unter Ingest → Patterns erscheinen, damit du eine Regel erstellen und sie auf ähnliche Zeilen anwenden kannst.
Beispiel
Eingabe: Text enthält grundsteuer b
Regel angewendet: system.housing > housing.tax.grundsteuer_b
Ergebnis: category=housing, subcategory=tax, group=fixed_costs
Die Kernidee: Ein verständlicher Treffer führt zu einer stabilen Kategorie.
ML‑Fallback‑Beispiel
Der ML‑Fallback wird nur verwendet, wenn keine Regel passt.
Eingabe: Text enthält wolt
ML‑Vorhersage: group=daily_life, category=food, subcategory=delivery
Ergebnis: Von ML kategorisiert (damit es nicht unklassifiziert bleibt).
Textsuche: contains vs matches
Pinke unterstützt zwei Arten von Textmatching für Regeln.
contains
Einfache Teilstring‑Suche (nicht case‑sensitiv).
Beispiel: aws passt auf AWS Emea Luxembourg.
Nutze dies für die meisten Regeln. Es ist schnell, lesbar und schwer zu brechen.
matches (regex)
Reguläre‑Ausdrucks‑Muster für fortgeschrittenes Matching. Verwende dies, wenn du Platzhalter, Alternativen oder bestimmte Zahlenmuster brauchst.
| Muster | Passt auf | Anwendungsfall |
|---|---|---|
amzn.*mktp |
AMZN MKTP DE S1234 |
Wildcard zwischen Wörtern |
paypal.*\d{4} |
PAYPAL REF 8812 |
Ziffern matchen (\d = Ziffer) |
(rewe|aldi|lidl) |
REWE SAGT DANKE |
Eines von mehreren Wörtern matchen |
Tipp: Nutze contains für einfache Schlüsselwörter. Greife zu regex, wenn du Wildcards oder Alternativen brauchst.
„Review‑Queue“ in der Praxis: Muster unter Ingest
Die Pipeline hat einen letzten „Review“-Gedanken: Wenn nach Regeln (und optional ML) noch etwas unklar ist, solltest du es überprüfen können.
In der aktuellen UI ist diese „Review‑Queue“ der Bereich Patterns unter Ingest:
- Analysiere deinen Upload.
- Klicke Patterns.
- Pinke gruppiert ähnliche Zeilen (nach Zahlungsempfänger, Händler oder Beschreibung) und priorisiert unklassifizierte Cluster.
- Du akzeptierst einen Vorschlag, indem du eine Regel erstellst (und optional auf ähnliche Zeilen anwendest).
Wenn du dich jemals fragst „Warum landete das in dieser Kategorie?“, inspiziere die Zeile: Du siehst, was gematcht hat (Benutzerregel vs. Systemregel vs. ML).
Deine Regeln
Deine Regeln sind persönliche Regeln, die Systemregeln überschreiben. Sie unterstützen Matching nach Text, Händler und Betrag.
Wenn du dich jemals fragst „Warum landete das in dieser Kategorie?“, beginne damit, zu prüfen, ob eine Benutzerregel gegriffen hat. Benutzerregeln sind immer das letzte Wort.
Händler und Regeln: Wie sie zusammenhängen
Händler‑Aliase drehen sich um Namenskonsistenz (lauten Text in einen Händler normalisieren). Regeln drehen sich um Kategorisierungskonsistenz (Text/Händler/Betrag auf Gruppe/Kategorie/Unterkategorie abbilden).
In der Praxis verstärken sie sich gegenseitig:
- Händler‑Aliase machen das Feld
merchantstabil, was händlerbasierte Regeln stabil macht. - Regeln können weiterhin auf Volltext matchen, wenn nötig (z. B. für Steuern, Gebühren oder unruhige Beschreibungen).
Du kannst deine Händler (kanonische Namen + Aliase) unter /merchants verwalten.
Systemregeln
Systemregeln sind schreibgeschützte Regeln, gruppiert nach Kategorie. Sie bieten eine starke Basis, damit du nicht von Grund auf neu anfangen musst.
Unten die Gruppierung, wie sie von Pinke verwendet wird. Denk daran wie an:
group
category
subcategory
fixed_costs
housing: broadcast_fee, electricity, heating, rent, storage, tax, waste, water
telecom: mobile_internet
tax: income_tax
insurance: car, general, life
health: refunds
daily_life
housing: furnishing, maintenance, refunds
food: casual_dining, dining, fast, fast_food, kids_meals
groceries: discounter, organic, supermarket
drugstore: personal_care, pharmacy
car: fuel, maintenance, parking, tax
shopping: online, postage, refunds, stationery
leisure: subscriptions
transport: bike, public
clothing: fashion, refunds, shoes
family
education: tuition
fun_lifestyle
gifts: flowers, general
charity: donation
leisure: books, gambling, subscriptions, wellness
sports: equipment
vacation: trip
finance_misc
transfer: p2p, wallet
banking: cash_withdrawal
savings: savings_out
transfer_in: transfer_in
income: child_benefit, salary
Die natürlichen Regel‑Sätze in der UI
Wenn du eine Regel erstellst oder bearbeitest, verwendet Pinke einfache Sätze anstatt sofort YAML anzuzeigen. Zum Beispiel:
- Match‑Builder: „Zeige Ergebnisse, die ALLEN der folgenden Bedingungen entsprechen: …“
- Match‑Anzeige: „Wenn der Text enthält ‚aws.emea‘“ oder „Wenn der Händler REWE ist“
- Annotation: „Setze Gruppe daily_life, Kategorie groceries, Unterkategorie supermarket und Tags food“
Eine gute erste Regel (praktischer Tipp)
Beginne mit einer Regel, die den Alltag erleichtert – zum Beispiel Miete, Strom oder ein Abo mit unübersichtlichem Label. Nutze contains zuerst. Greife nur zu Regex, wenn du einen klaren Grund hast.
Das Ziel ist nicht, hunderte Regeln anzulegen. Das Ziel ist ein stabiles Schema, das über die Zeit vergleichbar bleibt.
Turn your bank statements into insights.
No ads. No tracking. Essential sign-in cookies only.