Package {legiretraite}


Type: Package
Title: Recueil De Paramètres Législatifs et Réglementaires Sur Les Retraites Françaises
Version: 0.1.6
Description: Fournit un recueil de paramètres législatifs et réglementaires sur les retraites françaises, ainsi que des fonctions pour rechercher ces paramètres par génération et catégorie d'assuré et pour reconstituer les échantillons des enquêtes interrégimes EIR et EIC de la DREES.
URL: https://git.drees.fr/drees_code_public/outils/legiretraite
License: EUPL-1.2
Encoding: UTF-8
Language: fr
LazyData: true
Depends: R (≥ 4.3.0)
Imports: lubridate, data.table, tidyr, arrow, checkmate, logger
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-09-20 17:28:35 UTC; ubuntu
Author: Mélissa M'Piayi [aut], Mathieu Sigal [aut], Ambroise Warnery [aut], Pierre Cheloudko [aut], Arthur Katossky [cre, aut], Direction de la recherche, des études, de l'évaluation et des statistiques (DREES), Observation de la solidarité (OSOL), Bureau des retraites (BRET) [cph]
Maintainer: Arthur Katossky <arthur.katossky@sante.gouv.fr>
Repository: CRAN
Date/Publication: 2026-10-07 16:50:07 UTC

Âges et durées de référence par catégorie et génération

Description

Table de référence rassemblant les principaux paramètres d'âge et de durée du droit à retraite (âge d'ouverture des droits, âge d'annulation de la décote, âge maximum, durée requise, durée de proratisation), par catégorie d'assuré et par génération (date de naissance charnière). Chaque ligne donne la valeur d'un paramètre ('grandeur') applicable à une 'categorie' à partir d'une 'dateNaissance'.

Usage

ageDuree

Format

Un 'data.table' de 598 lignes et 4 colonnes :

valeur

Valeur du paramètre. En années pour les grandeurs d'âge ('AOD', 'AAD', 'Age maximum'), en trimestres pour les durées ('Duree', 'Duree proratisation').

grandeur

Paramètre concerné : ‘"AOD"' (âge d’ouverture des droits), ‘"AAD"' (âge d’annulation de la décote), '"Age maximum"', '"Duree"' (durée requise) ou '"Duree proratisation"'.

categorie

Catégorie d'assuré, p. ex. '"Droit commun"', '"Actif fonction publique"', '"Superactif regime special"', '"CNAVPL"', '"MSA exploitant"', '"Agirc Arrco Ircantec"', '"Inapte"', '"Invalide"'.

dateNaissance

Date de naissance charnière ('Date') à partir de laquelle la valeur s'applique, jusqu'à la charnière suivante de la même '(grandeur, categorie)'.

Details

Construite à partir des fichiers 'inst/extdata/*.csv' par le script 'tools/creer-ageDuree.R'.

Source

Fichiers 'inst/extdata/*.csv' du package, agrégés par 'tools/creer-ageDuree.R'.


Renvoie l'AOD en vecteur

Description

Alias de aod_individuel() qui renvoie uniquement le vecteur d'AOD.

Usage

aod(
  dateNaissance,
  dateLiq = NA,
  caisse = NA_character_,
  categorie = NA_character_
)

Arguments

dateNaissance

date de naissance (Date, vectorisé)

dateLiq

date de liquidation (Date, vectorisé, optionnel)

caisse

nom de la caisse (character, vectorisé, optionnel)

categorie

catégorie : "actif", "superactif", "sedentaire", "invalide", "inapte" (character, vectorisé, optionnel)

Value

vecteur numérique des AOD

Examples

# AOD (âge d'ouverture des droits) de droit commun, génération 1955
aod(as.Date("1955-01-01"))

# Vectorisé sur plusieurs dates de naissance
aod(as.Date(c("1950-01-01", "1954-01-01", "1973-01-01")))

# Pour une caisse particulière (usage typique dans trajectoire)
aod(as.Date("1958-01-01"), caisse = "MSA exploitant")

# Avec une date de liquidation et une caisse
aod(as.Date("1962-06-01"), dateLiq = as.Date("2024-01-01"), caisse = "CNAVPL")

Récupère les AOD pour la caisse, la catégorie et la date de naissance spécifiées

Description

Récupère les AOD pour la caisse, la catégorie et la date de naissance spécifiées

Usage

aod_individuel(
  dateNaissance,
  dateLiq = NA,
  caisse = NA_character_,
  categorie = NA_character_
)

Arguments

dateNaissance

date de naissance (Date, vectorisé)

dateLiq

date de liquidation (Date, vectorisé, optionnel)

