Crédit Logement import

This page describes the rules the solution applies when it reads the files of a situation in the Fichiers Crédit Logement (CREDIT_LOGEMENT) format: how each value is interpreted, what is inferred when a value is missing, and the warnings that report it. The files are detailed column by column in the application; this page does not repeat that detail. The complete reference of every processing step and conversion, column by column, is Import: processing and conversions; every warning and every error has its entry, by its code, in the Anomaly reference. Every default value is listed, with the warning that reports it, in Default rules.

The import guide and its files

The Situations › Import guide menu opens the guide to the import and the first run. It contains:

  • the journey, screen by screen: create the client configuration, gather the seven files, import, check the situation, check the evaluation context and the curves, enter the additional reporting data, launch the generation, read the results; for each step, the prerequisites, what to fill in, what you get and the common errors;
  • the files, column by column: for each slot of the guided import, its purpose, its format, its link with the mapping and, for each column of the extracts, its meaning, an example, its status (mandatory, optional, ignored), the mapping key it feeds and how the engine uses it;
  • the known limits of the format;
  • the files to download:
File Content
modele-import-credit-logement.xlsx The Excel template: a Lisez-moi (read me) sheet, one sheet per transaction view (IRRBB_MM, Swaps_IRRBB, Securities_IRRBB, REPO), the INEO_Indices curves, the i1-balance balance, the classification (mapping_compta, mapping_compta_irrbb), the pre-fixed cash flows and a Dictionnaire (dictionary) of the columns.
mapping-credit-logement.json The Crédit Logement mapping, to upload into the client configuration (below).
mapping.json The reference mapping, a starting point for other file formats.
model_demo.json A run-off model: a linear convention and a 1-year constant balance sheet.

The Excel template is a workbook of examples, not a file to import as is: each view is sent in its own file, as the extracts are. Its data is fictitious and forms a small consistent portfolio. Saved sheet by sheet — the securities file with Securities in its name, the two classification sheets together under their names mapping_compta and mapping_compta_irrbb —, it imports with the Crédit Logement mapping and model_demo.json, the reference date 2026-03-31, the index DISCOUNT_EUR and the currency EUR entered on the import screen.

The Crédit Logement page of the help menu (? in the top bar) presents the two reference files (template and mapping) and follows one extract row through every section of the mapping.

The Crédit Logement mapping

The mapping-credit-logement.json file (also downloadable from the Client Configuration page) follows the views as exported:

  • products: the Instrument Type column picks the product — CAT … are term deposits (term_deposit), Emprunt … borrowings (loan), Swap … and Asset Swap … swaps, repos and securities lending repo, NANT-… pledges; the securities file is read as securities from its name;
  • columns: coupon and margin on two separate columns (Coupon Rate for the coupon of a fixed-rate security, Coupon Margin Rate for the margin of a floating-rate security, Interest Rate Margin on the IRRBB_MM view), index tenors (Basis Rate Frequency Time Band, Pay / Rec Rate Basis Freq Time Band), remaining nominal (Remaining Face Value), review frequencies, call date (DateCall), issuer call of securities (DtCallEmet), deal date; no column missing from the extracts is mapped;
  • indexes: EURO INTERBANK OFFERED RATE is projected on EURIBOR 3M SWAP for a 3-month tenor and on EURIBOR 6M SWAP otherwise; ESTR and iESTER on ESTR_PROJECTION; EURO OVERNIGHT INDEX AVERAGE (EONIA) on EONIA_PROJECTION; CMS (20-2) and Palliers TF, which have no curve of their own, on EURIBOR 6M SWAP;
  • compound curves: DISCOUNT_EUR (discounting: ESTR overnight, EURIBOR up to 1 year, ESTR SWAP beyond), ESTR_PROJECTION (ESTR, ESTR CASH up to 1 year, ESTR SWAP) and EONIA_PROJECTION (EONIA, EONIA CASH up to 2 weeks, EONIA SWAP). ESTR SWAP only starts at 2 years and EONIA SWAP at 4 years: without these projection curves, an overnight leg would be projected on the first swap pillar extrapolated flat (1.78% instead of the €STR fixing of 1.92% at 30/06/2025);
  • conventions: rateBase without business-day rules, default set to ABB_30_360;
  • tags: tags copies the Entity column onto every transaction;
  • balance sheet: no accountingMapping. Each account’s type comes from the mapping_compta workbook, which must therefore cover the whole ledger: at Crédit Logement it carries 6 and 7 lines as Résultat, 9 and H as HB, next to the balance-sheet postes.

