boncourant

negotiated-structure.risk.exposure — exposition et risque de coût


Objectif


Ce module produit une vue d'exposition au risque de coût pour la structure

contractuelle recommandée. Il transforme les trois scénarios de prix du module

lock-vs-float (spec-2bis#9) en une bande de coût tout compris avec un chiffre de

risque au pire cas — le cadrage que les directeurs énergie et les courtiers

expérimentés utilisent réellement pour évaluer un contrat.


Il remplace la sensibilité déterministe ±10%/±20% sur la seule composante

énergie (reference-price/index.ts) par un **cadre de risque sur le notionnel

total annuel**.


---


Trois scénarios → approximation de percentiles


Le module réutilise les trois scénarios équipondérés de spec-9

(computeLockVsFloat), chacun avec une pondération de 1/3 :


| Scénario | Multiplicateur | Rôle dans l'exposition |

|-----------|----------------|----------------------|

| Baissier | ×0,85 | ≈ p05 — coût minimal |

| Central | ×1,00 | ≈ p50 — meilleure estimation |

| Haussier | ×1,15 | ≈ p95 — coût maximal |


Important : ces percentiles sont une approximation par 3 points,

non une distribution Monte-Carlo. La largeur de la bande dépend de

l'hypothèse de volatilité de ±15 % annualisé (voir lock-vs-float/explanation.md).

Ce point est divulgué explicitement dans la sortie du module (methodology_note).


---


Composantes calculées


Coûts tout compris par scénario


Pour chaque scénario, le coût tout compris (€/MWh) est :


```

coût_allin(scénario) = énergie_mixte(scénario) + composantes_non-énergie

```


où :

  • énergie_mixte(scénario) = la composante énergie de la structure mixte dans
  • ce scénario, issue de ScenarioCost.blended_energy_eur_mwh (spec-9)

  • composantes_non-énergie = TURPE + accise + CSPE + CEE + capacité + frais
  • fixes (invariants selon le scénario, déduits de expected_cost_eur_mwh de spec-9)


    Delta au pire cas (champ principal)


    ```

    worst_case_delta_eur_year = (p95_eur_mwh − p50_eur_mwh) × annual_mwh

    ```


    C'est la dépense supplémentaire maximale par rapport à l'estimation centrale

    dans le scénario haussier. C'est le chiffre à communiquer au directeur énergie.


    Bande notionnelle annuelle


    ```

    notional_range = {

    low_eur: p05_eur_mwh × annual_mwh, # scénario baissier

    central_eur: p50_eur_mwh × annual_mwh, # scénario central

    high_eur: p95_eur_mwh × annual_mwh, # scénario haussier

    }

    ```


    ---


    Indicateur de risque (`risk_label`)


    L'indicateur est dérivé du delta au pire cas en pourcentage du coût central :


    ```

    worst_case_delta_pct = (p95_eur_mwh − p50_eur_mwh) / p50_eur_mwh

    ```


    | Valeur | Indicateur | Profil typique |

    |-------------|-------------|----------------|

    | < 3 % | faible | Structure principalement fixe |

    | 3 % à 8 % | modéré | Structure mixte équilibrée |

    | ≥ 8 % | élevé | Structure majoritairement indexée ou opportuniste |


    Ces seuils ont été calibrés par rapport au modèle de volatilité ±15 % :

  • Structure entièrement fixe : delta ≈ 0 % (invariante)
  • Structure mixte standard (70 % fixe / 30 % indexé) : delta ≈ 2–3 %
  • Structure entièrement indexée : delta ≈ 15 % × part_énergie ≈ 7–9 %

  • ---


    Portée et limites


  • Ce module est un calcul autonome, pur et synchrone. Il prend un
  • LockVsFloatResult déjà calculé et produit l'exposition — aucun E/S.

  • L'hypothèse de volatilité (±15 %) doit être revue annuellement par rapport
  • aux données publiées CRE et EPEX SPOT.

  • Les percentiles ne tiennent pas compte du risque de liquidité, de contrepartie,
  • ou d'autres risques non-marché.

  • La composante non-énergie (TURPE, taxes, etc.) est supposée invariante par
  • scénario — une approximation valide pour les contrats annuels où ces coûts

    sont réglementairement stables.