Aller au contenu

Extension multi-décréments — prestation par cause (levée de D-PERIMETRE, Temps 1)

🎯 À retenir

Lève la borne D-PERIMETRE en introduisant une prestation par cause de sortie (décès, départ payant), pour ne plus compter à zéro les sorties indemnisées du barème légal gabonais. L'inclusion de chaque cause reste un acte d'hypothèse sous contrôle de l'actuaire ; sans cause payante, le modèle dégénère exactement vers l'équation retraite seule. Quantifié sur le cas-témoin : un écart à la hausse marqué par rapport au mode mono.

Rôle. Ce document lève la borne D-PERIMETRE de moteur-dbo_formalisation_v2.md (encadré §7) : l'éq. (6) ne valorise que le chemin retraite, approximation basse pour le barème légal gabonais (loi 022/2021, art. 87-90) où presque toutes les sorties paient. On introduit ici la prestation par cause \(B_j\) — formalisme multi-décréments standard, même machinerie que l'étage 1 de la vision trajectoires (états, transitions datées, prestation par transition). Oracle jumeau : kmulti_oracle.py (cas-témoin §5). Les numéros d'équations prolongent ceux de la v2 ((1)–(9)) : ici (10)–(13).

1. Registre des décisions (débat Direction, 2026-06-11)

