Configuration client
Introduction
La configuration client permet de définir et stocker les paramètres de mapping propres à un client. Il s’agit d’une configuration statique qu’il convient de créer une seule fois. Elle devra évoluer dans les cas suivants:
- évolution des exports utilisés depuis les systèmes de la banque;
- évolutions du modèle de données interne de la solution (ajout de nouveaux produits notamment)
Une configuration client est nécessaire pour l’import des données.
Elle est constituée de quatre éléments :
| Élément | Rôle |
|---|---|
| Nom | Identifie la configuration dans les écrans d’import. Plusieurs configurations peuvent coexister. |
| Format des données | La structure des fichiers d’entrée. C’est elle qui détermine la façon dont les fichiers sont lus. Obligatoire. |
| Client | Un simple libellé d’affichage : il ne détermine plus la structure des fichiers. |
| Fichier de mapping | Le fichier JSON décrit ci-dessous. |
Le mapping se lit en cinq sections — Extractions & produits, Courbes & conventions, Comptes des opérations, Classification, Modèles d’écoulement — qui sont les onglets du détail d’une configuration (Les sections de la configuration). La classification (mapping_compta) et les modèles d’écoulement (le contenu d’un model_*.json) en font partie : l’import ne les lit plus dans l’archive.
La configuration est versionnée d’un bloc : chaque enregistrement crée une version, et une situation garde la version avec laquelle elle a été importée (Versions et rejeu d’un arrêté).
Format des données
Le format des données est choisi dans une liste déroulante alimentée par la solution. Une seule valeur est disponible aujourd’hui :
| Valeur | Libellé |
|---|---|
CREDIT_LOGEMENT |
Fichiers Crédit Logement |
Auparavant, la façon de lire les fichiers était déduite du champ Client : une faute de frappe dans ce libellé faisait échouer tous les imports de la configuration. Le Client n’est désormais qu’un libellé, et le format est déclaré explicitement. Les configurations existantes ont été reprises en CREDIT_LOGEMENT.
Les fichiers de configuration ont la forme suivante :
{
"compoundCurve": {}, // courbes composées à partir des courbes du fichier de taux
"indexes": {}, // libellé de taux de la banque → courbe
"curveQuotations": {}, // cotation des courbes : ZERO (défaut) ou PAR
"model": {
"loan": {},
"swap": {}
}, // champ du moteur → colonne du fichier, par produit
"products": {}, // mapping entre les produits client et les produits définis dans la partie 'model'
"rateBase": {}, // mapping des conventions de calcul de jours
"frequency": {}, // mapping des fréquences de calcul de taux
"rateType": {}, // mapping des types de taux (FIXED, FLOATING)
"tags": [], // colonnes recopiées en étiquettes sur chaque opération
"accountingMapping": {}, // type des comptes de la balance (écran Bilan, encours comptable)
"instrumentAccounts": {} // compte comptable des opérations, par famille, sous-famille ou type d'instrument
}Le détail de chaque section, colonne par colonne, est donné dans l’application, sous Situations › Guide de l'import, et la page Crédit Logement du menu d’aide (? de la barre du haut) déroule une ligne d’extraction à travers chaque section du mapping Crédit Logement. Ce chapitre explique les règles appliquées ; voir aussi Import Crédit Logement et, pour chaque clé et chaque produit, Import : traitements et conversions.
Contenu d’une configuration client
Courbes de taux
{
"indexes": {
"CMS (20-2)": "EURIBOR 6M SWAP",
"ESTR": "ESTR_PROJECTION",
"EURO INTERBANK OFFERED RATE": "EURIBOR 6M SWAP",
"EURO INTERBANK OFFERED RATE|3M": "EURIBOR 3M SWAP",
"EURO INTERBANK OFFERED RATE|6M": "EURIBOR 6M SWAP",
"EURO OVERNIGHT INDEX AVERAGE": "EONIA_PROJECTION",
"Palliers TF": "EURIBOR 6M SWAP",
"iESTER": "ESTR_PROJECTION"
},
"compoundCurve": {
"DISCOUNT_EUR": { "1d": "ESTR", "1Y": "EURIBOR", "100y": "ESTR SWAP" },
"ESTR_PROJECTION": { "1d": "ESTR", "1y": "ESTR CASH", "100y": "ESTR SWAP" },
"EONIA_PROJECTION": { "1d": "EONIA", "2w": "EONIA CASH", "100y": "EONIA SWAP" }
}
}La configuration des courbes de taux comporte trois éléments :
- une entrée
indexesqui contient les mappings entre les indexes ou références de courbes de taux présents dans les données d’imports ; - une entrée
compoundCurvequi permet de définir des courbescomposéesà partir des courbes de taux existantes ; - une entrée facultative
curveQuotationsqui déclare la cotation de chaque courbe (voir plus bas).
Dans l’exemple ci-dessus, la courbe
DISCOUNT_EURest composée de trois courbes de taux :ESTR SWAP,EURIBORetESTR. - la courbeESTRpour le taux à 1 jour ; - la courbeEURIBORpour les taux jusqu’à 1 an ; - la courbeESTR SWAPau-delà.
Le sens des entrées mérite d’être précisé, car il conditionne les contrôles décrits ci-après :
- dans
indexes, la clé est le libellé de taux tel que les opérations de la banque le citent, et la valeur est l’index de courbe attendu dans le fichier de taux — ou le nom d’une courbe composée ; - une clé peut préciser le ténor du libellé, sous la forme
libellé|ténor(EURO INTERBANK OFFERED RATE|3M). Elle s’applique lorsque le produit mappe une colonne de ténor (cléspayIndexTenor,rateBasisTenor,payRateBasisTenor,recRateBasisTenor) et que la cellule de l’opération porte ce ténor. Les ténors sont comparés après normalisation (3M,3 MONTHS,1Y,12M,1 YEARse valent). Sans colonne de ténor, sans valeur ou sans clé correspondante, la clé sans ténor s’applique ; - chaque clé de
compoundCurvedevient une courbe à part entière, construite à partir des courbes élémentaires qu’elle référence. Chaque courbe élémentaire apporte ses points dont la maturité ne dépasse pas son seuil (1d,1Y,100y…), les seuils étant parcourus du plus court au plus long ; à maturité égale, le point de la courbe de seuil le plus long l’emporte. Pour chaque courbe élémentaire, la date de cotation retenue est la plus proche de la date d’arrêté.
Les courbes de projection ESTR_PROJECTION et EONIA_PROJECTION du mapping Crédit Logement illustrent l’intérêt des courbes composées : les courbes ESTR SWAP et EONIA SWAP ne commencent qu’à 2 et 4 ans. Projetée sur elles seules, une jambe au jour le jour lirait le premier pilier de swap extrapolé à plat. Composée du fixing au jour le jour, des points monétaires (ESTR CASH jusqu’à 1 an, EONIA CASH jusqu’à 2 semaines) puis des swaps, la courbe de projection a une vraie partie courte.
Cotation des courbes (curveQuotations)
{
"curveQuotations": {
"DISCOUNT_EUR": "PAR",
"ESTR_PROJECTION": "PAR"
}
}Une courbe absente de curveQuotations est cotée ZERO : ses points sont lus comme des taux zéro-coupon. Une courbe déclarée PAR porte des taux monétaires et des taux de swap au pair ; elle est bootstrappée en courbe zéro-coupon, qui sert à l’actualisation comme à la projection, et ses scénarios de choc s’appliquent à cette courbe zéro-coupon (Cadre de calcul, §1.3). Une courbe élémentaire se désigne par son index, une courbe composée par son nom, sans tenir compte de la casse ni des espaces superflus.
À l’import, chaque point reçoit son instrument d’après le nom de la courbe dont il provient : un point d’une courbe dont le nom contient SWAP (ESTR SWAP, EURIBOR 3M SWAP) est un taux de swap, tout autre point (ESTR, EURIBOR, ESTR CASH…) un taux monétaire. Un point d’une courbe composée garde l’instrument de la courbe élémentaire dont il est copié. Aucun écran n’affiche la cotation : elle se règle dans le mapping, avant l’import.
Le mapping Crédit Logement livré ne déclare pas de curveQuotations : ses courbes sont lues en taux zéro-coupon tant que la cotation au pair n’est pas activée.
Contrôles de cohérence
Ces deux entrées sont vérifiées à chaque import, et dès l’envoi du fichier de taux en import guidé :
- toute valeur de
indexeset toute courbe élémentaire d’unecompoundCurvedoit exister dans le fichier de taux. Un index introuvable est signalé en erreur sur le fichier de taux, avec le nom de l’index et les libellés de la banque qui le visent. La comparaison ignore la casse et les espaces superflus. Une clé à ténor est contrôlée comme les autres : mapper un ténor sur une courbe que le fichier ne porte pas est une erreur, et non un repli silencieux. Une courbe composée dont une courbe élémentaire manque n’est pas construite ; - une opération citant un libellé de taux absent de
indexesn’est plus rejetée : un avertissement nommant le libellé à ajouter est émis et l’opération reste valorisée. Le détail du comportement est décrit dans le chapitre Import d’une situation ALM.
Index d’actualisation
Les écrans d’import demandent obligatoirement un index d'actualisation, c’est-à-dire la courbe utilisée pour tous les facteurs d’actualisation de la situation. La liste proposée est construite à partir de cette configuration : les clés de compoundCurve, puis les entrées de indexes — affichées sous le libellé de la banque, mais enregistrées sous l’index de courbe correspondant.
Une configuration qui ne déclare ni indexes ni compoundCurve ne permet donc aucun import : la liste des index d’actualisation est vide et son fichier de mapping doit être corrigé.
Index d’actualisation par défaut (discountFactorIndexes)
discountFactorIndexes associe à chaque devise pivot l’index d’actualisation à proposer par défaut :
"discountFactorIndexes": {
"EUR": "DISCOUNT_EUR"
}L’écran d’import propose cet index tant qu’aucun autre n’est choisi, pour la devise pivot saisie. Une archive importée sans index retient celui de sa devise pivot. Chaque valeur doit être une courbe que la configuration construit, c’est-à-dire une clé de compoundCurve ou une valeur de indexes. Sinon, un contrôle de l’onglet Courbes & conventions le signale, car l’import refuserait cet index (Contrôles de la configuration).
Mappings
Mapping des produits
{
"model": {
"loan": {
"callDate": "DateCall",
"counterparty": "Counterparty",
"currency": "currency",
"dealDate": "Deal Date",
"instrumentType": "Instrument Type",
"payIndex": "Basis",
"payIndexTenor": "Basis Rate Frequency Time Band",
...
},
"repo": {
"counterparty": "Counterparty",
"dealDate": "Deal Date",
"instrumentType": "Instrument Type",
"interestAmount": "Interest Amount",
"interestConvention": "Interest Days Convention",
"nature": "Borrowing Investing",
...
}
},
"products": {
"Asset Swap Fix Fix": "swap",
"Asset Swap Fix Float": "swap",
"Asset Swap Inflation Fix Float": "swap",
"CAT Actions": "term_deposit",
"CAT PPD Taux Variable": "term_deposit",
"CAT Progressif": "term_deposit",
"CAT Progressif Capitalise SEM A": "term_deposit",
"CAT Sub Taux Variable": "term_deposit",
"CAT Taux Fixe": "term_deposit",
"CAT Taux Fixe Capitalise": "term_deposit",
"CAT Taux Variable": "term_deposit",
"Collateral Pret de titres": "repo",
"Emprunt Gage Coll Taux Fixe": "loan",
"Emprunt PPD Taux Variable": "loan",
"Emprunt Sub Taux Variable": "loan",
"Mise en pension de titres": "repo",
"NANT-Creance Entreprise": "nantissement",
"NANT-Creance Interne": "nantissement",
"NANT-Titre": "nantissement",
"Pret de titres": "repo",
"Prise pension de titres (In fine)": "repo",
"Prise pension de titres (Periodic)": "repo",
"Swap Fix Float": "swap",
"Swap Float Fix": "swap",
"Swap Float Float": "swap"
}
}Dans model, la clé est le champ du moteur et la valeur le nom exact de la colonne du fichier, espaces compris. Une colonne nommée dans le mapping doit exister dans le fichier, même vide : sinon chaque ligne est rejetée (« Record does not contain field ‘…’ »). Les clés facultatives (remainingNominal, callDate sauf pour loan et term_deposit où elle est obligatoire, issuerCallDate, reviewFrequency, les clés de ténor, nature…) peuvent être absentes du mapping : l’import se fait alors comme avant leur introduction. La section products choisit le produit d’après la colonne Instrument Type ; une valeur absente de products fait rejeter l’opération (« Cannot parse ‘ProductMapping’ with value ‘…’ »).
Mapping des conventions
{
"frequency": {
"ANNUAL": "YEAR",
"AT MATURITY": "AT_MATURITY",
"QUARTERLY": "QUARTER",
"SEMI ANNUAL": "SEMESTER"
},
"rateType": {
"FIXED": "FIXED",
"FLOATING": "FLOATING",
"Taux Fixe": "FIXED",
"Taux Révisabl": "FLOATING"
},
"rateBase": {
"30/360": "ABB_30_360",
"30E/360": "ABB_30_360",
"ACTUAL/360": "EXACT_360",
"ACTUAL/365": "EXACT_365",
"ACTUAL/ACTUAL": "EXACT_EXACT",
"default": "ABB_30_360"
}
}rateBasetraduit la convention de calcul de jours lue sur l’opération en base du moteur (EXACT_EXACT,EXACT_365,EXACT_360,ABB_30_360, voir Cadre de calcul, §1.6). Une cellule vide prend la valeurdefault; une valeur absente de la table fait rejeter l’opération (« Cannot parse ‘RateBase’ with value ‘…’ »), sauf pour les jambes de swap décrites ci-dessous.- Une règle de jour ouvré n’est pas une base de calcul.
FOLLOWING,MODIFIED FOLLOWING,PRECEDING,ACTUAL DATE,UNADJUSTED… disent comment décaler une date tombant un jour non ouvré, pas comment compter les jours. Pour une jambe de swap, une telle valeur n’est jamais lue comme une base, même si la tablerateBasela liste : la jambe prend la convention de marché (Import Crédit Logement). N’ajoutez pas ces libellés àrateBase. frequencyetrateTypene sont pas lus par le moteur. Ces deux sections figurent dans les mappings pour mémoire, mais l’import Crédit Logement reconnaît directement les valeurs des extractions :- périodicité :
MONTHLY(mois),QUARTERLY(trimestre),SEMI ANNUAL(semestre),ANNUAL(année),AT MATURITYouNONE(coupon unique à l’échéance), écrites exactement ainsi. Toute autre valeur fait rejeter l’opération (« Cannot parse ‘Frequency’ with value ‘…’ »). Une fréquence de révision (reviewFrequency) inconnue, commeDAILY, est seulement laissée vide, avec un message d’information ; - type de taux :
FIXEDouFLOATING, sans tenir compte de la casse. Sur les prêts, comptes à terme et titres, toute autre valeur, ou une cellule vide, fait rejeter l’opération ; sur une jambe de swap, la colonne est facultative et une autre valeur est ignorée. Un libellé commeTaux Fixen’est donc pas traduit par la sectionrateType.
- périodicité :
Étiquettes et libellés du bilan
{
"tags": ["Entity"],
"accountingMapping": { "6": "PNL", "7": "PNL", "9": "OBS", "943": "DERIVATIVE", "H": "OBS" }
}tagsliste des colonnes recopiées sur chaque opération comme étiquettes : la valeur de la colonneEntitydevient une étiquette, qui permet de regrouper et de filtrer les résultats. Dans un classeur Excel, une cellule vide d’une colonne detagsfait rejeter la ligne (Import Crédit Logement).accountingMappingtype les comptes de la balance d’après le début de leur numéro :ASSET,LIABILITY,DERIVATIVE,PNLouOBS. Une clé est un préfixe de compte, écrit avec ou sans étoiles finales (6,6*et6**sont la même clé) ; quand plusieurs clés couvrent un compte, la plus longue l’emporte, quel que soit leur ordre (avec9 → OBSet943 → DERIVATIVE, le compte94310002est un dérivé,90100000du hors bilan). Le type étiquette les lignes de l’écran Bilan (NO_MAPPINGpour un compte qu’aucune clé ne couvre) et dit quels comptes entrent dans l’encours comptable des états J 02.00 à J 04.00 (§3.5) :PNL(résultat),OBS(hors bilan) etDERIVATIVE(notionnels des dérivés, hors bilan en normes françaises) n’y apportent rien ;ASSET,LIABILITYet un compte qu’aucune clé ne couvre sont des comptes de bilan : la classification les range sur leur ligne FINREP, et un compte de bilan qu’elle ne range nulle part est signalé avec son solde.
accountingMappingest déprécié et facultatif. Le type d’un compte vient désormais de la classification (mapping_compta, colonneBilan:Actif,Passif,HB,Résultat), qui doit couvrir tous les comptes de la balance (couverture de la balance).accountingMappingne type plus qu’un compte que la classification ne couvre pas. Un compte que ni l’une ni l’autre ne type est signalé à l’import par un avertissement qui regroupe ces comptes par classe (trois premiers chiffres), avec leur nombre et leur solde ; il est traité comme un compte de bilan.
Compte comptable des opérations (instrumentAccounts)
Une opération importée ne porte pas de compte comptable : instrumentAccounts lui en donne un, d’après ce qu’elle est. Le principe est décrit au chapitre 7 de la méthodologie.
"instrumentAccounts": {
"families": { "swap": "943100", "term_deposit": "131200", "loan": "541900", "security": "304120" },
"subFamilies": [
{ "name": "Asset swaps", "instruments": ["Asset Swap Fix Fix", "Asset Swap Fix Float"], "account": "943101" },
{ "name": "Prises en pension", "instruments": ["Prise pension de titres (In fine)", "Prise pension de titres (Periodic)"], "account": "301110" }
],
"instruments": { "CAT Actions": "131223", "Emprunt PPD Taux Variable": "541200", "Mise en pension de titres": "301210" }
}families: une famille, c’est-à-dire une valeur du mappingproducts(swap,repo,term_deposit,loan…), ousecuritypour le fichier des titres.subFamilies: un groupe nommé de types d’instrument d’une même famille qui partagent un compte. Un type d’instrument appartient au plus à une sous-famille.instruments: la valeur exacte de la colonneInstrument Typede l’extraction (pour les titres, la colonne porte l’ISIN ou le libellé du titre).
La règle la plus précise l’emporte : type d’instrument, puis sous-famille, puis famille. Les clés se comparent sans tenir compte de la casse ni des espaces autour. Un compte s’écrit en chiffres, suivis d’étoiles si une précision moindre suffit (9431**). L’onglet histo du classeur de classification l’emporte sur ces règles, opération par opération. Une opération qu’aucune règle ne couvre est importée sans compte : elle n’a pas de ligne FINREP, et l’import le signale (Import Crédit Logement). La section est facultative, mais sans elle aucune opération importée n’est classée.
La section accruedInterestAccounts, de même forme, donne le poste des intérêts courus de l’opération (ses créances ou dettes rattachées) ; elle se résout dans le même ordre. L’opération couvre ainsi ce poste de la balance en plus de celui de son capital (couverture de la balance).
"accruedInterestAccounts": {
"families": { "term_deposit": "131700", "loan": "547100", "security": "304720" },
"instruments": { "CAT Actions": "131723", "Mise en pension de titres": "301270" }
}La section secondLegAccounts, de même forme, donne le poste de la seconde jambe d’un prêt ou d’un emprunt de titres : l’opération est importée aussi en jambe miroir de sens opposé sur ce poste (opérations à deux jambes).
"secondLegAccounts": {
"instruments": { "Collateral Pret de titres": "302710", "Pret de titres": "304120" }
}Elle se modifie dans le détail d’une configuration client, au-dessus de l’éditeur JSON : comptes par famille, sous-familles et comptes par type d’instrument. L’enregistrement est refusé tant qu’une règle est invalide (compte mal formé, type d’instrument dans deux sous-familles).
Liste des configurations client
La liste des configurations client est accessible ici

