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 Typecolumn picks the product —CAT …are term deposits (term_deposit),Emprunt …borrowings (loan),Swap …andAsset Swap …swaps, repos and securities lendingrepo,NANT-…pledges; the securities file is read as securities from its name; - columns: coupon and margin on two separate columns (
Coupon Ratefor the coupon of a fixed-rate security,Coupon Margin Ratefor the margin of a floating-rate security,Interest Rate Marginon theIRRBB_MMview), 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 RATEis projected onEURIBOR 3M SWAPfor a 3-month tenor and onEURIBOR 6M SWAPotherwise;ESTRandiESTERonESTR_PROJECTION;EURO OVERNIGHT INDEX AVERAGE(EONIA) onEONIA_PROJECTION;CMS (20-2)andPalliers TF, which have no curve of their own, onEURIBOR 6M SWAP; - compound curves:
DISCOUNT_EUR(discounting:ESTRovernight,EURIBORup to 1 year,ESTR SWAPbeyond),ESTR_PROJECTION(ESTR,ESTR CASHup to 1 year,ESTR SWAP) andEONIA_PROJECTION(EONIA,EONIA CASHup to 2 weeks,EONIA SWAP).ESTR SWAPonly starts at 2 years andEONIA SWAPat 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:
rateBasewithout business-day rules,defaultset toABB_30_360; - tags:
tagscopies theEntitycolumn onto every transaction; - balance sheet: no
accountingMapping. Each account’s type comes from themapping_comptaworkbook, which must therefore cover the whole ledger: at Crédit Logement it carries6and7lines asRésultat,9andHasHB, 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 containsSecurities(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/YYYYand 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.40for 2.40%). - Currency: the
Currencycolumn of theIRRBB_MMview gives the currency of the transaction; without a column (swaps, securities) or on a blank cell, the currency isEUR. A code that is not ISO 4217 gets the transaction rejected. Repos stay inEUR. - 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 intags(Entityin the Crédit Logement mapping) gets the whole row rejected. The transaction’s anomaly, on its reference (TD_…), isTag column '<column>' is blank. The deal is not imported., followed by the rejectionCannot 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 fromtags(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 msummary (as anERRORif 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):
- the optional
histosheet of the classification workbook (deal number → account); - the
instrumentAccountsrule 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:
- the day-count column mapped for the leg (
payDaysConvention,recDaysConvention), when it holds a day count: a value of therateBasetable, or a usual spelling (30/360,30E/360,ACT/360,ACT/365,ACT/ACT,Actual/360…); - otherwise, the market convention: euro fixed leg → 30/360 (
ABB_30_360); euro floating leg on EURIBOR, €STR or EONIA → ACT/360 (EXACT_360); - otherwise, the
defaultvalue ofrateBase.
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.(recleg andRec base ratecolumn 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/recRateTypecolumns (FIXEDorFLOATING) 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 Rateholds the coupon of a fixed-rate security,Coupon Margin Ratethe 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 thatDtCallEmet(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 theDeal 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 Rateof 0% is read as “fixing not provided”: the current coupon is read on the curve. - Capitalised interest: an instrument type containing
Capitaliseis 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
Indicesextract 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
ratedatemust 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_EURis always added to the context. - Compound curve that cannot be built: a threshold of
compoundCurvethat is not a tenor, that names no index, or two thresholds of the same tenor (1yand1Y) leave the compound curve out, with aCompoundCurveerror naming it (CRV-014 to CRV-017, Import reference). ratedatethat is not a date: in a workbook, aratedatecell entered as text (for example31/03/2026 18:00in 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 theratedatecolumn an Excel date format, or supply the file as CSV, whereratedatereadsDD/MM/YYYY HH:mm.
Classification and balance
- Empty
mapping_comptarow: 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_comptaaccounts: a numeric cell, or letters then digits. In themapping_comptasheet, the account (first column) is a numeric cell (its integer part), or a text made of letters followed by digits: the off-balance-sheet accountsH96…are therefore accepted. A number entered as text (131200in 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 inmapping_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**_29120005for a strategy of theaccountingproduct). The prefix must appear once inmapping_compta; otherwise every line of the strategy is set aside with the errorMapping 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_comptaormapping_compta_irrbbsheet 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 (
MissingClassificationwarning). The other anomalies of the classification (FINREP row rejected,histosheet) 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 writtenDDMMYYYY. - Unreadable balance: a missing
i1-balancesheet, 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_comptaline and noaccountingMappingkey 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 theBASELINEscenario. - 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).