Boîte à outils Python pour l'analyse de risque climatique d'un portefeuille actions/obligations d'entreprise : empreinte carbone (TCFD/PCAF), budgets carbone sectoriels (SDA/ACA du SBTi), température implicite de portefeuille (Implied Temperature Rise — ITR), alignement de trajectoire, stress test de transition (scénarios inspirés du NGFS) et risque physique simplifié.
Toutes les données de ce dépôt (émetteurs, émissions, prix du carbone, taux de pass-through, aléas physiques) sont synthétiques, générées par tirage aléatoire calibré sur des ordres de grandeur publics (rapports de durabilité agrégés, fourchettes GIEC/NGFS, littérature académique). Les noms d'entreprises sont fictifs.
- Ce que fait le projet
- Le calcul de l'ITR, étape par étape
- Méthodes et références
- Quickstart
- Le portefeuille d'exemple
- Résultats
- Bibliographie
- English summary
La gestion d'actifs fait face à un corpus croissant d'obligations de transparence climatique : le règlement SFDR (UE) 2019/2088 impose la publication d'indicateurs d'incidences négatives en matière de durabilité (dont l'intensité carbone et l'exposition aux combustibles fossiles), et l'article 29 de la Loi Énergie-Climat française exige des investisseurs institutionnels un reporting sur la contribution de leurs portefeuilles à la trajectoire de neutralité carbone, incluant de plus en plus une mesure d'alignement de température. Concrètement, cela se traduit par des livrables récurrents : tableaux de bord de comité des risques, annexes climatiques des rapports annuels, réponses aux due diligences clients.
Ce dépôt construit la chaîne complète — empreinte carbone PCAF, budget carbone sectoriel SDA/ACA, conversion en degrés via le TCRE, agrégation de portefeuille, stress de transition NGFS — plutôt que de consommer un score déjà calculé par un prestataire.
L'ITR (température implicite) répond à la question : « si l'ensemble de l'économie mondiale suivait la même trajectoire relative que cet émetteur (ou ce portefeuille), à quelle température se stabiliserait le réchauffement ? ». Le module climaterisk/itr.py l'implémente dans l'esprit du protocole ouvert ITR publié conjointement par CDP et WWF (Temperature Rating Methodology), en quatre étapes.
1. Budget carbone et trajectoire de référence (SDA / ACA). Un scénario de température (1,5 °C, 1,7 °C ou 2 °C) est associé à un budget carbone mondial résiduel B_monde (en GtCO2e, cf. budget.py). Ce budget est décliné en trajectoire de référence par émetteur selon deux méthodes reconnues par le SBTi :
-
SDA (Sectoral Decarbonization Approach) : l'intensité carbone de l'émetteur converge linéairement vers une intensité cible sectorielle en 2050 —
$$I(t) = I_T + (I_0 - I_T) \times \frac{T - t}{T - t_0}$$ -
ACA (Absolute Contraction Approach) : les émissions absolues décroissent à un taux annuel constant, identique pour tous les émetteurs —
$$E(t) = E_0 \times (1 - r)^{t - t_0}, \qquad r = 1 - f_{résiduel}^{\frac{1}{T - t_0}}$$
2. Trajectoire projetée. À partir de la cible SBTi déclarée par l'émetteur (année de base, année cible, taux de réduction visé) — ou, à défaut de cible, de la tendance récente observée — on projette sa trajectoire d'émissions futures (project_company_emissions).
3. Over/undershoot cumulé. L'écart entre les émissions cumulées projetées C_projeté et le budget cumulé de l'émetteur C_budget sur l'horizon d'évaluation (2024-2050) donne un taux de dépassement relatif :
4. Conversion en degrés via le TCRE. Le taux de dépassement de l'émetteur est extrapolé à l'échelle mondiale : si l'économie mondiale entière dépassait son budget dans la même proportion, l'excédent cumulé serait ρ_i × B_monde. Cet excédent est converti en degrés via le TCRE (Transient Climate Response to cumulative Emissions, IPCC AR6 WG1, chapitre 5) :
La valeur retenue est TCRE = 0,000545 °C/GtCO2e. Le GIEC estime le TCRE à environ 1,65 °C pour 1000 GtC cumulées (fourchette probable 1,0-2,3 °C/1000 GtC) ; converti en CO2e (facteur 3,664) cela correspond à ≈ 0,00045 °C/GtCO2e. La valeur utilisée ici se situe dans la fourchette d'incertitude du GIEC et correspond à un ordre de grandeur couramment retenu comme constante de travail arrondie dans les outils ITR usuels — l'ITR calculé est très sensible à ce paramètre : faire varier le TCRE sur sa plage d'incertitude (±40 % environ) fait varier l'écart à la température de référence dans les mêmes proportions.
Un émetteur exactement sur sa trajectoire budgétaire (ρ_i = 0) obtient donc ITR_i = T_ref ; un émetteur qui dépasse son budget (ρ_i > 0) obtient un ITR strictement supérieur. C'est exactement ce que vérifient les tests test_issuer_exactly_on_budget_gets_reference_temperature et test_issuer_exceeding_budget_gets_higher_itr (tests/test_itr.py).
Agrégation de portefeuille et non-additivité. L'ITR de portefeuille est une moyenne pondérée des ITR individuels (quatre schémas de pondération sont proposés : poids de marché, part des émissions financées, part de l'EVIC financé, part du chiffre d'affaires financé — voir compute_portfolio_itr). L'ITR n'est pas une grandeur physique additive. La température implicite d'un portefeuille n'est PAS la température que produirait, physiquement, la trajectoire d'émissions agrégée du portefeuille : le climat ne réagit pas à un sous-ensemble isolé d'émetteurs. L'agrégation pondérée est une convention de reporting, pas une prévision physique — position explicite du TCFD (2021) et de la littérature académique sur les limites des métriques ITR. C'est pour cette raison que le calcul retient quatre schémas de pondération distincts plutôt qu'un seul chiffre : leur dispersion illustre elle-même la sensibilité conventionnelle de la mesure.
| Méthode / norme | Référence | Usage dans ce dépôt |
|---|---|---|
| TCFD | Recommendations of the TCFD (2017) ; Guidance on Metrics, Targets and Transition Plans (2021) | Cadre général des métriques de risque climatique (empreinte, scénarios, physique) |
| Protocole ITR ouvert | CDP / WWF, Temperature Rating Methodology | Principe directeur du calcul d'ITR (itr.py) |
| SBTi — SDA | Sectoral Decarbonization Approach — Sector Guidance | Trajectoire de référence par convergence d'intensité sectorielle |
| SBTi — ACA | Absolute Contraction Approach | Trajectoire de référence par contraction absolue uniforme |
| PCAF | Global GHG Accounting and Reporting Standard for the Financial Industry (2020) | Émissions financées, EVIC comme dénominateur d'attribution (footprint.py) |
| Scénarios NGFS | NGFS, Climate Scenarios for Central Banks and Supervisors (phase IV) | Trajectoires de prix du carbone stylisées (transition_stress.py) |
| SFDR | Règlement (UE) 2019/2088 | Cadre réglementaire de reporting (indicateurs PAI) |
| Article 29 LEC | Loi n° 2019-1147 (France), art. 29 | Cadre réglementaire de reporting (alignement de température) |
| GHG Protocol | Corporate Standard, Scopes 1, 2 et 3 | Définition des périmètres d'émissions |
| TCRE | IPCC AR6 WG1 (2021), chapitre 5 | Conversion de l'over/undershoot en degrés |
pip install -r requirements.txt
pip install -e .
python examples/02_itr_portfolio.pyUn portefeuille dont la composition sectorielle est quasiment identique à celle de son indice de référence produit, par construction, un ITR et une empreinte carbone quasiment identiques à ceux de cet indice. Le portefeuille d'exemple de ce dépôt (data.generate_example_portfolio, 45 lignes, 500 M€ d'AUM) applique donc un biais de conviction climatique explicite et documenté dans le code, à l'image d'une gestion active cherchant à réduire l'exposition de son portefeuille à la transition par rapport à un indice large pondéré par capitalisation boursière (data.generate_benchmark_portfolio, qui lui reste neutre) :
- sous-pondération structurelle des secteurs les plus intensifs en carbone (Énergie, Services collectifs, Matériaux), à la fois dans la probabilité de sélection des lignes et dans leur pondération une fois sélectionnées ;
- surpondération des émetteurs disposant d'une cible SBTi déclarée ;
- quasi-exclusion des émetteurs jugés les plus mal alignés — définis ici comme appartenant à un secteur intensif sans cible SBTi déclarée.
Les multiplicateurs de biais sont des constantes documentées dans climaterisk/data.py (_INTENSIVE_SECTOR_TILT, _SBTI_TARGET_TILT, _LAGGARD_TILT) ; l'écart d'ITR, d'empreinte et de perte de valeur qui en résulte face au benchmark est un résultat du calcul, pas une valeur imposée en dur. Un appel avec apply_conviction_tilt=False reproduit un portefeuille neutre, sans biais, pour comparaison.
Les chiffres ci-dessous sont ceux produits par l'exécution des scripts de examples/ sur le portefeuille d'exemple biaisé et son benchmark, sur l'univers synthétique de 120 émetteurs.
python examples/01_carbon_footprint.py — émissions financées totales : 5 652 tCO2e ; empreinte carbone : 11,3 tCO2e/M€ investi ; WACI : 23,4 tCO2e/M€ de CA ; intensité carbone du portefeuille : 33,2 tCO2e/M€ de CA financé ; couverture des données : 100 %. À titre de comparaison, le benchmark pondéré par capitalisation boursière affiche une WACI de 95,3 tCO2e/M€ de CA — soit une intensité carbone environ quatre fois plus élevée que celle du portefeuille biaisé, effet direct du filtre sectoriel et SBTi appliqué à la construction du portefeuille.
Les dix plus gros contributeurs concentrent une part disproportionnée des émissions financées — un profil de concentration qui persiste même dans un portefeuille biaisé, car quelques grandes capitalisations industrielles restent parmi les positions non exclues.
L'Industrie et la Consommation concentrent désormais l'essentiel des émissions financées (environ 90 % à elles deux) : les secteurs les plus intensifs (Énergie, Services collectifs) ont été si fortement sous-pondérés par le biais de conviction qu'ils ne contribuent presque plus à l'empreinte du portefeuille.
python examples/02_itr_portfolio.py (scénario 1,5 °C, méthode SDA) — ITR portefeuille (poids de marché) : 1,67 °C, benchmark : 1,97 °C, soit un écart de 0,30 °C directement attribuable au biais de conviction. Selon la pondération retenue, l'écart avec le benchmark va de 0,30 °C (poids de marché) à 0,90 °C (émissions financées) — illustration directe de la non-additivité évoquée plus haut : pondérer par les émissions financées plutôt que par la valeur de marché fait davantage ressortir l'effet du filtre sur les émetteurs à forte intensité carbone.
| Pondération | Portefeuille | Benchmark | Écart |
|---|---|---|---|
| Poids de marché | 1,67 °C | 1,97 °C | −0,30 °C |
| Émissions financées | 1,68 °C | 2,58 °C | −0,90 °C |
| EVIC financé | 1,65 °C | 2,14 °C | −0,49 °C |
| Part de CA financé | 1,66 °C | 2,11 °C | −0,45 °C |
L'écart de 0,30 °C entre portefeuille (1,67 °C) et benchmark (1,97 °C) est désormais lisible et interprétable ; la décomposition sectorielle montre que les deux secteurs résiduels les plus intensifs conservés en portefeuille (Énergie, Services collectifs) restent, malgré leur poids marginal, les plus éloignés de la trajectoire 1,5 °C.
Malgré le filtre, un petit nombre d'émetteurs résiduels — sans cible SBTi déclarée et affectés à la température par défaut sectorielle conservatrice — continuent d'expliquer l'essentiel de l'écart restant du portefeuille à la référence 1,5 °C.
python examples/03_alignment_pathways.py — sur les 45 lignes du portefeuille, 35 émetteurs disposent d'une cible SBTi déclarée (contre 26 dans une version non biaisée du portefeuille) et sont pris en compte dans l'agrégat de trajectoire financée. En 2050, les émissions financées projetées de ces émetteurs atteignent 3 772 tCO2e, contre un budget financé compatible 1,5 °C de 159 tCO2e et un budget financé compatible 2 °C de 794 tCO2e — un dépassement qui reste très significatif : même un portefeuille fortement biaisé vers les émetteurs à cible déclarée ne suffit pas à s'aligner sur 1,5 °C à l'horizon 2050, tant les cibles SBTi actuelles (horizon 2028-2035) s'arrêtent en général bien avant la neutralité 2050 exigée par le budget.
Même les émetteurs avec cible déclarée (ex. Brightwell Life Sciences, Northgate Insurance) plafonnent leurs émissions après l'année cible plutôt que de poursuivre la décarbonation jusqu'en 2050, ce qui les fait diverger progressivement du budget SDA ; Ardenne Resources illustre le profil résiduel d'un émetteur intensif sans cible, fortement sous-pondéré mais pas totalement exclu.
L'écart entre la trajectoire financée projetée et les budgets SDA se creuse fortement après 2035, quand la plupart des cibles SBTi sont déjà atteintes et que le budget continue, lui, de converger vers l'intensité cible 2050.
python examples/04_ngfs_stress.py — perte de valeur du portefeuille par scénario : Net Zero 2050 : 1,36 % ; Transition retardée : 1,06 % ; Politiques actuelles : 0,25 % ; Choc désordonné : 2,43 % (1 actif échoué détecté sous le seuil de 40 % de perte de valeur relative). Le benchmark, non biaisé, affiche des pertes nettement supérieures sur les mêmes scénarios : 4,59 % / 3,56 % / 0,84 % / 8,18 %, avec jusqu'à 18 actifs échoués sous "Choc désordonné" contre 1 seul pour le portefeuille. La trajectoire de prix du carbone du scénario "Choc désordonné" a été recalibrée à la hausse (plateau porté à environ 380 €/tCO2e, contre 240 € dans une version antérieure) afin de rester dans le haut de la fourchette illustrée par les exercices de stress climatique NGFS/ACPR-BCE pour un choc désordonné sur les actions ; c'est sur cette base recalibrée que le benchmark, représentatif d'un indice large non contraint, atteint 8,18 % de perte de valeur — un ordre de grandeur cohérent avec les pilotes climatiques publiés pour un scénario désordonné sur un portefeuille actions diversifié.
L'écart de perte de valeur entre portefeuille et benchmark est particulièrement marqué sous "Choc désordonné" (2,43 % contre 8,18 %) : le biais de conviction, construit pour réduire l'ITR et l'empreinte carbone, réduit mécaniquement aussi l'exposition au risque de transition — une cohérence interne bienvenue entre les différents modules du dépôt.
Pour le portefeuille biaisé, le scénario "Choc désordonné" reste le plus sévère (2,43 %), porté principalement par l'Industrie (1,74 point) et la Consommation (0,53 point) — les secteurs intensifs, très sous-pondérés, ne contribuent presque plus à la perte de valeur.
Sous "Choc désordonné", l'Industrie concentre à elle seule plus de 70 % de la perte totale de 2,43 % du portefeuille : en l'absence quasi totale d'exposition résiduelle aux secteurs les plus intensifs, ce sont les secteurs "modérément" exposés qui expliquent l'essentiel du risque de transition restant.
Les émissions Scope 3 sont estimées par un multiplicateur sectoriel synthétique appliqué au Scope 1+2, pas mesurées ; les calculs d'ITR et de budget utilisent donc par défaut le Scope 1+2. Le taux de répercussion du coût carbone au client est un taux sectoriel constant dans le temps. Le stress test de transition est un DCF simplifié à WACC uniforme, sans boucle de rétroaction macro-financière. Le module de risque physique utilise des scores d'aléa 0-1 dérivés de la région de l'émetteur (pas de localisation de sites), sans scénario RCP/SSP différencié. Les multiplicateurs du biais de conviction (_INTENSIVE_SECTOR_TILT, _SBTI_TARGET_TILT, _LAGGARD_TILT dans climaterisk/data.py) sont fixés arbitrairement, pas calibrés sur un process de gestion réel. Le plateau de prix du carbone du scénario NGFS "Choc désordonné" a été relevé à ~380 €/tCO2e en 2050 pour rester dans la fourchette des exercices de stress climatique publiés sur des portefeuilles actions.
- Task Force on Climate-related Financial Disclosures, Recommendations of the Task Force on Climate-related Financial Disclosures, 2017.
- Task Force on Climate-related Financial Disclosures, Guidance on Metrics, Targets, and Transition Plans, 2021.
- CDP / WWF, Temperature Rating Methodology (protocole ouvert ITR).
- Science Based Targets initiative, Sectoral Decarbonization Approach — Sector Guidance.
- Science Based Targets initiative, Foundations of Science-Based Target Setting — Absolute Contraction Approach.
- Partnership for Carbon Accounting Financials, The Global GHG Accounting and Reporting Standard for the Financial Industry, 2020.
- Network for Greening the Financial System, NGFS Climate Scenarios for Central Banks and Supervisors, phase IV.
- Greenhouse Gas Protocol, A Corporate Accounting and Reporting Standard (Scopes 1, 2 et 3).
- IPCC, AR6 Working Group I Report — The Physical Science Basis, chapitre 5 (TCRE), 2021.
- Règlement (UE) 2019/2088 du Parlement européen et du Conseil (SFDR).
- Loi n° 2019-1147 du 8 novembre 2019 relative à l'énergie et au climat, article 29.
climaterisk is a portfolio climate-risk toolkit: an end-to-end, first-principles implementation of the Implied Temperature Rise (ITR) methodology alongside carbon footprinting (TCFD/PCAF), sectoral carbon budgets (SBTi SDA/ACA), trajectory alignment, NGFS-inspired transition stress testing and a simplified physical-risk score. All data in this repository is synthetic, calibrated to plausible public order-of-magnitude figures rather than sourced from MSCI, Trucost, CDP, S&P Global, Bloomberg, or any proprietary database. The ITR calculation converts a company's cumulative carbon-budget overshoot into a temperature contribution via the TCRE (IPCC AR6); portfolio-level ITR is a weighted-average reporting convention, not a physical forecast. See the French sections above for full methodology, formulas and results.








