ADR-0015 — Waterfall IAS 19 · rapprochement réel à deux photos (flavor B, OCI)¶
Statut : accepté (2026-06-16).
Contexte : ADR-0011 a livré le pont
attendu (flavor A, volet compte de résultat) : DBO_0 + CSR + IC′ − Prestations =
DBO_clôture attendue, réévaluations ≡ 0 par construction, sur une seule photo. Il y
notait flavor B comme « Reste (Lot 2) ». Un actuaire ne s'arrête pas au P&L : IAS 19 §141
impose aussi le volet OCI — les écarts de réévaluation qui ne passent jamais en
résultat. C'est le rapprochement réel à deux photos, déroulé au FCFA sur l'employé
tiré au sort dans docs/formalisation/d-attrib_exercice-annuel.md (§6-8). Cet ADR le
construit.
🎯 À retenir
flavor B livre le volet OCI : un rapprochement réel à deux photos appariées par matricule (ouverture / clôture revalorisée) qui décompose la réévaluation en expérience puis hypothèses, le tout bouclant exactement au FCFA. Maison = le Labo (deux photos), pas le Studio. Aucune colonne de base ajoutée.
La question¶
Le pont réel décompose la clôture observée au-delà de l'attendu :
- Réév_expérience (OCI) — démographie et salaires réels vs attendus, à hypothèses
CONSTANTES. Sur un restant qui a survécu, c'est la levée de la décote de mortalité
DBO_t1·q_x: la provision pariaitq_xsur une sortie qui n'a pas eu lieu. - Réév_hypothèses (OCI) — effet de la re-détermination du taux d'actualisation (et des autres paramètres) à la clôture, à population RÉELLE constante. En milieu de carrière, ce terme domine d'un ordre de grandeur (duration × choc).
Le tout exige une seconde photo (clôture revalorisée) qu'on n'avait pas en flavor A.
Décisions¶
| # | Décision | Arbitrage |
|---|---|---|
| D-WFB-1 | Deux photos appariées par matricule. Flavor B rapproche t0 (ouverture) et t1 (clôture) sur la primitive « photo datée à matricule stable » — exactement le garde-fou 2 de ADR-0005. Flavor B et l'étage 1 des trajectoires sont frères : ils reposent sur la même primitive. |
2026-06-16 |
| D-WFB-2 | Split en deux pas, bouclage exact. Réév_exp = DBO(restants, état t1, hyp_0) − DBO_clôture_attendue (geler les hypothèses) ; Réév_hyp = DBO(restants, t1, hyp_1) − DBO(restants, t1, hyp_0) (geler la population). Par construction exp + hyp = réelle − attendue au FCFA. Réutilise roll_forward_attendu (flavor A) + dbo_population_puc (oracle K1) — une seule source de vérité. |
découle de §6-8 |
| D-WFB-3 | Périmètre fermé = les restants. Sortis (présents à t0, absents à t1) et entrants (nouveaux à t1) sont portés hors du bouclage : dbo_entrants + compteurs n_sortis/n_entrants, drapeau perimetre_ferme. Honnêteté de périmètre dans la lignée de D-WF-5 : un pont honnêtement incomplet plutôt qu'un faux bouclage. L'attribution complète de l'expérience des décréments est différée. |
honnêteté de périmètre |
| D-WFB-4 | Oracle K-WATERFALL-B. Le cas-témoin temporel A2′ (employé seed 20260610 avancé d'un an) reproduit au FCFA : Réév_exp = 62 705,31 ; clôture réelle (hyp inchangées) = 9 256 620,16 ; sous choc de taux 4 % → 4,5 % : Réév_hyp = −433 485,01, clôture réelle = 8 823 135,15. Vérifié en lib et à travers la base (apparié par matricule). |
d-attrib §6-8 |
| D-WFB-5 | Maison = Labo, pas le Studio. Le Studio est mono-photo (un dossier) ; flavor B exige le choix de deux photos, naturel dans le Labo qui charge déjà tous les dossiers + jeux. Panneau autonome RapprochementReel. |
nature à deux photos |
Mécanique¶
Lib — actuariat_lib.engagements.dbo.roll_forward_reel() : appelle roll_forward_attendu
sur les restants (pont attendu) puis dbo_population_puc deux fois (hyp_0 et hyp_1 sur l'état
t1) pour les deux moteurs OCI. Renvoie une DecompositionOCI (models.py). Oracle =
4 tests K-WATERFALL-B (tests/test_engagements.py).
Backend — persistance.calculer_waterfall_reel_jeu apparie par matricule (restants =
t0∩t1), partitionne par sexe (tables CIMA H/F, D-GENRE ; l'OCI est additif sur des
sous-populations disjointes), calcule les entrants via calculer_dbo_jeu. Endpoint
POST /api/dbo/dossier/waterfall-reel (_get_scoped × 4, 404 cross-tenant) — 4 tests
test_labo.py (oracle expérience + hypothèses à travers la base, périmètre ouvert, 404).
Front — WaterfallReelChart (app/labo/Graphes.tsx) : le pont attendu prolongé par les
deux barres OCI violettes (expérience puis hypothèses, flottantes et signées), jusqu'à la
clôture réelle ; pixels explicites (leçon tornado). Panneau RapprochementReel (sélection des
deux photos + deux jeux). Route proxy app/api/dbo/dossier/waterfall-reel/route.ts.
Conséquences¶
- + Le pont publie enfin le mouvement OCI : la lecture IAS 19 §141 est complète (P&L et réévaluations), le réel s'impute au bilan via l'OCI comme l'exige la norme révisée 2011.
- + Aucune colonne de base ajoutée : flavor B exploite la persistance existante (deux dossiers, deux jeux). Pas de risque de migration.
- + La primitive « deux photos à matricule stable » est désormais en place — socle partagé avec l'étage 1 des trajectoires (événements de carrière), à ne pas re-bâtir.
- −/assumé Périmètre restants : sortis/entrants sont des lignes frontière, pas une
expérience de décréments pleinement attribuée — drapeau
perimetre_ferme. - Reste : attribution de l'expérience des décréments (départ/décès réels vs attendus) et décomposition fine de l'écart de salaire réel vs projeté dans Réév_expérience.
Voir mémoire projet « Waterfall IAS 19 ActuaryLab ». S'appuie sur
docs/formalisation/d-attrib_exercice-annuel.md (§6-8) et prolonge ADR-0011.