Skip to main content

Simulateur financier du système de retraites

Project description

Python License CircleCI Binder

Simulateur macroscopique du système de retraites

Introduction

Le COR (conseil d'orientation des retraites) a mis en ligne un simulateur pour permettre aux citoyens de simuler les effets macroscopiques des grandes lignes d'une réforme des retraites. Ce projet vise a reproduire les résultats et à ajouter un certain nombre de fonctionnalités utiles, comme celui de proposer de concevoir une réforme à prestation définie (ex: calcul automatique des cotisations sociales pour avoir un système équilibré financièrement avec un certain niveau de vie pour les retraités et un age de départ fixé a priori).

On utilise les données de projection du COR et on se base sur la documentation technique fournie par le COR.

Implémentation

Les calculs sont faits dans la classe SimulateurRetraites.py.

Le script demo.py est un script qui utilise SimulateurRetraites.py pour générer un certain nombre de figures, qu'on trouve dans le répertoire fig.

Publications

Ce simulateur a été utile pour l'écriture de ces articles sur la réforme des retraites:

Dépendances

Les dépendances sont :

## Installation

L'installation se fait avec les commandes suivantes:

git clone https://github.com/brunoscherrer/retraites.git
cd retraites
python setup.py install

Exemples de simulations

Ci-dessous, nous suivons une suggestion de Michaël Zemmour (Université de Lille) faite lors d'une intervention d'une vingtaine de minutes, c'est-à-dire d'expérimenter dans le même cadre macro-éconmique que le COR.

On peut utiliser le code pour reproduire exactement les prévisions macroscopiques du simulateur du COR avec notamment les valeurs par défaut (celles d'un statu quo du système). Cela permet de plus de calculer automatiquement les effets macroscopiques de réformes dont les cotisations seraient ajustées de sorte à équilibrer la situation financière du système. Ci-dessous, voici les prévisions du COR (sans aucune intervention) et deux exemples qui ont en commun de fixer comme objectif un niveau de vie des retraités égal à celui des actifs, le premier gardant les projections du COR en termes de départ à la retraite, le deuxième fixant un départ effectif à 61 ans. Les différentes courbes de couleurs à partir de 2020 correspondent aux différents scenarios conjoncturels (croissance/chômage) considérés par le COR à horizon 2070.

Hypothèses macroéconomiques du COR

Les projections ci-dessous sont basées sur celles d'un certain nombre d'indicateurs macroscopiques fournis par le COR (voir la documentation technique fournie par le COR pour plus de détails), par exemple sur le fait qu'en 2070, un retraité moyen qui aurait une pension d'environ la moitié du salarié moyen aurait sensiblement le même niveau de vie.

conjoncture.jpg

legende_scenarios.png

Simulation 1: Projections du COR avec le réglage initial

cor.jpg

legende_scenarios.png

Dans cette première simulation, on observe une baisse légère des cotisations jusque 2070. Le système est globalement (en moyenne sur les différents scénarios conjoncturels) équilibré financièrement. Cet équilibre est possible via la baisse des pensions, de 0.5 fois le salaire moyen (2019) à une fourchette [0.25, 0.45] fois le salaire moyen selon la conjoncture. Le niveau de vie des retraités pourrait en être fortement affecté (jusqu'à une baisse de 30% dans le pire cas).

Simulation 2: Adaptation automatique des cotisations

cotisations.jpg

legende_scenarios.png

On voit qu'il suffit de prévoir une hausse légère de cotisations, précisément de 31% (aujourd'hui) à 35% (en 2070), c'est-à-dire en moyene +0.25% par an (vu que 1.0025^(2070-2020)=35/31) alors on peut dans le pire scenario assurer un niveau de vie aux retraités équivalent à celui des actifs et le système est équilibré.

Simulation 3: Adaptation automatique des cotisations avec départ à 61 ans

61ans.jpg

legende_scenarios.png

Dans la troisième figure "Départ à 61 ans et cotisations adaptées", on peut mesurer ce que coûterait collectivement le fait de permettre aux français de partir (effectivement) à la retraite à 61 ans (ce qui correspond à une hypothèse d'un départ possible à 60%). Il faudrait alors porter l'effort de cotisations de 31% à 39% dans le pire cas conjoncturel, soit une augmentation moyenne par an de +0.46% des cotisations.

Exemple d'utilisation

La classe SimulateurRetraites implémente le simulateur qui évalue les résultats du modèle en fonction des hypothèses (conjoncture) et des leviers. Cette classe implémente plusieurs stratégie de pilotage, la plus simple étant le pilotage du COR qui est évaluée grâce à la méthode pilotageCOR.

La méthode pilotageCOR retourne une instance de la classe SimulateurAnalyse. Cette classe permet de produire les graphiques pour réaliser l'analyse des résultats.

    from retraites.SimulateurRetraites import SimulateurRetraites
    simulateur = SimulateurRetraites()
    analyse = simulateur.pilotageCOR()

La méthode dessineSimulation permet de produire les graphiques standard dans l'analyse d'une stratégie de pilotage.

    analyse.dessineSimulation()

Le code précédent produit le graphique suivant.

cor.jpg

Documentation de l'API

L'interface de programmation est documentée avec des docstrings.

On y accède avec la fonction help.

Par exemple, l'exemple suivant génère la documentation de la classe SimulateurRetraites.

    from retraites.SimulateurRetraites import SimulateurRetraites
    help(SimulateurRetraites)

La Documentation de l'API présente une version lisible de l'aide.

Études réalisées avec le simulateur

L'article "Ce que l'étude d'impact ne dit pas" présente une analyse détaillée de l'étude d'impact de Janvier 2020 réalisée à l'aide du simulateur.

La description du modèle mathématique est donnée dans le Modèle du simulateur officiel du COR.

Un exemple complet d'utilisation du simulateur est présenté dans Simulations numériques.

D'autres exemples sont présentés dans le répertoire doc :

Les résultats présentés dans "Ce que l'étude d'impact ne dit pas" proviennent des cahiers électroniques suivants :

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

retraites-0.1.1.tar.gz (7.3 MB view details)

Uploaded Source

Built Distribution

retraites-0.1.1-py3-none-any.whl (58.3 kB view details)

Uploaded Python 3

File details

Details for the file retraites-0.1.1.tar.gz.

File metadata

  • Download URL: retraites-0.1.1.tar.gz
  • Upload date:
  • Size: 7.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for retraites-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1b80dfa5dec029427502a3b11ff0b3ec5cf49f4b147099d0f5add889c34e8b7f
MD5 b44a54cd5796819bce2431ce4dbc2afd
BLAKE2b-256 dc1af100e212cfb850a8bb38d17b878ed4411bdc9da3a65a59e3db3c7f06dbd2

See more details on using hashes here.

File details

Details for the file retraites-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: retraites-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 58.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for retraites-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 db3f78849c4f2b2e2bbf9a39991871d39768eb3c7bd77ea91e248cee472e9585
MD5 0bfc8c8a94d0d2b91a99cbfd225b4b64
BLAKE2b-256 d7e8dea8d68b22105a06fe5483308d9f464135b8659498fe5d017d74c8f64320

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page