It declares no curveQuotations: its curves are read as zero-coupon rates. To quote a curve at par, add it to that section before the import (Client Configuration).

Files and rows

  • Transaction views: four views, one file each — IRRBB_MM (borrowings and term deposits), Swaps_IRRBB, Securities_IRRBB, REPO. A file whose name contains Securities (ignoring case) is read as securities, whatever product the mapping gives.
  • Headers: column names are read character for character, spaces included. In Excel, every sheet is read; the header is the first row with more than five filled cells, the title rows above it are skipped, and a sheet without such a header is ignored. In CSV, the separator is ; and a decimal comma is accepted.
  • Dates: a real Excel date, an Excel serial number (the result of a formula), or a text YYYY-MM-DD, DD/MM/YYYY and a few variants (full list). A text before 01/01/1950 is read as missing; an unreadable date gets the transaction rejected.
  • Rates: as percentages in the files (2.40 for 2.40%).
  • Currency: the Currency column of the IRRBB_MM view gives the currency of the transaction; without a column (swaps, securities) or on a blank cell, the currency is EUR. A code that is not ISO 4217 gets the transaction rejected. Repos stay in EUR.
  • References: the deal number (Deal Number) becomes the reference, prefixed by product: LO_ (borrowing), TD_ (term deposit), SW_ (swap), SE_ (security), RE_ (repo). It must be unique in the file; the import does not check it, and a duplicate number is reported by no anomaly.
  • Counterparty: an empty counterparty becomes DEFAULT_NAME.
  • Tags (tags): in an Excel workbook, an empty cell of a column listed in tags (Entity in the Crédit Logement mapping) gets the whole row rejected. The transaction’s anomaly, on its reference (TD_…), is Tag column '<column>' is blank. The deal is not imported., followed by the rejection Cannot import the transaction at row <n> of sheet '<sheet>' of '<file>'; see the anomaly on its reference for the cause. In CSV, an empty cell gives an empty tag and the row is imported. To avoid it, fill the column on every row, or remove it from tags (TRX-040).
  • Rejected row: a row that cannot be read is rejected with an anomaly giving its position (row, or row and sheet) and the cause, and each file ends with an Imported n lines from m summary (as an ERROR if at least one row is rejected). A single rejected row makes the file invalid in a guided import (TRX-007, TRX-008, TRX-009).
  • Pledges: NANT-… rows have no treatment and are rejected (TRX-010).

Direction of transactions

The direction of a transaction (an investment or a borrowing of the bank) is read from the column mapped on the nature key: Borrow or Invest for money-market transactions and securities, Borrowing Investing for repos. It holds INVESTMENT or BORROWING, case ignored. The column wins as soon as it holds one of these two values. The IRRBB_MM view has no such column today. When the key is not mapped, the column is missing or the cell is empty, the direction is inferred from the instrument type (Instrument Type, case and accents ignored):

Product Instrument Type Inferred direction
Borrowing, term deposit CAT … investment (INVESTMENT)
Emprunt … borrowing (BORROWING)
Security an ISIN code (FR0013154044): a security held investment (INVESTMENT)
TSDD …, TSDI …, TSR …, TSS …: a subordinated security issued borrowing (BORROWING)
Repo Prise pension …, Prise en pension …, Pret de titres, Collateral Pret de titres investment (INVESTMENT)
Mise en pension …, Emprunt … borrowing (BORROWING)
all other, or empty none: the transaction is booked BUY, with a warning

These mappings follow the ones the column gives on every row of the Crédit Logement extracts that carry it. For a security, the instrument type is read from the instrumentType key when it is mapped, otherwise from the isin key: the Crédit Logement mapping puts the Instrument Type column there.