caisse

nom de la caisse (character, vectorisé, optionnel)

categorie

catégorie : "actif", "superactif", "sedentaire", "invalide", "inapte" (character, vectorisé, optionnel)

Value

Un ‘data.table' d’une ligne par observation, avec la colonne 'aod' (âge d'ouverture des droits, numérique) et les clés fournies ('dateNaissance', 'caisse', 'categorie').

Examples

# AOD de droit commun pour plusieurs générations
aod_individuel(as.Date(c("1955-01-01", "1962-01-01")))

# Pour une caisse et une date de liquidation données
aod_individuel(as.Date("1962-06-01"), dateLiq = as.Date("2024-01-01"),
               caisse = "CNAVPL")

Internal : logique de lookup AOD

Description

Séparée de aod_individuel() pour permettre le remplacement dans les benchmarks.

Usage

aod_lookup(
  dateNaissance,
  dateLiq = NA,
  caisse = NA_character_,
  categorie = NA_character_
)

Arguments

dateNaissance

date de naissance (Date, vectorisé)

dateLiq

date de liquidation (Date, vectorisé, optionnel)

caisse

nom de la caisse (character, vectorisé, optionnel)

categorie

catégorie : "actif", "superactif", "sedentaire", "invalide", "inapte" (character, vectorisé, optionnel)

Value

Un 'data.table' avec la colonne 'aod' et les clés ('dateNaissance', 'caisse', 'categorie').


Internal : lookup avec déduplication

Description

Internal : lookup avec déduplication

Usage

aod_lookup_dedup(
  dateNaissance,
  dateLiq = NA,
  caisse = NA_character_,
  categorie = NA_character_
)

Arguments

dateNaissance

date de naissance (Date, vectorisé)

dateLiq

date de liquidation (Date, vectorisé, optionnel)

caisse

nom de la caisse (character, vectorisé, optionnel)

categorie

catégorie : "actif", "superactif", "sedentaire", "invalide", "inapte" (character, vectorisé, optionnel)

Value

Un 'data.table' avec la colonne 'aod' et les clés ('dateNaissance', 'caisse', 'categorie').


Internal : logique de lookup AOD sans déduplication

Description

Internal : logique de lookup AOD sans déduplication

Usage

aod_lookup_inner(
  dateNaissance,
  dateLiq = NA,
  caisse = NA_character_,
  categorie = NA_character_
)

Récupère tous les AOD, quelle que soit la catégorie ou l'année de naissance

Description

Le résultat est caché après le premier appel. La colonne ‘dateNaissanceEstimee' est ajoutée pour les lignes qui n’ont qu'une 'dateApplication' : elle est calculée comme 'dateApplication - aod * 12 mois'.

Usage

aod_reference()

Value

Un 'data.table' de la table de référence des AOD, avec notamment les colonnes ‘aod' (âge d’ouverture des droits), 'caisse', 'categorie', 'dateNaissance', 'dateApplication' et 'dateNaissanceEstimee'.

Examples

# Table de référence complète
head(aod_reference())

# Barème AOD de droit commun par génération (caisse et catégorie non
# renseignées), comme utilisé pour tracer l'AOD dans trajectoire
aod_reference()[is.na(caisse) & is.na(categorie), .(dateNaissance, aod)]

Caisses individuelles des régimes spéciaux

Description

Liste des caisses individuelles considérées comme appartenant au pool des régimes spéciaux ('caisse = "Regime special"') pour les barèmes AOD. Le lookup 'aod_lookup()' re-route automatiquement ces caisses vers ‘"Regime special"' tant qu’un barème individuel n'est pas disponible.

Usage

caissesRegimesSpeciauxIndividuels

Format

Un vecteur 'character' des codes de caisses des régimes spéciaux (p. ex. '"SNCF"', '"ENIM"', '"RATP"').

Examples

caissesRegimesSpeciauxIndividuels

# Ces caisses sont routées vers le barème commun "Regime special"
"SNCF" %in% caissesRegimesSpeciauxIndividuels

Jours de naissance échantillonnés des enquêtes EIR et EIC

Description

Reconstitue, pour une ou plusieurs enquêtes de la DREES (Échantillon interrégimes de retraités, EIR, et Échantillon interrégimes de cotisants, EIC), l'ensemble des jours de naissance retenus dans l'échantillon : par génération, l'échantillonnage sélectionne certaines dates de naissance précises (souvent en début de mois), selon un calendrier propre à chaque enquête et à chaque génération.

Usage

echantillonage(
  enquete = c("EIR_2016", "EIR_2020", "EIR_2024", "EIC_2013", "EIC_2017", "EIC_2021"),
  format = "long"
)

