Règles de valeurs par défaut

Quand une donnée manque, est vide, illisible ou inconnue, la solution ne s’arrête pas toujours : elle retient une valeur ou un comportement de repli (une devise, une fréquence, une convention de calcul, une autre courbe). Cette page recense chaque règle de ce type dans l’import, les courbes, le calcul des flux, la projection du bilan, le reporting et l’application.

Le principe retenu est qu’aucune valeur par défaut n’est silencieuse : chaque règle est appliquée, documentée ici, et signalée par un avertissement codé (WARNING, effet FLAG, voir la Référence des anomalies), regroupé par fichier ou par run avec le nombre d’opérations concernées. Chaque règle a son code et sa fiche ; seules les conventions de calcul, appliquées à toutes les opérations, n’ont pas d’avertissement.

Note

Comment lire les tableaux. Donnée nomme le champ ou la valeur concernée, Condition le cas où la règle s’applique, Valeur retenue ce que la solution fait à la place. Signalement donne :

  • le code de l’avertissement qui signale la règle, avec un lien vers sa fiche dans la Référence des anomalies : message, cause, conséquence sur les chiffres et que faire (le niveau est précisé lorsqu’il n’est pas WARNING). Plusieurs règles voisines peuvent partager un même code ;
  • convention pour une hypothèse de calcul appliquée à toutes les opérations, documentée sans avertissement.

Où voir les avertissements

Un avertissement est montré à l’un de trois endroits, selon ce dont il dépend :

  • le journal d’anomalies de l’import, du run ou du reporting (onglets Import Anomalies et Calculation Logs, et leur export Excel), pour une règle qui ne dépend que des données enregistrées. Elle est évaluée une seule fois, quand la solution enregistre le résultat du moteur, et listée une seule fois par code et par référence : métriques sans ligne pour le scénario de référence (RUN-018) ou opérations de même référence (RUN-021) dans le journal du run ; dossier ALCO sans rapprochement comptable (RPT-061) ou sans vue comportementale (RPT-062) dans celui du reporting ; lignes de balance écartées (RPT-063) et postes à plusieurs lignes de classification (RPT-064) dans celui de l’import. Les imports, runs et reportings enregistrés avant cette version ne sont pas recalculés : leur journal ne porte pas ces codes ;
  • un bandeau d’avertissements au-dessus du résultat, pour une règle qui dépend aussi de ce que vous demandez (projection, scénario de référence, génération de comparaison) : sur les métriques, l’onglet Gaps et son rapport, le sous-onglet Reconciliation et l’emplacement Informations de la situation de l’import guidé. Il donne une ligne par code avec le nombre d’occurrences, le message et le lien vers la fiche du code. Il se replie d’un clic et n’apparaît pas quand rien n’est à signaler ;
  • une notification avant le téléchargement, qui reste affichée jusqu’à sa fermeture, avec les mêmes lignes et les mêmes liens : la solution vérifie, avec les paramètres choisis, ce que le fichier va rencontrer (dossier ALCO et son aperçu, gap en Excel, CSV ou parquet, export des métriques), l’affiche, puis le téléchargement suit. La même notification suit un enregistrement qui ferme l’écran (courbe de l’éditeur de courbes, référentiel de classification créé).

1. Import : fichiers et parseurs

Lecture de l’archive, des fichiers d’opérations, de la classification et de la balance (Import : traitements et conversions, Import Crédit Logement).

1.1 Archive, format et cellules

Donnée Condition Valeur retenue Signalement
Référence du portefeuille absente des informations de la situation ‘default_reference’ IMP-029
Nom du portefeuille absent des informations de la situation ‘default_name’ IMP-030
Montant / nombre (toute cellule numérique texte) texte à un seul séparateur suivi de trois chiffres, ambigu (‘1.234’ ou ‘1,234’) lu comme décimal (1,234) et non comme milliers (1234) : les formes décimales sont essayées avant les formes groupées IMP-031
Entier (classification : colonne Sign) cellule absente ou vide 0 IMP-032
Booléens de la classification (opération financière, actif modélisé, valeur brute, nominal, EVE, NIM, sensible au taux, MV) cellule absente ou vide false IMP-033
Date de la balance comptable cellule date Excel antérieure au 31/12/1910 null (date absente) IMP-034
Date de la balance comptable cellule ni Date ni texte (nombre : série Excel d’une formule, booléen…) ou cellule nulle null (date absente), ligne gardée IMP-035
Type de taux (TR/TF) valeur ni ‘tr’/‘taux revisable’ ni ‘tf’/‘taux fixe’, ou non texte non appliquée : aucun importeur ne lit cette colonne aucun (IMP-036 retiré)
Ligne d’un fichier texte délimité (balance .txt/.csv) ligne plus courte que la première ligne (colonnes finales manquantes) colonnes manquantes remplies par une chaîne vide IMP-037
Ligne d’un fichier texte délimité ligne plus longue que la première ligne colonnes en trop ignorées IMP-038
Séparateur du fichier texte aucun de ; tab , | sur la première ligne, ou égalité de fréquence ‘;’ (ou le premier de la liste ; tab , | en cas d’égalité) IMP-039
En-tête d’un fichier texte délimité deux colonnes portent le même nom (après minuscules/NFD) la dernière colonne écrase la précédente IMP-040
Fichiers de l’archive nom contenant ‘~’, ‘.ds_store’ ou ‘_macos’ (n’importe où dans le nom) fichier retiré de l’import IMP-041
Rôle de fichier donné par la requête d’import (import guidé) le nom donné pour un rôle n’existe pas dans l’archive le rôle retombe sur la détection par nom de fichier IMP-044
Rôle de fichier donné par la requête d’import plusieurs fichiers listés pour un rôle à fichier unique le premier listé gagne (putIfAbsent), les suivants ne sont pas des deals non plus IMP-045
Fichier de l’archive sans rôle dans la requête la requête donne des rôles mais pas à ce fichier rôle déduit du nom ; à défaut, lu comme fichier de deals IMP-046
Résumé d’un fichier de l’import guidé exception pendant la construction du résumé fichier validé sans résumé IMP-047
Format de données de la configuration client configuration sans dataFormat format déduit du libellé client (‘credit logement’ -> CREDIT_LOGEMENT) IMP-049
Fichier info_*.json de l’archive présent dans l’archive, alors que l’arrêté vient de l’écran d’import ou de la requête fichier ignoré : ni lu, ni pris pour un fichier de deals IMP-060

1.2 Opérations

