Published 09.03.2026

Regeln, die halten: Wie Pinke konsistent bleibt

Eine rosa Illustration des Regel‑Systems als Hero‑Bild des Blogposts.
<built-in method copy of dict object at 0xffff7ce65500>

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:

  1. Normalisierung + Händlerabgleich (Aliase)
  2. Benutzerregeln
  3. Systemregeln
  4. ML‑Fallback
  5. 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 &gt; 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:

  1. Analysiere deinen Upload.
  2. Klicke Patterns.
  3. Pinke gruppiert ähnliche Zeilen (nach Zahlungsempfänger, Händler oder Beschreibung) und priorisiert unklassifizierte Cluster.
  4. 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 merchant stabil, 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.

Import your first statement