The inferred direction follows each product’s convention, as the column does: an investment is BUY on a loan, a security (security bought) and a repo (reverse repo), and SELL on a term deposit; a borrowing is the opposite. Each transaction file reports once, as a Direction warning, how many directions were inferred: investments, borrowings and unrecognised types. A nature value that is neither INVESTMENT nor BORROWING is not guessed: the transaction is booked BUY, with a warning quoting the value. An empty cell therefore never gives a silent SELL (a security held turned into a negative asset). Codes: TRX-024 to TRX-027.

Accounting account of the transactions

An imported transaction carries no accounting account. Its account, which places it in a FINREP row through the classification, is looked up in this order (principle):

  1. the optional histo sheet of the classification workbook (deal number → account);
  2. the instrumentAccounts rule of the client configuration (Accounting account of the deals): the rule of the deal’s instrument type, failing that of its sub-family, failing that of its family.

No account is assumed. The reference Crédit Logement mapping carries the rules read from the Compte comptable calc column of the April 2026 INEO_Ech extracts:

Level Instrument Account
Family swap 943100
Sub-family asset swaps (Asset Swap Fix Fix, Asset Swap Fix Float, Asset Swap Inflation Fix Float) 943101
Family term_deposit (CAT …) 131200
Instrument type CAT Actions 131223
Family loan (Emprunt …) 541900
Instrument type Emprunt PPD Taux Variable 541200
Sub-family reverse repos (Prise pension de titres (In fine), (Periodic)) 301110
Instrument type Mise en pension de titres 301210
Instrument type Pret de titres / Collateral Pret de titres 304520 / 3026**
Family security 304120
Instrument type TSDD 15/02/34 T2 541100

The reference mapping fills in neither accruedInterestAccounts nor secondLegAccounts: at Crédit Logement, accrued interest and securities loans and borrowings are outside the IRRBB perimeter, as the flags of their postes in mapping_compta say (IRRBB perimeter). Poste 302710 must be Passif in mapping_compta.

The account used must appear in the mapping_compta sheet (a starred account: the postes it covers, on one FINREP row). A transaction no rule covers, or whose account cannot be classified, is imported without an account: its cash flows are computed, but it has no FINREP row. Each deals file reports it in a warning that counts those transactions by instrument type and names their deal numbers. The ledger reconciliation shows them on a line with no poste.

Swap legs

Day count of a leg

The Swaps_IRRBB view has an empty Days Convention column. The day count of each leg is decided in this order:

  1. the day-count column mapped for the leg (payDaysConvention, recDaysConvention), when it holds a day count: a value of the rateBase table, or a usual spelling (30/360, 30E/360, ACT/360, ACT/365, ACT/ACT, Actual/360…);
  2. otherwise, the market convention: euro fixed leg → 30/360 (ABB_30_360); euro floating leg on EURIBOR, €STR or EONIA → ACT/360 (EXACT_360);
  3. otherwise, the default value of rateBase.

A business-day rule (FOLLOWING, MODIFIED FOLLOWING, PRECEDING, ACTUAL DATE, UNADJUSTED…) is never read as a day count, even if the rateBase table lists it: it takes the market convention. Each swap file reports once, as a DayCount warning, how many legs took the market convention and why (empty cell, business-day rule, unrecognised value) (TRX-028). As soon as the column holds a day count, its value wins.

Base rate of a leg

The Pay base rate and Rec base rate columns (keys payBaseRate / recBaseRate) are read for every swap, fixed leg and floating leg alike: they hold the fixed rate of the fixed leg, and the last fixing, for information, of the floating leg (Rates, calls and projection). An empty or non-numeric cell gets the swap rejected. For a non-numeric cell, the transaction’s anomaly is Cannot parse 'payBaseRate' with value '…' (or recBaseRate, TRX-016). For an empty cell, the user sees two ERROR anomalies in the import log, or on the swap file in a guided import:

  • The pay leg has no base rate: column 'Pay base rate' is blank. The deal is not imported. (rec leg and Rec base rate column for the receiving leg), on the swap’s reference (SW_…), TRX-042;
  • Cannot import the transaction at row <n> of sheet '<sheet>' of '<file>'; see the anomaly on its reference for the cause. (line <n> for a CSV file), with the raw row as detail;