Donnée Condition Valeur retenue Signalement
Fichier de deals CSV erreur de lecture en cours de fichier les lignes lues jusque-là sont conservées, la suite est perdue TRX-003 (ERROR)
Fichier de deals Excel erreur de lecture en cours de classeur les deals lus jusque-là sont conservés TRX-004 (ERROR)
Deal : devise cellule vide ou pas de colonne ‘Currency’ (extraits swaps et titres) EUR TRX-046
Deal : produit nom de fichier contenant ‘securities’ produit SECURITY quel que soit le mapping products de l’Instrument Type TRX-047
Deal : tags requis (dataMapping.tags) colonne du tag absente de l’extrait deal importé sans ce tag TRX-048
Titre : marge d’un fixe / coupon d’un variable cellule vide ou non numérique 0 %, sans avertissement TRX-049
Titre : Instrument Type (pour le sens) clé instrumentType non mappée lu sous la clé isin TRX-050
Référence du deal cellule de référence vide référence ‘<préfixe>_null’ (ex. ‘LO_null’), deal gardé TRX-051
Toute cellule lue comme texte (référence, contrepartie, devise, libellé de taux, fréquence…) cellule numérique (Double) partie entière (intValue) ; au-delà de 2 147 483 647 plafonnée à cette valeur TRX-052
Mode d’intérêt (prêt, dépôt à terme) lu dans le type d’instrument type d’instrument non vide qui ne contient pas ‘capitalise’ intérêts simples (SIMPLE) TRX-053
Libellé du taux de référence (index) cellule vide aucun index ; un deal flottant est valorisé à son taux courant TRX-054
Ténor de la base de taux (colonne *Tenor) clé *Tenor non mappée, colonne absente, cellule vide ou ténor illisible (‘ACTUAL’, texte libre) recherche sur le seul libellé (courbe du libellé nu) TRX-055
Libellé du taux (deal à taux fixe) libellé absent de dataMapping.indexes aucun index, libellé conservé TRX-020
Libellé du taux (deal flottant, fichier de deals validé seul) libellé absent de dataMapping.indexes et courbes inconnues aucun index TRX-021
Libellé du taux (deal flottant) libellé absent de dataMapping.indexes mais égal (sans casse) au nom d’une courbe le libellé est utilisé comme index TRX-022
Libellé du taux (deal flottant) libellé absent de dataMapping.indexes et d’aucune courbe aucun index : valorisé au taux courant, insensible aux chocs TRX-023
Sens du deal (Borrow or Invest) cellule ni BORROWING ni INVESTMENT BUY TRX-024
Sens du deal (Borrow or Invest) clé ‘nature’ non mappée, ou cellule vide / colonne absente sens déduit du type d’instrument (CAT * = placement, Emprunt * = emprunt ; règles propres aux titres et pensions) TRX-027
Sens du deal sens absent et type d’instrument non reconnu BUY TRX-025
Taux d’intérêt (prêt, dépôt à terme flottants) taux à 0 sur un deal FLOATING fixing inconnu (null) : le coupon courant est lu sur la courbe CFW-072
Nominal restant (Remaining Face Value) clé remainingNominal non mappée ou cellule vide nominal d’origine TRX-056
Nominal restant nominal restant différent du nominal d’origine (ou origine vide) deal booké sur le nominal restant (0 inclus) TRX-029
Fréquence de révision du taux (repricingPeriod) valeur non reconnue (ex. quotidienne) période de révision non renseignée TRX-057
Cellule numérique d’un deal (montant, taux, marge) cellule absente ou vide null TRX-058
Dates du deal (opération, règlement, échéance, call…) date texte ou série Excel antérieure au 01/01/1950 null (date absente) TRX-059
Dates du deal cellule vide (clé mappée, colonne présente) null TRX-060
Dates texte du deal date ambiguë jj/mm ou mm/jj (ex. ‘01/02/2025’) lue jour d’abord (1er février) ; format mm/jj seulement si jj/mm échoue TRX-061
Dates du deal en série Excel (cellule formule numérique) cellule numérique lue comme série Excel système 1900, heure ignorée ; le drapeau 1904 du classeur est ignoré TRX-062
Fréquence de paiement cellule vide ou non texte null (puis annuelle pour prêts et dépôts) TRX-063
Base de calcul des intérêts (convention de jours) cellule vide entrée ‘default’ de dataMapping.rateBase TRX-064
Contrepartie (nom) cellule vide contrepartie ‘DEFAULT_NAME’ TRX-065
Type et notation de la contrepartie toujours (aucune colonne lue) type RETAIL, notation ‘A’ sur l’échelle ‘A’ TRX-066
Type de taux d’une jambe de swap (Pay/Rec Fixed/Floating) clé non mappée, cellule vide ou valeur ni FIXED ni FLOATING FLOATING si la jambe cite un libellé de taux, FIXED sinon TRX-067
Jambe de swap jambe déclarée FLOATING sans libellé de taux valorisée à son taux courant TRX-030
Jambe de swap jambe déclarée FIXED qui cite un libellé de taux bookée fixe, index retiré, libellé conservé TRX-031
Convention de jours d’une jambe de swap colonne vide, règle de jour ouvré (FOLLOWING, ACTUAL DATE…) ou valeur non reconnue convention de marché : EUR fixe 30/360, EUR flottant EURIBOR/€STR/EONIA ACT/360, sinon rateBase.default TRX-028
Marge d’une jambe de swap cellule vide spread null TRX-068
Échéancier d’une jambe de swap toujours ; date de 1er paiement à plus de 4 jours de l’échéancier échéancier reculé depuis l’échéance (stub au début), date de 1er paiement ignorée TRX-032
Date d’opération du swap clé dealDate non mappée ou cellule vide date de règlement TRX-069
Taux de coupon d’un titre (couponRate) cellule vide ou non numérique 0 % TRX-034
Marge de coupon d’un titre (couponMarginRate) cellule vide ou non numérique 0 % TRX-035
Date de call d’un titre callDate vide date de call de l’émetteur (issuerCallDate), exercée avec certitude TRX-070
Date de call d’un titre callDate et issuerCallDate renseignées et différentes la plus tôt des deux TRX-033
Devise d’une pension toujours (aucune colonne lue) EUR TRX-071
Taux d’une pension (deux jambes) toujours taux FIXED, spread 0 TRX-072
Taux d’une pension (interestRate, rateLeg1) cellule vide taux null TRX-058
Fréquence de paiement des intérêts d’un prêt cellule vide ou non texte annuelle (YEAR) TRX-073
Marge d’un prêt / dépôt à terme (interestMargin) cellule vide spread null TRX-068
Marges de liquidité et commerciale d’un prêt clé non mappée, colonne absente ou cellule vide null : le spread de liquidité du contexte s’applique TRX-074
Courbe de liquidité d’un prêt clé non mappée ou cellule vide ; libellé non mappé aucune courbe de liquidité propre (null) TRX-075
Fréquence de paiement d’un dépôt à terme type d’instrument contenant ‘capitalise’ paiement à l’échéance (AT_MATURITY), quelle que soit la fréquence du fichier TRX-076
Fréquence de paiement d’un dépôt à terme cellule vide ou non texte annuelle (YEAR) TRX-073

1.3 Classification