Arguments

enquete

Vecteur de codes d'enquêtes à inclure. Valeurs possibles : '"EIR_2016"', '"EIR_2020"', '"EIR_2024"', '"EIC_2013"', '"EIC_2017"', '"EIC_2021"'. Par défaut, toutes les enquêtes connues.

format

Forme du résultat : '"long"' (défaut) pour une ligne par couple (enquête, jour de naissance) ; '"large"' pour une ligne par jour de naissance et une colonne booléenne par enquête indiquant l'appartenance à son échantillon.

Value

Un 'data.table'. En format '"long"', les colonnes 'enquete' et 'jour_de_naissance' ('Date'). En format '"large"', la colonne 'jour_de_naissance' et une colonne logique par enquête.

Examples

# Jours de naissance échantillonnés de l'EIR 2020
echantillonage("EIR_2020")

# Croiser plusieurs enquêtes en format large
echantillonage(c("EIC_2017", "EIC_2021"), format = "large")


Lecture d'une table de l'EACR

Description

Relit une table de l'EACR embarquée dans le paquet, telle que la Drees la diffuse : aucune ligne n'est écartée, aucune valeur n'est recodée. Seuls les noms de colonnes sont normalisés ('Champ_FluxStock' devient ‘champFluxStock') et leurs types posés à l’import.

Usage

lireEacr(table, chemin = NULL, brut = FALSE)

Arguments

table

le nom de la table, parmi 'tablesEacr()$table'

chemin

le dossier où lire les parquets ; par défaut celui du paquet

brut

faut-il rendre la table sans écarter les cellules fautives

Details

Quatre traits de la source à connaître avant de superposer une de ses séries à une sortie du modèle :

- une même année figure **deux fois** dans ‘A-Cadrage', dans l’enquête de l'année puis actualisée dans celle de l'année suivante ; la colonne 'plusRecent' désigne la plus récente des deux, mais les tables 'C' et 'D' ne sont alors plus cohérentes avec 'A' ; - les effectifs sont des **stocks au 31 décembre** et les montants ceux de décembre : le produit effectif × pension × 12 n'est pas la masse versée dans l'année ; - la variation du stock d'une année sur l'autre **n'égale pas** les nouveaux retraités moins les décès, dans la plupart des régimes et des années ; la documentation de la source quantifie ce défaut de bouclage ; - les régimes sont désignés par leur code caisse ‘cc', comme dans l’EIC et l'EIR, mais l'EACR agrège là où l'EIR détaille (‘"1000"' pour l’Ircantec, '"2100"' pour la CNAVPL) et couvre des organismes que le modèle ne connaît pas ('"0000"' tous régimes confondus, la CNAM, la CNBF, la CSS Mayotte).

Les cases de moins de onze personnes sont déjà à valeur manquante dans la source.

Toute réutilisation doit porter la mention « Source : Drees, enquête annuelle auprès des caisses de retraite (EACR), enrichie avec le modèle Ancetre ».

Chaque table n'est lue qu'une fois par session, et la fonction rend une copie : la modifier par référence n'atteint pas la lecture suivante.

Les cellules que la source publie de travers sont écartées à la lecture, et un avertissement les nomme (voir 'cellulesFautivesEacr'). 'brut = TRUE' rend la table telle que la source la publie, défauts compris.

Value

une 'data.table'

Examples

# Les noms de tables disponibles
tablesEacr()$table

# Lire une table (recodage minimal, cellules fautives écartées)
cadrage <- lireEacr("A-Cadrage")
head(cadrage)

Millésime de l'EACR embarquée

Description

Quelle version de la source les parquets du paquet reproduisent, et quand elle a été téléchargée. La mention du millésime accompagne la citation de la source sur les figures.

Usage

millesimeEacr(chemin = NULL)

Arguments

chemin

le dossier où lire le millésime ; par défaut celui du paquet

Value

une ‘data.table' d’une ligne par classeur téléchargé

Examples

# Millésime (version et date de téléchargement) de l'EACR embarquée
millesimeEacr()

Tables de l'EACR embarquées dans le paquet

Description

Registre des tables de l'enquête annuelle auprès des caisses de retraite : une ligne par feuille des deux classeurs diffusés par la Drees. Il fait le lien entre le nom de feuille de la source et le fichier que le paquet embarque, et sert donc autant à ‘lireEacr()' qu’au script d'import.

Usage

tablesEacr()

Value

une ‘data.table' d’une ligne par table, de clé 'table'

Examples

# Le registre des tables de l'EACR embarquées dans le paquet
tablesEacr()