and the file summary becomes Imported n lines from m: k line(s) rejected. To avoid it, always fill the base rate of both legs with a number: 0 for a floating leg whose last fixing is not known (the value of a floating leg does not enter the calculation of its coupons, and in Last known rate mode a rate of 0 is read as a fixing not provided).

Type and schedule of a leg

  • The optional payRateType / recRateType columns (FIXED or FLOATING) decide the type of the leg. Without them, a leg that quotes an index is floating, a leg without an index fixed. A leg flagged floating without an index is valued at its current rate; a leg flagged fixed that quotes an index is booked fixed, the index being kept for information. Each case is reported by a warning (TRX-030, TRX-031).
  • The schedule is built backward from maturity. A first payment date supplied that is more than 4 days off that schedule is reported by a warning; the schedule is kept (TRX-032).
  • Both legs have the same nominal; the remaining nominal is not read for swaps.

Securities

  • Coupon Rate holds the coupon of a fixed-rate security, Coupon Margin Rate the margin of a floating-rate security. An empty or non-numeric cell counts as 0%; if that cell makes the coupon, a warning names the column (TRX-034, TRX-035).
  • The call date is DateCall, failing that DtCallEmet (issuer call); if both are filled in and differ, the nearer one is used, with a warning (TRX-033) (Rates, calls and projection).
  • The settlement date is the Settlement Date, the deal date the Deal Date.

Outstanding amounts, rates and review

  • Remaining nominal: when remainingNominal (Remaining Face Value) is mapped, the transaction is booked on the remaining amount (borrowings, term deposits, securities), including a zero amount; a difference with the original nominal is reported (TRX-029). An empty cell keeps the original nominal.
  • Unknown fixing: on a floating-rate transaction, an Interest Rate of 0% is read as “fixing not provided”: the current coupon is read on the curve.
  • Capitalised interest: an instrument type containing Capitalise is calculated with compound interest; a capitalised term deposit pays a single coupon at maturity.
  • Review: the review frequency (Review Frequency) is stored on the rate but not used yet: the rate of a floating-rate transaction is reviewed on each payment date. A review frequency the engine does not know (DAILY) is left empty, with an information message.
  • Unmapped index: see Index consistency checks.

Rate curves

  • The INEO Indices extract covers one month of quotes. One curve is built per name (ratename) and per date; for each index, the date closest to the reporting date is used.
  • Excel dates: the quote date of a workbook is read without any time-zone shift: 31/03 stays 31/03 whatever the server’s time zone. In Excel, each quote row must fill at least eight cells (the eight columns of the extract) and ratedate must be a real date; the sheet read is the one whose header carries the quote columns (the first in alphabetical order if there are several, with a warning, CRV-005). A missing quote column, an incomplete or unreadable row and a curve too far from the reporting date have their code too (CRV-006 to CRV-011), as has an index of the mapping missing from the file (CRV-012).
  • The compound curves (DISCOUNT_EUR, ESTR_PROJECTION, EONIA_PROJECTION) are assembled from these curves (Client Configuration).
  • A zero liquidity spread curve LIQUIDITY_SPREAD_EUR is always added to the context.
  • Compound curve that cannot be built: a threshold of compoundCurve that is not a tenor, that names no index, or two thresholds of the same tenor (1y and 1Y) leave the compound curve out, with a CompoundCurve error naming it (CRV-014 to CRV-017, Import reference).
  • ratedate that is not a date: in a workbook, a ratedate cell entered as text (for example 31/03/2026 18:00 in a column formatted as Text) is not read: the quote has no date, nor has the curve it forms. On import, the check of the distance to the reporting date then fails on that curve and the import is aborted: Unable to build the evaluation context from '<file>': NullPointerException… (CRV-002). Checking the file on its own, in a guided import, does not always reveal it, since the reporting date is not known there. To avoid it, give the ratedate column an Excel date format, or supply the file as CSV, where ratedate reads DD/MM/YYYY HH:mm.