Donnée Condition Valeur retenue Signalement
Classification : code FINREP (mapping_compta_irrbb) nom non reconnu par FinrepEnum la catégorie n’a pas de code FINREP ; ses deals sortent du reporting CLS-005
Classification : code FINREP (côté / Row Code) côté bilan ou Row Code incohérent avec le code FINREP la ligne FINREP est écartée : catégorie sans code FINREP, deals exclus du reporting CLS-006 (ERROR)
Classification : catégorie comptable catégorie ‘<Bilan> <Contrepartie>’ absente de mapping_compta_irrbb lignes construites avec un code FINREP null ; deals exclus du reporting CLS-010
Classification : rôle de couverture (colonne 3 de mapping_compta_irrbb) cellule vide, colonne absente ou ligne courte UNSPECIFIED sur une ligne dérivée CLS-020
Classification : rôle de couverture valeur qui n’est pas un HedgeRole UNSPECIFIED CLS-007
Rôle de couverture d’un deal pas de classification / pas de code FINREP, ou code FINREP non dérivé NONE, même si la catégorie déclare un rôle CLS-021
Classification : numéro de compte (mapping_compta, histo) cellule numérique avec partie décimale tronqué à l’entier (intValue) CLS-022
Classification : feuille ‘histo’ (deal -> compte) feuille absente aucune correspondance explicite ; tous les deals passent par le mapping instrument CLS-023
Feuille histo : compte du deal compte non déclaré dans mapping_compta ligne ignorée ; le deal retombe sur le mapping instrument CLS-012
Feuille histo : deal en double deal présent plusieurs fois sur le même compte première occurrence conservée CLS-013
Feuille histo : deal sur deux comptes deal présent sur deux comptes différents correspondance supprimée ; le deal retombe sur le mapping instrument CLS-014 (ERROR)
Côté de bilan d’une catégorie ‘<Bilan> <Contrepartie>’ catégorie ne commençant par aucun mot de bilan connu null (côté inconnu) CLS-024

1.4 Balance, écoulement et flux préfixés

Donnée Condition Valeur retenue Signalement
Fichier de flux préfixés (feuille) plusieurs feuilles portent un en-tête de flux seule la première feuille par ordre alphabétique est lue BAL-003
Fichier de flux préfixés (feuille) aucune feuille ne porte d’en-tête (‘Deal No’ / ‘action_dt’) la première feuille par ordre alphabétique est lue BAL-004
Fichier de flux préfixés (ligne d’en-tête) aucune ligne d’en-tête reconnue lecture des données à partir de la ligne 3 (position historique) BAL-004
Flux préfixés : numéro de deal cellule numérique avec partie décimale tronqué à l’entier (intValue) BAL-014
Flux préfixés : fréquence du taux de base cellule vide aucune fréquence de révision (null) BAL-015
Ligne de balance modélisée : compte toujours (ligne rattachée à une stratégie d’écoulement) classée sur le préfixe de la stratégie (référence sans ‘*’), pas sur son propre compte convention
Ligne de balance modélisée : devise toujours (la balance n’a pas de colonne devise) EUR BAL-016
Ligne de balance modélisée : contrepartie toujours contrepartie ‘DEFAULT’, type CORPORATE BAL-017
Ligne de balance modélisée : sens et dates toujours BUY ; dates de transaction et de règlement = date d’arrêté convention
Ligne de balance modélisée : classification fichier de classification inutilisable ligne modélisée sans code FINREP CLS-018
Stratégie d’écoulement : préfixe de compte même préfixe listé plusieurs fois la première stratégie est appliquée, les autres ignorées BAL-012
Stratégie d’écoulement : préfixes qui se recouvrent un compte correspond à plusieurs préfixes le préfixe le plus long l’emporte BAL-013
Ligne de balance comptable compte qu’aucune stratégie d’écoulement ne couvre ligne ignorée (pas de transaction modélisée) BAL-018
Compte du grand livre : type ni la classification ni accountingMapping ne le type compté comme compte de bilan (à couvrir par deals ou stratégie) BAL-011

2. Courbes

Construction des courbes à l’import et lecture des taux pendant le calcul (Courbes de taux).

2.1 À l’import

Donnée Condition Valeur retenue Signalement
Indice d’actualisation ni clé de dataMapping.indexes ni nom de courbe le libellé brut est gardé comme indice CRV-003 (ERROR)
Fichier de courbes (feuille) plusieurs feuilles avec un en-tête de courbe seule la première feuille par ordre alphabétique est lue CRV-005
Fichier de courbes (xlsx) : ligne moins de 8 cellules remplies ligne ignorée (ni en-tête ni point) CRV-019
Point de courbe (xlsx) : ratedate cellule vide ou non typée date (texte, nombre) date absente (null) ; la courbe est clé ‘<nom>_null’ CRV-020
Point de courbe même indice, même date, même maturité en double la dernière valeur lue écrase les précédentes CRV-021
Courbe : devise points d’un même indice/date avec des devises différentes devise du premier point lu CRV-022
Courbe : période de refixation le nom de l’indice ne porte pas de maturité (EURIBOR, TEC2…) null ; en aval 3 mois (RateCurveHelper DEFAULT_FIXING_PERIOD) CRV-023
Courbe : instrument coté nom d’indice sans ‘SWAP’ MONEY_MARKET convention
Courbe : cotation (dataMapping.curveQuotations) courbe non listée null, lu comme taux zéro-coupon CRV-024
Courbe : date à plus de 50 jours de la date d’arrêté courbe utilisée quand même CRV-011
Courbe de spread de liquidité toujours (le fichier n’en fournit pas) courbe LIQUIDITY_SPREAD EUR plate à 0 (1d, 1m, 10y) CRV-025
Courbe composée une des courbes feuilles absente du fichier courbe composée non construite CRV-012 (ERROR)
Courbe composée : date de la feuille plusieurs dates pour un indice feuille date la plus proche de l’arrêté ; la plus récente si arrêté inconnu CRV-026
Courbe composée : points communs à deux feuilles une maturité présente dans deux feuilles sous leurs seuils la feuille du seuil le plus long écrase la valeur de la plus courte CRV-027
Courbe composée : devise toujours EUR, quelles que soient les devises des feuilles CRV-028

2.2 Au calcul

