Skip to main content

Règles — Catégorisation

BR-CAT-001 — Priorité des sources [APP]

CategorySource indique comment la catégorie a été attribuée. En cas de modification, la source est mise à jour en conséquence :

PrioritéCategorySourceDéclencheur
1 (plus forte)MANUALCorrection manuelle par l'utilisateur
2RULERègle de catégorisation auto appliquée
3AICatégorisation par Gemini
4 (plus faible)IMPORTChamp category présent dans le CSV

Une catégorie MANUAL ne doit jamais être écrasée par une règle automatique ou une relance d'IA.


BR-CAT-002 — Types de règles [APP]

Le modèle CategorizationRule supporte trois matchType :

matchTypeComportement
MERCHANT_EXACTmerchantName de la transaction = matchValue (insensible à la casse)
LABEL_CONTAINSlabel de la transaction contient matchValue
AMOUNT_RANGEmatchValue contient "min:max" (ex. "5:15")

Les règles sont évaluées par ordre de priority décroissant (priorité haute = priorité forte). La première règle qui matche s'applique.


BR-CAT-003 — Scope d'une règle [APP]

Une CategorizationRule peut avoir un accountId optionnel :

  • accountId = null → règle globale, s'applique à tous les comptes de l'utilisateur
  • accountId = <id> → règle limitée à un compte spécifique

Les règles spécifiques à un compte ont priorité sur les règles globales à priority égale (à implémenter au niveau applicatif).


BR-CAT-004 — Catégorie parent [APP]

Chaque transaction a un champ categoryParent en plus de category. La hiérarchie est définie dans CategoryConfig :

  • CategoryConfig.parentName = null → catégorie racine
  • CategoryConfig.parentName = <name> → sous-catégorie

L'affichage agrégé (ex. diagramme de répartition) peut utiliser categoryParent pour grouper les sous-catégories. La valeur par défaut lors d'un import sans catégorie est "À catégoriser" / "Inconnu".


BR-CAT-005 — Config catégories : système vs utilisateur [DB]

CategoryConfig @@unique([userId, name])
  • userId = null → config système partagée (catégories par défaut)
  • userId = <id> → config personnalisée de l'utilisateur

Les mots-clés Gemini (geminiKeywords) permettent d'affiner la catégorisation IA par catégorie.


BR-CAT-006 — Valeur par défaut à l'import [APP]

Si le parser CSV ne fournit pas de catégorie, la transaction reçoit :

  • category = "À catégoriser"
  • categoryParent = "Inconnu"
  • categorySource = IMPORT

Ces valeurs servent de signal pour identifier les transactions à catégoriser manuellement.


Voir aussi