Code Décision Motif
D-CAUSES-1 Jeu de causes = {retraite, décès, départ payant}, où départ payant fusionne démission (≥ 2 ans) et licenciement hors faute lourde sous un taux plat paramétrable \(q^{(w)}\). La décomposition fine démission/licenciement reste possible plus tard (le formalisme est par cause). Le client RH connaît son taux de départ global, rarement sa décomposition ; les deux causes paient la même formule au-delà du vesting (art. 88). Exclure le licenciement reproduirait la sous-évaluation qu'on lève.
D-CAUSES-2 L'inclusion de chaque cause est un acte d'hypothèse sous contrôle de l'actuaire (junior/senior) : les drapeaux de paiement (décès, départ) vivent sur le jeu d'hypothèses, exposés dans le panneau d'actions du labo, réservés aux personas staff (403 sinon). Défaut = aucune cause payante → l'éq. (6) actuelle, à l'identique. Le choix du périmètre indemnisé engage l'étude (ADR-0006) ; il doit être auditable (porté par le jeu, versionné par fork) et jamais implicite.
D-CAUSES-3 Convention de temps : la sortie pendant l'année \(s\) (entre les âges \(x{+}s\) et \(x{+}s{+}1\)) est payée en fin d'année \(s{+}1\) — ancienneté \(k{+}s{+}1\), salaire \(S_0(1+g)^{s+1}\), actualisation \(v^{s+1}\). Probabilité : \({}_s p^{(\tau)}_x \cdot q^{(j)}_{x+s}\) (convention additive de l'éq. (1), inchangée). Cohérent avec le fractionnement annuel \(m=1\) de la v2 ; calculable à la main (oracle) ; biais de demi-année assumé et documenté (raffinement \(m>1\) possible sans changer la structure).
D-CAUSES-4 Vesting par cause via les décréments, pas via l'attribution : la cause départ ne paie que si l'ancienneté à la sortie \(\ge\) vesting_depart (défaut 2 ans, art. 88). L'attribution \(A\) reste l'A2′ de la grille (\(s^\ast\) = entitlement de la grille), évaluée à la date de sortie. IAS 19 §70 (le vesting se reflète dans la probabilité que la prestation soit due) ; déjà acté dans references/summaries/gabon-ifc.md.
D-CAUSES-5 Le paramètre taux_rotation change de sens quand le départ devient payant (réducteur pur → source de valeur). On ne le renomme pas (compatibilité des jeux existants) mais tout affichage du mode multi indique explicitement « départ indemnisé » ; les comparaisons labo entre un jeu mono et un jeu multi restent légitimes (c'est la quantification de D-PERIMETRE). Piège silencieux identifié au débat : sans signal UI, les comparaisons avant/après seraient illisibles.

2. Équations (10)–(13)

Notations de la v2, plus : \(j \in \{d, w\}\) causes de sortie payantes (décès, départ), \(t = s+1\) date de paiement de la sortie de l'année \(s\), \(k_t = k + t\) ancienneté à la sortie, \(\bar S(t) = S_0 (1+g)^{t}\) base salariale projetée à \(t\).

(10) Prestation par cause (même grille pour toutes les causes au barème ISR ; le formalisme admet des \(B_j\) distincts — Épargne salariale, J4 bis) :

\[B_j(k_t, t) = G(k_t)\,\bar S(t)\,(1+\tau_{\text{cs}}), \qquad B_w \text{ due ssi } k_t \ge \text{vesting}_w\]

(11) Attribution à la date de sortie (A2′, \(s^\ast\) = entitlement de la grille) :

\[A(k, k_t) = \frac{[k - s^\ast]_+}{k_t - s^\ast}\]

(12) Composante sorties (somme sur les années et les causes payantes) :

\[\text{DBO}_{\text{sorties}} \;=\; \sum_{s=0}^{n-1} \; {}_s p^{(\tau)}_x \sum_{j} q^{(j)}_{x+s}\; A(k, k_{s+1})\; B_j(k_{s+1},\, s{+}1)\; v^{\,s+1}\]

(13) DBO multi-décréments = sorties + terme retraite (qui est l'éq. (6)) :

\[\text{DBO}_{\text{multi}} \;=\; \text{DBO}_{\text{sorties}} \;+\; \underbrace{{}_n p^{(\tau)}_x \, A(k, k_r)\, \text{PP}\, v^{\,n}}_{\text{éq. (6)}}\]

Propriété de dégénérescence (le garde-fou de rétrocompatibilité)

Si aucune cause n'est payante (\(J = \varnothing\)), alors \(\text{DBO}_{\text{multi}} = \text{DBO}_{\text{éq. (6)}}\) exactement (pas à une tolérance près : c'est le même terme). K1 et K1-bis restent les oracles du cas dégénéré ; toute implémentation doit reproduire cette égalité au bit près.

3. Faits attendus (réfutables, style §3 de la v2)

# Énoncé Vérification
F10 \(\text{DBO}_{\text{multi}} \ge \text{DBO}_{\text{éq.(6)}}\), strictement dès qu'une cause paie avec \(q^{(j)} > 0\) K-MULTI : +23,49 % vs K1-bis
F11 À causes payantes, \(\partial \text{DBO}_{\text{multi}} / \partial q^{(w)}\) peut être positif (le départ rapporte plus tôt qu'il ne retire) — l'inverse exact du mode mono comparaison K-MULTI vs K1 : multi > K1 alors que K1-bis < K1
F12 Le vesting tronque : pour \(k + 1 < \text{vesting}_w\), les premières années de départ ne contribuent rien test lib dédié (jeune embauché)
F13 Monotonies de la v2 (F2–F4) préservées composante par composante suite K3 étendue

4. Ce que ça change (et ne change pas) dans actuariat_lib

  • Nouvelle fonction pure dbo_population_puc_multidecrements(ages, anciennetes, salaires, hypotheses, causes) avec causes = CausesIndemnisees(payer_deces, payer_depart, vesting_depart) ; retourne le total et la décomposition par composante (retraite / décès / départ) — c'est la matière du labo.
  • Rien ne change dans dbo_population_puc (éq. 6) : K1/K1-bis/K2/K-OHADA intacts. Le mode trace et le graphe du labo restent adossés à l'éq. (6) (le pipeline multi a une structure de somme, pas de produit — exploration dédiée à instruire plus tard si besoin).
  • Le pont OHADA (éq. déterministe) est orthogonal : il compare toujours à la DBO retraite-seule de référence du jeu.

5. Cas-témoin K-MULTI (oracle, figé le 2026-06-11)

Hypothèses = K1-bis à l'identique (x=55, k=25, r=60, S₀=100 000, g=2 %, i=4 %, grille back-loaded 0|1|2, CIMA H, \(q^{(w)}=3\,\%\)), plus : décès et départ paient (D-CAUSES-1), vesting départ 2 ans (sans objet, k=25).

Déroulé complet dans kmulti_oracle.py (10 termes de sortie + terme retraite, chaque ligne imprimée). Valeurs figées :

Grandeur Valeur
Terme retraite 2 358 587,122796 = DBO K1-bis exactement (dégénérescence)
Somme des sorties 554 138,296414
DBO multi 2 912 725,419210 FCFA
Écart vs K1-bis +23,49 % — la sous-évaluation D-PERIMETRE quantifiée sur ce cas
Écart vs K1 +161 520,40 (le multi dépasse même la mortalité seule : F11)

Seuils kill-criterion (K5) : reproduction à \(|\Delta| \le 1\) FCFA et écart relatif \(\le 10^{-6}\), et dégénérescence exacte vers K1/K1-bis quand aucune cause ne paie.

6. Bornes restantes (documentées, non levées ici)

  • Base \(\bar S_{12}\) : la moyenne 12 mois est approchée par le salaire mensuel projeté (comme dans toute la v2) — l'écart est un sujet d'ingestion de données, pas de formalisation.
  • Fractionnement annuel : la sortie en cours d'année est ramenée à la fin d'année (D-CAUSES-3) ; raffinement \(m>1\) possible sans changer la structure.
  • \(q^{(w)}\) plat : un taux de départ par âge/ancienneté (table d'expérience) est l'aboutissement naturel — c'est précisément l'étage 3 de la vision (statistiques d'expérience par tags). Le formalisme l'accepte déjà (\(q^{(w)}_{x+s}\) peut dépendre de l'âge).