Donnée Condition Valeur retenue Signalement
Taux lu sur une courbe échéance avant le premier point ou au-delà du dernier point de la courbe extrapolation plate : taux du premier (resp. dernier) point CFW-059
Courbe de taux à un seul point la courbe ne porte qu’un pilier taux constant sur toutes les maturités CFW-060
Maturité lue sur la courbe nombre de jours négatif (date cible avant la date de la courbe) taux 0 convention
Courbe d’un index (date de référence) plusieurs courbes du même index ou aucune à la date d’évaluation courbe dont la date est la plus proche de la date d’évaluation (avant ou après), la première de la liste en cas d’égalité ; signalé seulement au-delà de 10 jours CFW-057
Courbe de change (paire) pas de courbe pivot/devise courbe inverse devise/pivot utilisée telle quelle ; première courbe FX de la paire si plusieurs convention
Courbe de change / courbe de spread de liquidité plusieurs courbes FX d’une même paire, ou plusieurs courbes LIQUIDITY_SPREAD d’une même devise la première de la liste est prise CFW-061
Cotation de la courbe (PAR/ZERO) cotation absente courbe lue comme zéro-coupon (pas de bootstrap) CRV-024
Instrument d’un pilier de courbe PAR instrument non renseigné pour le ténor (ou carte des instruments absente) monétaire jusqu’à 365 jours, swap au-delà CFW-062
Facteur d’actualisation annuel manquant (bootstrap PAR) année avant le premier pilier swap sans point monétaire à ce nombre de jours taux monétaire interpolé linéairement en jours, plat au-delà des points monétaires (ex. 1y = taux 12m prolongé de 360 à 365 j) convention
Pilier swap annuel manquant (bootstrap PAR) année entre deux piliers swap, ou avant le premier pilier swap au-delà des points monétaires taux par interpolé linéairement en années entre les piliers ; avant le premier pilier, taux par du premier pilier prolongé à plat CFW-063
Devise de la courbe (calibrage des chocs IRRBB) devise absente ou hors des 11 devises calibrées (EUR, USD, GBP, JPY, CHF, CAD, AUD, SEK, SGD, HKD, CNY) tailles de chocs EUR (parallèle 200 bp, court 250 bp, long 100 bp) CFW-064
Type de courbe (RATE/FX/LIQUIDITY_SPREAD) type absent courbe reprise non choquée dans tous les scénarios CFW-065
Courbe PAR choquée la courbe de base ne se bootstrappe pas aucune courbe zéro choquée enregistrée ; la lecture échoue ensuite (CFW-048) CFW-066
Spread de liquidité lu sur la courbe LIQUIDITY_SPREAD la lecture de la courbe échoue (courbe vide, date antérieure à sa date de référence, date nulle) spread de liquidité 0 CFW-067
Date du flux actualisé flux à la date d’évaluation ou avant facteur d’actualisation 1 convention
Période de refixing d’un index variable (flux sans échéancier : tranches d’écoulement) nom d’index sans ténor reconnu et courbe sans refixingPeriod refixing supposé trimestriel : prochaine fixation à la prochaine fin de trimestre civil CFW-041
Ténor d’un index variable (mode LAST_FIXING) nom d’index sans ténor reconnu et courbe sans refixingPeriod ténor 3 mois pour lire le « taux courant » de l’index CFW-068
Ténor d’un index variable toujours (avant refixingPeriod de la courbe) ténor déduit par sous-chaîne du nom : estr/eonia/o/n -> 1d, ‘12m’ ou ‘1y’ -> 12m, ‘6m’, ‘3m’, ‘1m’ CFW-069
Date de prochaine fixation (flux sans échéancier) ténor 1d/1m/3m/6m/12m fin du mois / trimestre / semestre / année civil(e) suivant(e), lendemain pour l’overnight ; autre ténor : date d’évaluation + ténor convention

3. Cash-flows et projection

Génération des flux par opération, projection du bilan et calculs de solvabilité.

3.1 Flux par opération

Donnée Condition Valeur retenue Signalement
Tout BigDecimal d’un deal cloné (taux, spread, montants) valeur null au clonage (production nouvelle, repricing du bilan) 0 CFW-070
Produit d’un cash-flow produit null ‘ALL’ convention
Montant d’intérêts global (composante GLOBAL) globalAmount null 0 CFW-071
Facteur d’actualisation d’un flux lecture de la courbe d’actualisation impossible (index absent, taux <= -100 %, courbe vide…) flux conservé sans facteur d’actualisation (null) CFW-024 (ERROR)
Taux variable (index) index vide / non mappé (aucune courbe à lire) coupon valorisé au taux courant du deal (rate.value, 0 si absent), insensible aux chocs, coupon CERTAIN CFW-031
Fixing courant d’un taux variable (rate.value) valeur nulle ou égale à 0 fixing considéré inconnu : le coupon en cours est lu sur la courbe (forward depuis la date d’évaluation) CFW-072
Début de période d’un coupon variable début absent, antérieur à la date d’évaluation ou non antérieur à la fin forward lu depuis la date d’évaluation jusqu’à la fin de période (pas de fixing historique) convention
Mode de projection des taux (EngineParameterModel.rateProjectionMode) paramètres ou mode absents de la requête FORWARD convention
Dernier taux connu (mode LAST_FIXING) coupon variable INCERTAIN ligne de préfixing couvrant la date d’évaluation, sinon fixing du deal, sinon taux courant de l’index sur la courbe du scénario (+ choc du scénario sur les deux premiers) convention
Spread / marge du taux spread absent 0 CFW-073
Base de calcul (day count) du taux base absente EXACT_365 pour la lecture du forward ; ailleurs NPE (deal rejeté CFW-004) CFW-074
Taux d’un dépôt (non échéancé) taux absent taux FIXE 0 %, EXACT_365, intérêts simples CFW-014
Taux d’un produit à terme (prêt in fine, dépôt à terme) taux absent flux de capital émis, intérêts omis CFW-015
Taux d’un repo / reverse repo taux absent, sans type, ou FIXE sans valeur (cellule ‘Interest Rate’ vide) flux de capital émis, intérêt omis CFW-016
Coupon d’un produit à terme ou d’un repo le taux du coupon ne peut être évalué (pas de courbe, courbe vide, date invalide…) coupon omis, deal conservé ; un WARNING par coupon sauté, qui nomme l’opération et la période CFW-090 (pas de courbe pour l’index), CFW-091 (autres causes)
Coupon variable d’une jambe de swap forward non évaluable coupon omis, la jambe et le deal sont conservés CFW-017 (ERROR)
Taux d’une jambe fixe de swap (rate.value) valeur absente aucun taux supposé : le swap est écarté du calcul CFW-089 (ERROR)
Fixing courant d’une jambe variable de swap rate.value renseigné ignoré : le coupon en cours est lu sur la courbe CFW-076
Date de call d’un swap date de call avant l’échéance coupons postérieurs au call supprimés et nominal final au call, y compris dans la vue CONTRACTUELLE ; pas de coupon brisé au call convention
Date de repricing du nominal variable aucun coupon CERTAIN (départ forward, production nouvelle) fin du premier coupon à venir ; aucun coupon : date d’échéance contractuelle CFW-022
Taux du flux (type) taux absent ou sans type flux d’intérêt CERTAIN (non choqué) CFW-077
Certitude d’une tranche d’écoulement à taux variable prochaine date de fixation non déterminable (courbe introuvable…) flux INCERTAIN CFW-028 (ERROR)
Taux d’un flux renvoyé par le script comportemental le script ne renseigne pas de taux taux du dépôt convention
Paramètres du script comportemental NMD toujours outflow_period_in_days = 100, frequency_in_days = 5 (constantes) convention
Résultat du script comportemental le script ne renvoie pas un ScriptCashflowResult aucun flux comportemental, sans message CFW-078
Fonction du script comportemental nom de fonction absent ‘main’ convention
Stratégie d’écoulement d’un dépôt plusieurs stratégies pour le même produit et la même origine la première de la liste CFW-079
Tranche d’une loi d’écoulement par buckets bucket qui tombe à la date d’évaluation ou avant (ex. ‘0d’) dépôt : tranche ignorée (ni capital ni intérêt) ; solde comptable : capital ignoré mais intérêt nul émis CFW-080
Dernière tranche d’un écoulement linéaire horizon non multiple de la fréquence tranche coupée à l’horizon ; quote-parts arrondies à 4 décimales, la dernière absorbe le reste convention
Échéancier d’un prêt amortissable toujours échéancier construit depuis la date de début + nombre d’échéances × périodicité ; la date d’échéance du prêt est ignorée convention
Vue comportementale d’un prêt amortissable toujours (aucun paramètre de remboursement anticipé lu) flux BEHAVIOURAL identiques aux flux contractuels (pas de prépaiement) convention
Date de call (produit à terme, repo, titre) date de call postérieure ou égale à l’échéance call ignoré, échéance contractuelle retenue CFW-081
Échéancier de coupons (produit à terme, swap backward) le roulage de la périodicité n’avance pas boucle interrompue, coupons restants omis CFW-082
Périodicité des intérêts d’un repo toujours intérêt unique payé à l’échéance ; jambe titres ignorée convention
Prime / décote d’un titre prime absente flux initial au nominal convention
Montant d’intérêt / capital de référence d’un coupon montant non calculé (null) 0 CFW-083
Bucket IRRBB d’une date date antérieure à la date d’évaluation premier bucket (overnight) convention
Ligne de préfixing d’un flux CERTAIN aucune ligne pour le deal taux de la courbe CFW-039
Lignes de préfixing d’un deal plusieurs lignes pour le deal préfixing ignoré, taux de la courbe CFW-040 (ERROR)
Fréquence du taux de base d’une ligne de préfixing fréquence absente ligne ignorée, taux de la courbe CFW-084
Ligne de préfixing date cible au-delà de date d’action + fréquence ligne non utilisée, taux de la courbe convention
Référence de transaction (clé de rapprochement préfixing) référence nulle ou sans segment ‘_<deal>’ aucun préfixing CFW-085