Détail d’une configuration client

Le détail présente un onglet par section, un onglet Versions et l’onglet JSON (avancé), qui montre le mapping complet tel qu’il est enregistré. Enregistrer enregistre toutes les sections à la fois et crée une nouvelle version.
Les sections de la configuration
| Section (onglet) | Contenu du mapping | Se modifie |
|---|---|---|
| Extractions & produits | model, products, tags |
en JSON, limité à ces clés |
| Courbes & conventions | indexes, compoundCurve, discountFactorIndexes, curveQuotations, rateBase, frequency, rateType |
en JSON, limité à ces clés |
| Comptes des opérations | instrumentAccounts (et accruedInterestAccounts, secondLegAccounts) |
par l’éditeur de règles (ci-dessus) |
| Classification | classification : le mapping_compta |
en tableau, ou en chargeant un classeur |
| Modèles d’écoulement | balanceSheetStrategy : le contenu d’un model_*.json |
en JSON, ou en chargeant un fichier |
Classification
Une ligne par poste comptable : son côté du bilan (Actif, Passif, Hors-bilan, Résultat), sa contrepartie, sa classe FINREP, son rôle de couverture, son signe et les drapeaux du périmètre IRRBB : GCA, Nominal, EVE, MNI, VM, ainsi que Op. fin., Modélisé et Sensible. Les lignes se modifient dans le tableau, se filtrent par poste, contrepartie ou classe FINREP, et s’enregistrent avec la configuration.
- Charger un classeur : le classeur
mapping_compta(ongletsmapping_compta,mapping_compta_irrbbet, s’il existe,histo) est lu pendant son dépôt, et le résultat de la lecture (classeur lu, vide ou illisible, anomalies) s’affiche aussitôt (Contrôle d’un fichier au dépôt) ; il remplace ensuite la section et la configuration reçoit une nouvelle version. Le classeur ne part jamais avec un import. Le chargement attend que les modifications en cours soient enregistrées. - Exporter le classeur : la section au format
mapping_compta, drapeaux compris ; il se recharge tel quel.
La classification est stable d’un arrêté à l’autre : une même version sert plusieurs arrêtés, une nouvelle version n’apparaît qu’à un changement. Une configuration sans classification arrête l’import (IMP-055) ; un classeur encore présent dans l’archive est ignoré (IMP-056).
Modèles d’écoulement
Les stratégies d’écoulement des postes de la balance qu’aucune opération ne porte (par exemple l’OPCVM 303130** écoulé sur 1 jour) et l’évolution du bilan. L’onglet les liste (référence, stratégie, horizon ou tranches) et les montre en JSON. Charger un fichier de modèles lit un model_*.json : chaque stratégie est contrôlée comme dans un contexte d’évaluation, puis la section est remplacée et la configuration reçoit une nouvelle version. Une configuration sans modèles d’écoulement arrête l’import (IMP-055).
Contrôles de la configuration
À la lecture de la configuration, des avertissements s’affichent sur les lignes concernées ; ils n’empêchent pas l’enregistrement :
- un compte des opérations qui ne tombe sur aucun poste de la classification (préfixe le plus long ; un compte étoilé doit couvrir au moins un poste) : les opérations rangées sur ce compte ne seraient classées nulle part ;
- une configuration sans classification ou sans modèles d’écoulement : un import lu avec elle s’arrêterait.
Côté balance, l’import signale les comptes que la classification ne type pas (Import Crédit Logement) ; le rapprochement est inchangé (Rapprochement avec la balance).
Versions et rejeu d’un arrêté
L’onglet Versions liste les versions de la configuration, de la plus récente à la plus ancienne : date, auteur, et sections modifiées. Chaque enregistrement, chaque classeur ou fichier de modèles chargé crée une version.
- Un import lit la dernière version par défaut ; l’écran d’import permet d’en choisir une antérieure.
Importer avec cette versionouvre l’import avec la configuration et la version choisies : c’est ainsi qu’on rejoue un arrêté avec les règles de l’époque.- Une situation garde la version avec laquelle elle a été importée ; les calculs lancés ensuite sur cette situation lisent la configuration dans cette version. Une situation importée avant le versionnement lit la configuration actuelle.
Import d’une configuration client
Les données suivantes sont nécessaires pour l’import d’une configuration client:
- le nom de la configuration client;
- le
format des données(obligatoire, choisi dans la liste déroulante); - le nom du client (libellé d’affichage);
- le fichier de configuration.
Remarque:
- on peut définir plusieurs configurations client, notamment pour réaliser des tests en cas d’évolution des exports.

Exemple de mapping
Le mapping Crédit Logement, qui suit les vues IRRBB_MM, Swaps_IRRBB, Securities_IRRBB et REPO telles qu’exportées, est le mapping de référence de la solution : mapping-credit-logement.json. C’est le même fichier que celui proposé au téléchargement dans Situations › Guide de l'import et dans la page Crédit Logement du menu d’aide. Ce qu’il mappe est décrit dans Import Crédit Logement. Il porte aussi les sections Classification (176 postes, drapeaux du périmètre IRRBB compris) et Modèles d’écoulement de la configuration Crédit Logement d’intégration.
Un exemple plus ancien, antérieur aux courbes de projection et aux colonnes de ténor, reste disponible : mapping.json. Ses index (ISWAP, ISAP) ne correspondent à aucune courbe du fichier de taux Crédit Logement ; il n’est pas importable en l’état.