Classification and balance

  • Empty mapping_compta row: a row holding an account without a category (empty balance-sheet side or counterparty) classifies no transaction; it is reported by a warning naming the row, no longer by an error (CLS-008).
  • Text accounts of the balance: the off-balance-sheet accounts H96… are text cells; they are read as text, in Excel as in a delimited file.
  • mapping_compta accounts: a numeric cell, or letters then digits. In the mapping_compta sheet, the account (first column) is a numeric cell (its integer part), or a text made of letters followed by digits: the off-balance-sheet accounts H96… are therefore accepted. A number entered as text (131200 in a cell formatted as Text) gets the row set aside as an error: Classification row <n> of sheet 'mapping_compta' skipped: ClassCastException: the account '131200' is a text cell; it must be a numeric cell (CLS-009). An error makes the classification file invalid in a guided import, and an account set aside classifies no transaction: a transaction attached to that account is imported without a FINREP row (CLS-002), a modelled balance line is set aside (Mapping for 'Classification' 'account' and reference '<account>' is missing, CLS-019).
  • Modelled balance lines: classified on the strategy prefix. A balance line run off by a strategy of the run-off model takes as its account the strategy reference without its stars (291200** → 291200), not its own account (29120005). That account places it in mapping_compta, then in its FINREP row: all the lines of one strategy therefore share the same classification, and a reference that starts the same way, followed by the line’s account (ACCOUNTING_291200**_29120005 for a strategy of the accounting product). The prefix must appear once in mapping_compta; otherwise every line of the strategy is set aside with the error Mapping for 'Classification' 'account' and reference '291200' is missing (CLS-019). To classify two groups of accounts differently, declare two strategies with distinct prefixes: a balance line takes the strategy with the longest prefix.
  • Unusable classification workbook: the classification comes from the Classification section of the client configuration. A workbook whose mapping_compta or mapping_compta_irrbb sheet is missing, or that cannot be read, is refused when loaded into the configuration, with the cause (CLS-003, CLS-004): nothing is loaded and the previous version stays. A configuration without a classification stops the import (IMP-055).
  • Category without a FINREP row: one warning per category (CLS-010); its transactions leave the whole reporting (MissingClassification warning). The other anomalies of the classification (FINREP row rejected, histo sheet) are CLS-005 to CLS-014.
  • Transactions without an account: a transaction that no rule files, or whose account cannot be classified, is imported without a FINREP row; each transaction file reports it once (CLS-001, CLS-002).
  • Text balance: the file has no header line, like Crédit Logement’s balance.txt: its first line is read as an account. Do not add a title line, it would be dropped with an error (BAL-010). The date (4th column) is written DDMMYYYY.
  • Unreadable balance: a missing i1-balance sheet, an unsupported format or an unreadable file make the import fail (BAL-006 to BAL-008); an unreadable row is set aside (BAL-009, BAL-010).
  • Ledger coverage: the balance accounts that no mapping_compta line and no accountingMapping key types are counted, by class, in one warning (BAL-011).
  • Outflow strategies: a prefix listed by several strategies, or an account covered by several prefixes, is reported (BAL-012, BAL-013; Assignment of balance lines).

Evaluation context

  • The imported evaluation context is of type INPUT, in the BASELINE scenario.
  • Rating scales are not required for an IRRBB import: only the credit risk engine reads them, and Crédit Logement provides none. The other constraints of the context apply.

With these rules, the Crédit Logement reference extracts (June 2025 and 2024) import without any ERROR anomaly.

Pre-fixed cash flows

The Historique Rate Set - Vue prochain rate set extract gives the last known fixing of each floating-rate transaction. The header is the row containing Deal No or action_dt; the columns are read by position. A row is matched with the transaction whose reference, without its prefix (LO_, SW_…), equals the Deal No. A transaction without a row keeps a projected first coupon; several rows for the same transaction are an error (Several prefixing lines found, CFW-040). How a pre-fixing is used is described in §4.5 of the methodology.

A workbook without a sheet or unreadable is not read (BAL-001, BAL-002); with several cash flow sheets, only the first is read (BAL-003); without a header row, data is read from row 3 (BAL-004); a row whose date, rate or frequency cannot be read is set aside (BAL-005).