3.2 Projection du bilan

Donnée Condition Valeur retenue Signalement
Échéance d’un deal (bilan constant / croissant) échéance absente deal non renouvelé CFW-086
Courbe de repricing d’un roll à taux fixe taux sans index ou index sans courbe dans le contexte courbe d’actualisation du contexte CFW-087
Taux d’un roll à taux fixe taux de marché du roll illisible taux d’origine conservé CFW-050
Marge commerciale d’un roll à taux fixe toujours (courbe d’origination indisponible) marge = taux client - taux de la courbe BASELINE à la date d’évaluation sur la même durée convention
Taux du remplacement d’un prêt amortissable à taux fixe durée non calculable (date de début, nombre d’échéances ou périodicité absents, AT_MATURITY) taux d’origine conservé (pas de repricing) convention
Flux de capital à remplacer (bilan constant) flux sans taux non remplacé CFW-088

3.3 Solvabilité et pricing

Donnée Condition Valeur retenue Signalement
Chiffre d’affaires de la contrepartie (solvabilité) absent 10 000 pour la classe d’exposition (donc PME si CORPORATE) ; 5 M pour la corrélation (ajustement taille neutre) RUN-010
Type de prêt (solvabilité, contrepartie RETAIL) absent RETAIL_OTHER convention
LGD (solvabilité) toujours (aucune donnée lue) 10 % pour tout prêt convention
Nombre d’échéances d’un prêt amortissable (maturité Bâle) absent 0 échéance -> maturité 0 an RUN-011
Change de l’EAD / RWA vers la devise pivot toujours fixing 1 : montant pivot = montant en devise d’origine convention
Produit hors prêts (solvabilité) pas de générateur de paramètres de risque aucun profil de risque, sans message RUN-012
Modèle de pricing préféré (API pricer) absent des préférences premier pricer enregistré (Black-Scholes) convention
Profil de risque Bâle d’une transaction le moteur Bâle ne sait pas calculer (SolvencyException ou produit non géré) transaction absente du résultat, statut PROCESSED RUN-012

4. Reporting

Paramètres de run, reporting IRRBB, valeur comptable et templates EBA (Générer les reportings IRRBB).

4.1 Paramètres du run

Donnée Condition Valeur retenue Signalement
Scénarios demandés (runSettings.scenarios) liste absente (ou runSettings absent) base + tous les chocs réglementaires + UP_1_BP convention
Plancher post-choc (runSettings.postShockFloor) valeur absente plancher activé convention

4.2 Reporting IRRBB et templates

