Bilan constant et comportemental
4.1 Bilan constant
La NII se mesure sur un bilan constant : tout capital qui quitte le bilan dans l’horizon (échéance, amortissement, écoulement) est remplacé par une opération comparable, pour que l’encours ne fonde pas mécaniquement. Le RTS (UE) 2024/856, art. 4(4), le formule ainsi : « total size and composition, including on- and off-balance sheet items, shall be maintained by replacing instruments with maturing or repricing cash flows with new instruments that have comparable features with regard to the currency, amount and repricing period of the instruments generating the repricing cash flows ». La stratégie ConstantBalanceSheetStrategy porte l’horizon de renouvellement (rollHorizon, par exemple 1y ou 18m) ; la date limite est calculée en calendrier, \(t_{roll} = t_0 + \text{horizon}\).
Pour chaque opération dont l’échéance \(t_e\) est antérieure à \(t_{roll}\), une nouvelle opération est créée, qui démarre à l’échéance de la précédente et a la même durée :
\[t_s' = t_e \qquad t_e' = t_e + (t_e - t_s) \qquad t_c' = t_c + (t_e - t_s) \text{ (si call)}\]
Le renouvellement est répété tant que la nouvelle échéance reste dans l’horizon : un dépôt à 3 mois sur un horizon d’un an est renouvelé quatre fois (références REF_N, REF_N2, REF_N3, …).
| Produit renouvelé | Règle |
|---|---|
| Swap, titre, repo, prêt in fine, dépôt à terme | même nominal, même durée, même spread ; taux fixe re-tarifé (ci-dessous) |
| Prêt amortissable, dépôt sans échéance, solde comptable | pas renouvelés à l’échéance : le capital qu’ils remboursent ou écoulent dans l’horizon est remplacé (ci-dessous) |
Les opérations renouvelées portent original = false : tous leurs flux sont incertains, capital compris. Leurs coupons sont calculés sur le contexte du scénario :
un renouvellement à taux variable lit le forward de son index sur la courbe choquée : sa NII réagit au choc ;
un renouvellement à taux fixe est re-tarifé à l’identique dans chaque scénario : au taux de marché du scénario sur sa durée d’origine, plus la marge figée à la date d’arrêté. Seul le taux contractuel \(r\) de l’opération d’origine est connu ; la marge est donc \(r - R_{BASELINE}(t_0, t_0 + D)\), l’écart entre ce taux et le taux de marché de même durée à la date d’arrêté :
\[r'_\sigma = F_\sigma(t_r,\ t_r + D) + \big[r - R_{BASELINE}(t_0,\ t_0 + D)\big]\]
avec \(t_r\) la date de renouvellement, \(D\) la durée de l’opération d’origine (de sa date de départ à son échéance, en jours) et \(F_\sigma\) le taux de marché de cette durée lu sur la courbe de l’index du taux si elle existe, sur la courbe d’actualisation sinon. \(F_\sigma\) et \(R_{BASELINE}\) sont exprimés dans la base de calcul du taux renouvelé, celle où court son coupon fixe, à partir des facteurs d’actualisation de la courbe (§1.4) : taux simple \(\big(DF(t_a)/DF(t_b) - 1\big)/\tau_B\) pour une durée d’au plus un an dans cette base (un seul coupon monétaire), taux à composition annuelle \(\big(DF(t_a)/DF(t_b)\big)^{1/\tau_B} - 1\) au-delà (un taux fixe payé sur plusieurs années). Les deux coïncident à un an. Un taux simple sur plusieurs années porterait la capitalisation de chaque année et transmettrait un choc parallèle amplifié d’environ \((1 + r)^{D - 1}\). Le spread contractuel est conservé. Sur une courbe plate, le taux renouvelé reste \(r\) en baseline si la durée compte le même nombre de jours de base aux deux dates ; sous un choc parallèle de +200 bp il monte du choc du taux de marché de sa durée, soit environ 197 bp pour une durée de six mois en Exact/365, 200 bp au-delà d’un an en Exact/365 ; sur une courbe pentue, il suit aussi le forward en baseline. La règle couvre les prêts in fine, dépôts à terme, titres, repos et la jambe fixe des swaps ; si la courbe ne peut être lue, le renouvellement garde son taux d’origine et un avertissement est journalisé.
Les opérations renouvelées n’entrent que dans la NII : l’encours, la maturité moyenne, l’EVE, la MV et les échéanciers de repricing (J 05.00 à J 07.00) sont calculés sur le bilan à la date d’arrêté, sans elles (l’EVE est une mesure en extinction, le bilan constant une hypothèse de NII).
Remplacement de l’amortissement et de l’écoulement
Un prêt amortissable rembourse son capital par échéances, un dépôt sans échéance et un solde comptable s’écoulent par tranches (§4.2) : aucun ne tombe en une fois, la règle d’échéance ci-dessus ne les renouvelle pas, même un solde dont la loi linéaire s’achève avant l’horizon (loi 1M). Leur capital est remplacé à partir de leurs propres flux, scénario par scénario et vue par vue : chaque flux de capital \(C\) qui quitte le bilan à une date \(t_k\) avec \(t_0 < t_k < t_{roll}\) est remplacé, le jour même, par une opération nouvelle de même montant et de même devise, qui :
- reste au bilan jusqu’à \(t_{roll}\) : ses propres remboursements dans l’horizon seraient à leur tour remplacés, le montant \(C\) reste donc en place jusqu’à la fin de l’horizon. Elle ne porte que des intérêts, courus de \(t_k\) à \(t_{roll}\) ;
- porte le taux du flux remplacé, calculé comme pour l’opération d’origine :
- prêt amortissable à taux fixe : re-tarifé à l’identique comme un renouvellement, \(r'_\sigma = F_\sigma(t_k,\ t_k + D) + \big[r - R_{BASELINE}(t_0,\ t_0 + D)\big]\), \(D\) étant la durée totale du prêt (du départ à la dernière échéance) ; spread conservé ;
- prêt amortissable à taux variable : index et spread du prêt, forward du scénario, coupons à la fréquence de paiement du prêt ;
- dépôt sans échéance, solde comptable : le taux de l’opération, qui réagit au scénario comme celui de l’opération elle-même (inchangé s’il est fixe, forward de l’index s’il est variable). Ces encours n’ont pas de durée sur laquelle re-tarifer un taux fixe, et aucun taux de transmission (pass-through) n’est appliqué au remplacement qui ne l’est pas déjà à l’encours d’origine.
Les remplacements d’une même opération apparaissent sous la référence REF_R. Comme les renouvellements, ils n’entrent que dans la NII. En bilan en croissance, chaque montant est multiplié par \((1 + g)^{\tau}\), \(\tau\) en années de \(t_0\) à \(t_k\) ; en extinction, rien n’est remplacé.
Chaque opération générée, renouvellement (REF_N, REF_N2, …) ou remplacement (REF_R), porte un commentaire qui dit pourquoi elle existe (quelle opération elle renouvelle à quelle échéance, ou de quelle opération elle remplace le capital remboursé ou écoulé), affiché dans le tableau du portefeuille et sur la page de l’opération.
Exemple : un dépôt de 1 000 000 à 1 % fixe, écoulé de 25 % à 3 mois, 25 % à 6 mois et 50 % à 2 ans, a sur un an la NII d’un encours constant de 1 000 000 à 1 %, soit 10 000, dans tous les scénarios. Un capital qui part exactement à \(t_{roll}\) (la première tranche d’un solde comptable à loi linéaire annuelle, par exemple) ne laisse rien à gagner dans l’horizon et n’est pas remplacé.
Reporting IRRBB : bilan constant et plancher obligatoires
Les états IRRBB sont le test des valeurs aberrantes prudentiel : NII sur un an en bilan constant (RTS (UE) 2024/856, art. 4(2) et 4(4)) et plancher post-choc (art. 3(7), repris pour la NII par l’art. 4(1)). La génération des états est refusée, avec un message qui en donne la raison, si le bilan de l’import n’est pas un bilan constant, si son horizon de renouvellement couvre moins d’un an, ou si le calcul désactive le plancher post-choc. Les flux de trésorerie restent produits.
Bilan d’une simulation personnalisée
Le calcul officiel prend l’évolution du bilan de l’import (le bilan constant ci-dessus). Une simulation personnalisée (Scénario Custom) peut la remplacer ; les lois d’écoulement de l’import restent inchangées.
| Bilan | Production nouvelle |
|---|---|
| Constant sur N mois | les renouvellements ci-dessus, horizon N mois |
| En extinction (run-off) | aucune : le bilan s’écoule |
| En croissance de g % par an | les renouvellements du bilan constant, montants multipliés par \((1 + g)^{\tau}\) |
Pour le bilan en croissance, \(\tau\) est le nombre d’années, en Exact/365, de la date d’évaluation à la date de départ du renouvellement (\(t_s'\)). Chaque renouvellement est mis à l’échelle depuis le montant d’origine : la croissance d’un renouvellement ne s’ajoute pas à celle du précédent. À 3 % par an, un renouvellement qui démarre 365 jours après la date d’évaluation voit ses montants multipliés par \(1{,}03\), un renouvellement qui démarre 730 jours après par \(1{,}03^2 = 1{,}0609\). Sont multipliés : le nominal des deux jambes d’un swap ; le nominal, la valeur restante et la prime d’un titre ; le montant d’un dépôt à terme ou d’un prêt in fine ; les valeurs faciales, le montant d’intérêt et la prime d’un repo.
4.2 Lois d’écoulement
Les encours sans échéance contractuelle (dépôts à vue, épargne, soldes comptables) s’écoulent selon une loi conventionnelle, déclarée dans la stratégie de bilan :
| Loi | Paramètres | Utilisée par |
|---|---|---|
Par buckets (BucketOutflowStrategy) |
une part par bucket (1m → 0,2, 1y → 0,3, …), somme = 1 |
dépôts, soldes comptables |
Linéaire (LinearOutflowStrategy) |
horizon, fréquence | soldes comptables (convertie en loi par buckets) |
Script (ScriptOutflowStrategy) |
langage, fonction | dépôts (fonction Python, GraalPy) |
Une loi est rattachée à un produit (productName) et à une ou plusieurs origines (strategyType) : un dépôt peut ainsi s’écouler selon une convention en vue contractuelle (par exemple tout à 1 jour) et selon un modèle comportemental en vue comportementale. Les formules sont dans les fiches 2.6 et 2.7.
4.3 Options de remboursement anticipé (call)
La date de call d’une opération (callDate) n’est utilisée que dans la vue comportementale (sauf pour les swaps, où elle borne les deux vues) :
| Produit | Effet d’un call antérieur à l’échéance |
|---|---|
| Prêt in fine, dépôt à terme | coupon chevauchant le call proratisé jusqu’au call ; coupons suivants supprimés ; remboursement au call ; coupon unique recalculé jusqu’au call |
| Titre | coupon chevauchant le call proratisé jusqu’au call ; coupons suivants supprimés ; remboursement au call |
| Repo | intérêt calculé jusqu’au call ; remboursement au call |
| Swap | coupons postérieurs au call supprimés et nominal échangé au call, dans les deux vues |
L’exercice du call est supposé certain : le moteur ne valorise pas l’option (pas d’arbitrage selon le niveau des taux du scénario).
4.4 Modes de projection du taux
Le paramètre moteur rateProjectionMode fixe le taux appliqué aux coupons incertains des opérations à taux variable :
| Mode | Taux d’un coupon incertain |
|---|---|
FORWARD (défaut) |
forward de l’index sur la période du coupon, lu sur la courbe du scénario |
LAST_FIXING |
dernier taux connu, gelé sur toutes les périodes à venir, augmenté du choc du scénario |
En mode LAST_FIXING, le dernier taux connu est, par ordre de priorité :
- le taux de la ligne de préfixing de l’opération dont la fenêtre couvre la date d’arrêté ;
- le fixing connu de l’opération (
rate.valuenon nul) ; - à défaut, le taux courant de l’index sur la courbe du scénario : \(F_\sigma(t_0,\ t_0 + \text{ténor})\).
Dans les cas 1 et 2, le choc du scénario est ajouté au taux observé :
\[r^{LF}_\sigma = r^{obs} + \Big[F_\sigma(t_0, t_0 + \text{ténor}) - F_{BASELINE}(t_0, t_0 + \text{ténor})\Big]\]
Le choc est donc nul en BASELINE. Le mode ne modifie pas la certitude des flux (ils restent incertains pour l’EVE et les gaps) : seul leur taux change. Les coupons certains suivent toujours leurs propres règles (fixing connu, préfixing, forward borné à l’arrêté).
4.5 Préfixing
Les données de préfixing permettent de saisir, opération par opération, un taux qui remplace le taux de courbe. Une ligne porte le numéro d’opération (deal), le taux, la date de l’action et la fréquence du taux de base ; elle s’applique :
- uniquement aux flux certains (sauf en mode
LAST_FIXING, §4.4) ; - si la date cible est antérieure à \(\text{date de l'action} + \text{fréquence}\) ;
- si une et une seule ligne correspond à l’opération (plusieurs lignes → erreur, la ligne est ignorée).
Le rapprochement se fait sur la deuxième partie de la référence de l’opération (PRODUIT_DEAL). L’utilisation d’un préfixing est tracée dans le journal de génération (niveau INFO).