Donnée Condition Valeur retenue Signalement
Liste des templates demandés (reportingTemplates) liste absente ou vide dans la requête les 13 templates J 01.00 à J 11.02 sont produits RPT-029
Statut de la génération des cash-flows génération terminée en ERRORS mais avec une liste de flux le reporting est produit quand même sur les flux disponibles (potentiellement incomplets) RPT-002 (ERROR)
Classification FINREP du deal deal sans classification ou catégorie sans code FINREP ; ou flux d’un deal absent du portefeuille le deal et tous ses flux sont exclus de tout le rapport (J 01.00 - J 07.00, métriques par transaction, valeur comptable) RPT-004
Référence de transaction deux transactions du portefeuille partagent la même référence la première est retenue pour classer les flux (FINREP, NMD overnight, dérivé, maturité) ; la seconde est ignorée pour ces lookups RPT-030
Fonds propres (capitalAmount, données additionnelles de la situation) clé absente, nulle ou égale à 0 (une valeur non numérique est refusée à la saisie) capital = null ; les ratios J 01.00 lignes 0020 et 0110 sont laissés vides RPT-005
Dépôt sans échéance (NMD) dans la vue contractuelle J 05.00 - J 07.00 (.a) produit DepositModel non TermDepositModel, origine CONTRACTUAL le capital est placé dans le bucket overnight (1 jour) quelle que soit la loi d’écoulement configurée ; ses intérêts ne sont pas ventilés RPT-031
Période de révision du taux variable (repricingPeriod) jambe variable sans période de révision (ou AT_MATURITY) et sans flux d’intérêt de période > 366 jours (ou sans dates de période) la jambe est classée ‘floating’ (révision ≤ 1 an) au sens ITS, donc dans le bloc variable J 05.00 - J 07.00 et hors des lignes ‘dont taux fixe’ de J 02.00 RPT-032
Taux du flux (rate / type de taux) flux sans modèle de taux ou type de taux ni FIXED ni FLOATING le flux n’est ni fixe ni variable : il est absent des deux blocs J 05.00 - J 07.00 (notionnel, rendement, maturité, échéancier) et des lignes ‘dont taux fixe’ de J 02.00 ; il reste dans l’EVE, la MNI et la valeur de marché, sans être reclassé (aucun chiffre ne change) : un WARNING regroupé par devise avec le nombre d’opérations et leur principal, les opérations en détail RPT-033
EVE / NII / MV par ligne FINREP et scénario aucune flux sur une ligne FINREP (ou aucun flux pour un scénario du contexte) dans une devise calculée 0 pour chaque ligne FINREP et chaque scénario (toutes les lignes FinrepEnum sont remplies) convention
Période d’accrual d’un flux d’intérêt (periodStartDate) date de début absente, ou début non antérieur à la fin règle de date de paiement : le coupon compte en entier dans le NII s’il tombe dans l’horizon, sinon pas du tout (pas de prorata) RPT-034
Date d’évaluation des métriques par transaction toujours (contextes multiples) la date d’évaluation du premier contexte est utilisée pour tous les scénarios convention
Scénario du flux flux sans scénario le flux est ignoré dans EVE / NII / MV agrégés (ne correspond à aucun contexte) RPT-035
Valeur comptable du deal (carryingAmount) valeur comptable absente (source DEAL) le deal contribue 0 à la colonne 0010 de sa ligne RPT-007
Duration modifiée (J 02.00 - J 04.00 col. 0020) scénario UP_1_BP non calculé, EVE de base absente ou nulle cellule laissée vide RPT-036
Maturité contractuelle (J 05.00 col. 0060 / 0310) maturité inconnue (balance écoulée par loi, transaction absente, prêt amortissable sans date de début / nombre d’échéances / période) le flux est exclu du numérateur et du dénominateur de la maturité moyenne pondérée RPT-008
Maturité contractuelle d’un dépôt sans échéance produit DepositModel non TermDepositModel maturité = 1/365 an (overnight) dans la maturité moyenne pondérée J 05.00 col. 0060 / 0310 convention
Montant du flux montant ou valeur absent 0 dans le notionnel et l’échéancier J 05.00 - J 07.00 RPT-037
Détail du flux de swap (cashFlowDetail, type de jambe) détail vide ou absent jambe = “” : toutes les jambes du swap sont fusionnées en une seule ; seul le dernier échange de capital compte, s’il est positif RPT-038
Rendement moyen pondéré (J 05.00 col. 0050 / 0300) position sans flux d’intérêt dans le bloc ; ou aucun taux du tout repli sur le taux porté par ses flux de capital ; sans taux, la position est exclue (poids compris) ; cellule vide si plus aucune position RPT-039
Taux effectif du flux (effectiveRate) taux effectif absent le taux nominal du modèle de taux (rate.value) est utilisé RPT-040
Bucket de révision du flux (adjustedTimeBucket) bucket ajusté absent le bucket de la date de paiement (timeBucket) est utilisé RPT-041
Source de la valeur comptable (carryingAmountSource) clé absente ou vide BALANCE si la situation porte une balance comptable et une classification, sinon DEAL (notionnel des deals) RPT-012
Source de la valeur comptable (carryingAmountSource) BALANCE demandé mais pas de balance ou pas de classification repli sur DEAL : colonne 0010 = notionnel des deals RPT-010
Source de la valeur comptable (carryingAmountSource) DEAL demandé explicitement colonne 0010 = notionnel des deals (sans intérêts courus, primes, décotes ; swap hors bilan compté au notionnel) RPT-011
Source de la valeur comptable (carryingAmountSource) valeur ni BALANCE ni DEAL valeur ignorée, défaut appliqué (BALANCE si disponible, sinon DEAL) RPT-009
Ligne de balance comptable (compte, solde) compte ou solde absent ligne ignorée pour la valeur comptable RPT-042
Devise de la balance comptable toujours (la balance CL n’a pas de colonne devise) toute la balance est comptée en EUR ; les deals d’autres devises n’ont pas de valeur comptable (colonne 0010 vide sur leur feuille) RPT-014
Compte de balance typé PNL / OBS / DERIVATIVE compte non couvert par la classification et typé hors bilan par l’accountingMapping ; ou couvert, typé PNL, sans ligne FINREP compte exclu de la valeur comptable RPT-043
Compte de balance aucune ligne de classification ne le couvre et l’accountingMapping ne le type pas hors bilan compte exclu de la valeur comptable RPT-015
Catégorie comptable du compte (classification) la ligne de classification n’a pas de ligne FINREP compte exclu de la valeur comptable RPT-016
Compte classé sur une ligne FINREP mais typé PNL Bilan de la ligne de classification = PNL, ligne FINREP renseignée, catégorie non hors bilan compte exclu de la valeur comptable de sa ligne RPT-017
Valeur comptable d’une ligne hors bilan (OBS / DERIVATIVE) ligne FINREP alimentée uniquement par des comptes hors bilan 0 en colonne 0010 (le hors-bilan ne sert qu’à la réconciliation) convention
Ligne de classification d’un compte (plus long préfixe) plusieurs lignes ont la même catégorie comptable (même longueur de préfixe) la première ligne rencontrée gagne RPT-044
Signe d’un compte selon la ligne FINREP ligne qui n’est ni L_ ni MEMORANDUM_L_ (actifs, hors bilan, autres dérivés) le solde est pris avec son signe (débit positif) ; inversé seulement sur les lignes de passif convention
Type de compte (Bilan de la ligne de classification) valeur Bilan absente ou non reconnue comme AccountType aucun type : le compte est traité comme compte de bilan RPT-045
Compte comptable d’un contrat CL (mapping instrument) pas de compte histo ni pour le type d’instrument exact repli sur le compte de la sous-famille listant l’instrument, puis sur celui de la famille produit RPT-046
Clé du mapping instrument / famille deux clés identiques à la casse et aux espaces près la première rencontrée dans l’ordre (non déterministe) de la map gagne RPT-047
Compte étoilé (9431**) : type d’actif, contrepartie le compte étoilé couvre plusieurs lignes de classification (même ligne FINREP) type d’actif et contrepartie de la première ligne (tri par catégorie) ; rôle de couverture null si les lignes divergent RPT-048
Datapoint d’un template le calcul lève une NullPointerException (map de la vue non alimentée, devise absente) valeur null : cellule vide, comptée comme non mappée RPT-025
Datapoint d’un template aucune valeur calculée ni déclarée cellule laissée vide (pas 0) RPT-025
Devise des feuilles aucune devise dans aucune vue (rapport sans chiffre) une seule feuille, en EUR convention
Nom de feuille par devise rapport multi-devises la première devise par ordre alphabétique occupe la feuille d’origine non suffixée ; les autres vont dans des copies ‘<feuille>_<DEV>’ convention
Réponse déclarée (code EBA) J 10 / J 11 code EBA absent des listes ‘ei…’ du template réponse ignorée, repli sur la valeur calculée (vide pour J 10 / J 11) RPT-026
Position d’un datapoint DPM sur la feuille code ligne ou colonne du DPM introuvable dans les en-têtes de la feuille la valeur n’est pas écrite, sans être comptée comme non mappée RPT-049
Déclarations IRRBB / paramètres NMD (données additionnelles) données additionnelles absentes, ou clés irrbbDeclarations / nmdParameters absentes aucune déclaration : J 08 / J 09 (parts, PTR) et J 10 / J 11 restent vides RPT-050
Clé de déclaration (irrbbDeclarations, nmdParameters, sous-clés) valeur qui n’est pas un objet JSON clé ignorée (map vide) RPT-019
Réponse qualitative J 10 / J 11 valeur non texte, ou texte vide/blanc réponse ignorée, cellule vide RPT-020
Catégorie NMD (clé de nmdParameters) clé qui n’est pas RETAIL_TRANSACTIONAL, RETAIL_NON_TRANSACTIONAL, WHOLESALE_NON_FINANCIAL ou WHOLESALE_FINANCIAL (sensible à la casse) catégorie ignorée RPT-018
Paramètre NMD (behaviouralShare, coreShare, exemptedShare, operationalShare, PTR) valeur non numérique (ex. texte “0.6”) null : la cellule correspondante de J 08 / J 09 reste vide ; un PTR non numérique est retiré RPT-051
Réponses par devise J 10.02 / J 11.02 aucune réponse pour la devise de la feuille feuille laissée vide RPT-052
Signe des lignes de passif J 02.00 - J 07.00 lignes 0200-0520 et 0610-0640, colonnes EVE/NII/MV (niveaux et Δ) et échéanciers de révision négation de la valeur moteur (passif présenté positif) ; J 01.00, colonne 0010, colonne 0020, ligne 0530 et lignes 0540-0560 non touchés convention
Ligne DPM J 02.00 - J 07.00 code ligne sans FinrepEnum correspondant cellule vide RPT-025
Δ EVE / NII / MV (J 01.00, J 02.00 - J 04.00) valeur de base ou valeur choquée absente cellule vide (pas le niveau choqué) RPT-025
Lignes mémo 0540-0560 (positions nettes) aucune ligne FINREP incluse n’a de valeur pour la devise 0 convention
Valeur comptable d’une ligne J 02.00 - J 04.00 (col. 0010) la devise a des valeurs comptables mais aucune sur la ligne 0 convention
% optionalité achetée / vendue / modélisation comportementale (J 05.00 col. 0020-0040, 0270-0290) toujours (non modélisé) cellules vides RPT-025
Notionnel J 05.00 - J 07.00 (col. 0010 / 0260) aucune position de la ligne, y compris quand la devise n’a aucun détail de notionnel (feuille .a, ou devise présente seulement dans la valeur comptable) 0 RPT-053
Échéancier de révision J 05.00 - J 07.00 (col. 0070-0250, 0320-0390) aucun flux dans le bucket, ou aucune donnée pour la devise 0 convention
Rendement moyen d’une ligne parente J 05.00 (col. 0050 / 0300) une classification enfant a un notionnel mais pas de rendement elle est laissée de côté, notionnel compris : le rendement de la ligne est celui des classifications qui en ont un RPT-065
Maturité moyenne d’une ligne parente J 05.00 (col. 0060 / 0310) une classification n’a de maturité que pour une partie de ses flux elle pèse avec tout son notionnel : la partie sans maturité reçoit la moyenne de la partie couverte RPT-008
Notionnel d’une catégorie NMD (J 08 / J 09 col. 0010) la devise a des valeurs comptables mais aucune sur la ligne FINREP de la catégorie 0 (et donc 0 pour les lignes ‘dont’ si une part est déclarée) convention
Parts déclarées et PTR NMD (J 08 / J 09) catégorie non déclarée, part ou PTR d’un scénario absent cellule vide RPT-025
Pire Δ EVE / NII (J 01.00 lignes 0010, 0100) et ratios 0020, 0110 pas de valeur de base, ou aucun scénario SOT calculé pour la devise cellules vides RPT-066
Taille des chocs par devise (J 01.00 lignes 0180-0200) devise sans calibrage réglementaire dans IrrbbScenario tailles de choc EUR (200 / 250 / 100 pb) RPT-056

5. Application (risk-app)

Valeurs que l’application retient quand une requête, une situation ou un écran ne précise rien : lancement des runs, gap, pack ALCO, rapprochement comptable, import guidé, courbes et classification.

Donnée Condition Valeur retenue Signalement
Hypothèses de simulation (runSettings) runSettings absent de la requête de génération (ou run officiel IRRBB) Bilan d’évolution de l’import, tous les scénarios réglementaires, aucun choc personnalisé, plancher post-choc actif (défauts appliqués par risk-engine selon le contrat risk-model) RUN-013
Liste des scénarios (runSettings.scenarios) runSettings présent mais scenarios null (non envoyé) Tous les scénarios réglementaires sont calculés (une liste vide est refusée, null ne l’est pas) RUN-014
Plancher post-choc (runSettings.postShockFloor) Champ absent / null true : les taux choqués sont planchers au plancher réglementaire RUN-015
Mode de projection des taux variables (rateProjectionMode) Champ absent de la requête de génération FORWARD (projection sur la courbe forward), enregistré sur la génération et envoyé à l’engine RUN-016
Type / scénario de la génération (GenerationRequestDto.type) Champ absent ou vide Aucune valeur par défaut : le lancement (simulation ou run officiel) est refusé par une erreur 400 (error.validation sur type), rien n’est enregistré aucun (demande refusée)
Fonds propres (additional data capitalAmount) Valeur vide ; une valeur non numérique (ex. 250k, 1.000.000) est refusée à l’enregistrement (erreur 400 qui la cite), seule une valeur saisie avant ce contrôle peut encore l’être Clé retirée des données transmises à l’engine (ratios J 01.00 lignes 0020/0110 laissés vides) ; texte normalisé : espaces et espaces insécables supprimés, virgule décimale convertie en point RPT-005
Données additionnelles d’une nouvelle situation (specificData) Création d’une situation (upload zip ou brouillon guidé) Map initialisée avec capitalAmount = null (aucune valeur de fonds propres) RPT-005
Mise à jour d’une situation (specificData et drapeaux) Champ null dans la requête PUT /tasks/{id} La valeur stockée est conservée (stratégie MapStruct IGNORE) convention
Typage des comptes comptables (dataMapping.accountingMapping) Situation sans configuration client, ou configuration sans dataMapping / accountingMapping accountingMapping null envoyé à l’engine : les comptes de la balance ne sont typés que par la classification BAL-011
Type d’un compte de la balance (écran bilan) Aucune clé d’accountingMapping ne couvre le compte (ou mapping absent) Type affiché ‘NO_MAPPING’ BAL-011
Devise des chiffres du gap (devise pivot) La génération / le contexte n’indique aucune devise pivot (gap_pivot_currency null) EUR RPT-057
Projection utilisée par le gap (origin) origin absent ou null dans la requête de gap CONTRACTUAL RPT-058
Type de gap (gapType) Champ absent RATE (dates de refixation) plutôt que LIQUIDITY (dates contractuelles) convention
Sens du cumul du gap (cumulativeDirection) Champ absent BACKWARD (encours restant), pas le cumul FORWARD d’un gap de liquidité convention
Filtre ‘sensibles au taux seulement’ du gap filter.rateSensitiveOnly absent false : toutes les positions, sensibles au taux ou non convention
Fenêtre de dates du gap (startDate / endDate) Une ou deux bornes absentes Pas de borne : toute la projection est prise convention
Génération de comparaison du rapport de gap (compareTo) compareTo absent Dernière génération de la même configuration client, même scénario/type, dont la date de situation est antérieure RPT-059
Variation du gap après couverture par bande La génération précédente n’a pas de montant pour la bande Montant précédent pris à 0 : la variation vaut le gap courant convention
Montant d’une ligne du rapport de gap Excel par bande Ligne sans montant pour la bande (ou montants null) 0 écrit dans la cellule convention
Scénario de référence des deltas EVE/NII (reference) Paramètre absent de /metrics BASELINE convention
Projection des métriques (origin) Paramètre absent de /metrics, /metrics/export ou des métriques par transaction BEHAVIOURAL convention
Deltas EVE / NII / valeur de marché d’une transaction La transaction n’a pas de ligne pour le scénario de référence Deltas laissés null (pas d’erreur) RUN-018
NII (12 mois) d’une opération, à l’écran et à l’export (earnedNii, deltaEarnedNii) Le calcul n’a enregistré aucune décision de NII pour l’opération « — » à l’écran avec un message demandant de relancer le calcul ; valeur vide à l’export convention
Métriques exportées en parquet (eve, deltaEve, earnedNii, deltaEarnedNii, wholeLifeInterest, oneYearCashInterest, deltaWholeLifeInterest, marketValue, marketValueOneYear, deltaMarketValue) Valeur null (non calculée, pas de ligne de référence) valeur vide (null), plus 0 ; seuls les écarts de la ligne de référence valent 0, leur vraie valeur aucun (pas de valeur par défaut : la valeur reste vide ; RUN-019 retiré)
Date de maturité affichée avec les métriques Plusieurs transactions partagent la même référence dans la génération La maturité de la première transaction lue est retenue RUN-021
Flux renvoyés par l’engine La référence de transaction d’un groupe de flux ne correspond à aucune transaction du portefeuille/génération Les flux sont ignorés (non enregistrés) ; un avertissement par run donne leur nombre et un échantillon des références RUN-020
Rattachement des flux à leur transaction Deux transactions de la génération ont la même référence Tous les flux de cette référence sont rattachés à la première transaction RUN-021
Date d’évaluation des contextes renvoyés Aucune date, ou plusieurs dates distinctes dans les contextes de la réponse La génération est enregistrée telle quelle (PROCESSED), seul un log.error est écrit RUN-022
Export des flux (CSV/Excel/parquet) Aucun filtre origin (ni certitude, nature, scénario, type de taux, bucket) Tous les flux, projections CONTRACTUAL et BEHAVIOURAL mêlées convention
Date d’évaluation du reporting Création d’un reporting Date de référence (arrêté) de la situation au moment du lancement convention
Résultat d’un reporting antérieur à risk-model 0.242.0 reporting_result sans vues par origine (views null) Résultat masqué (null) : le reporting apparaît ‘non calculé’ RPT-060
Tolérance de rapprochement comptable (pack ALCO et écran) Paramètre tolerance absent (écran) ; toujours pour le pack ALCO 1 unité de devise du grand livre convention
Section rapprochement comptable du pack ALCO Pas d’import lié, ou rapprochement en échec (situation non traitée, etc.) Pack généré sans la section rapprochement RPT-061
Chiffres EVE / NII / valeur comptable du pack ALCO Toujours Seule la vue BEHAVIOURAL est lue ; une valeur null est omise (pas de 0) RPT-062
Paramètres du pack ALCO (format, langue, modèle, comparaison) Paramètres absents PDF, français, modèle par défaut de report-renderer, pas de colonnes ‘date précédente’ (aucune comparaison automatique) convention
Ligne de balance (rapprochement) Compte ou montant absent Ligne ignorée du rapprochement RPT-063
Poste comptable d’une ligne de balance Aucun poste (classification ou accountCode d’une position) ne couvre le compte Le compte devient son propre poste (statut NOT_MODELLED ou LEDGER_ONLY selon le périmètre) convention
Poste d’une position (accountCode) Position sans classification ou sans accountCode Position regroupée sous un poste vide, affiché en dernier convention
Montant ALM d’une position (principal) Produit sans principal lisible (type non géré, swap sans jambe 1, valeur null) Position exclue de la somme ALM, comptée dans withoutAmountCount convention
Ligne de classification d’un poste Plusieurs lignes de classification pour le même poste La première est retenue RPT-064
Limites des informations de la situation : portfolioName, portfolioReference (100), référence de contexte composée avec le client de la configuration (100), pivotCurrency (3) Valeur plus longue que sa colonne Formulaire ou requête refusés (erreur 400) avant l’engine ; une archive de l’API dont la référence de contexte dépasse devient une tâche FAIL ; un portfolioReference absent est compté comme le texte ‘null’ (4 caractères) que risk-engine écrira dans la référence du contexte IMP-005, IMP-007 (ERROR)
Portefeuille importé Aucune transaction renvoyée par l’engine Import DONE avec un portefeuille vide IMP-028
Niveau d’une anomalie renvoyée par l’import Anomalie sans niveau Comptée comme ERROR dans le décompte de la tâche IMP-050
Indice d’actualisation (discountFactorIndex) La valeur saisie est un libellé client (clé de dataMapping.indexes) et non un indice de courbe Remplacée par l’indice de courbe auquel le libellé est associé ; espaces de début/fin supprimés IMP-054
Index d’actualisation d’une archive importée aucun index choisi, ni à l’écran, ni dans situation.json index par défaut de la configuration pour la devise pivot (discountFactorIndexes) convention
Configuration d’une archive complète (configuration.json) aucune configuration choisie à l’import même identifiant, version et contenu ; sinon même mapping, à sa dernière version ; sinon création de « <nom> (importée le …) » convention
Brouillons d’import guidé abandonnés Aucune activité depuis application.import.draft-purge.retention-days 30 jours ; brouillon et fichiers supprimés chaque nuit à 03:00 convention
Durée maximale d’une génération ou d’un reporting en PROCESSING Pas de réponse de l’engine dans application.generation.stuck-timeout 2 heures ; la génération est passée en ERRORS RUN-009 (ERROR)
Type de contrepartie Contrepartie inconnue du tenant lors de l’enregistrement des transactions importées ou générées Contrepartie créée avec le type CORPORATE TRX-077
Rôle de couverture d’un deal (hedgeRole) Deal créé à la main (DealRequestDto ne porte pas de hedgeRole) ; modification d’un deal NONE à la création ; inchangé à la modification convention
Maturité résiduelle d’un deal (années) Pas de maturité, ou horizon de stratégie linéaire illisible null (tri en dernier) ; sinon jours / 365 depuis la date de référence du portefeuille convention
Cotation d’une courbe (quotation) Absente à la création ; absente à la modification Création : lue comme ZERO (taux zéro-coupon) ; modification : la cotation existante est gardée CRV-024
Période de refixation d’une courbe (refixingPeriod) Modification d’une courbe La valeur existante est reportée ; une courbe créée par l’éditeur n’en a jamais CRV-029
Instruments cotés par une courbe Modification sans instruments Instruments existants gardés pour les maturités encore présentes, les autres supprimés convention
Colonnes 4 à 12 de mapping_compta (Opération financière, Actif modélisé, Gross Carrying Amount, Nominal, EVE, MNI, Sensible taux, Signe, MV) Classification générée depuis un référentiel (import zip avec classificationId ou brouillon lié) Cellules vides, lues par l’engine comme false / 0 pour chaque compte CLS-025
Rôle de couverture d’une catégorie de classification Catégorie du référentiel sans hedgeRole Cellule vide dans le classeur généré ; l’engine garde UNSPECIFIED sur les dérivés de couverture, NONE ailleurs CLS-020
Lignes histo d’un référentiel histoAccounts absent (null) d’une mise à jour du référentiel Les lignes existantes sont conservées (et recontrôlées) convention
Anomalies d’un calcul de solvabilité Réponse de l’engine avec erreurs Erreurs non enregistrées ; seul le statut est gardé RUN-023

Récapitulatif

Domaine Règles Signalées Conventions
Import : fichiers et parseurs 100 98 2
Courbes 34 28 6
Cash-flows et projection 56 35 21
Reporting 66 52 14
Application (risk-app) 63 39 24
Total 319 252 67