10  Utilisation de la table foyer et des données fiscales

La table foyer de l’ERFS est constituée des déclarations de revenus des foyers fiscaux des individus présents dans l’ERFS. En pratique, elle contient notamment une ligne par foyer fiscal, et un ensemble de cases fiscales (environ 2000) dérivent les revenus déclarés par chaque foyer. Cette table est indispensable à un calcul précis de l’impôt sur le revenus, mais présente une forte complexité d’utilisation. Elle a donc fait l’objet d’une refonte complète au cours de l’année 2025.

Les trois principaux changements sont les suivants :

10.1 Dictionnaire des cases fiscales

Afin de faire le lien entre les format fiscaux successifs des déclarations de revenus, mais aussi entre une case fiscale et son libellé (appelé dans la suite detail_contenu), un dictionnaire des cases fiscales est généré tous les ans.

Il a été initialisé à la main pour l’ERFS 2021, et se présente sous la forme d’un tableur Excel situé dans le dossier parametres/dictionnaire_cases_fiscales_rev2021.xslx. Puis, une matrice de passage entre deux années sucessives permet de générer les dictionnaires des années suivantes.

Ainsi, à chaque case fiscale est associée une combinaison unique : detail_contenu X concerne :

  • detail_contenu se présente comme un arbre (de 1, le plus général, à 8, le plus précis) permettant de situer précisemment chaque case dans la brochure pratique des impôts 2022
  • concerne précise si la case fiscale concerne un indidu (déclarant 1 ou 2, ou personne à charge) ou le foyer fiscal en entier.

chaque case est donc identifiée de façon unique à une combinaison detail_contenu X concerne x année.

10.2 Isolation des cases fiscales et passage au format long

Une séparation en deux premières sous-tables de la table foyer livrée par l’ERFS erfs_foyer_fiscaux_an est effectué, de façon à isoler toutes les cases fiscales (avec leur identifiant idfoyer correspondant). La table des cases fiscales obtenue est ainsi passée au format long, permettant ainsi de supprimer les valeurs nulles (environ 90% du total).

La structure de cette table foyer_cases_fiscales_anr est la suivante :

idfoyer case_fiscale value annee concerne detail_contenu est_montant est_negatif agregat_erfs coldec
F22000002A c_1as 16996 2022 Declarant 1 2042 - traitements, salaires, pensions, rentes - pensions, retraites, rentes - pensions, retraites et rentes TRUE FALSE zrstf 1
F22000002A c_1bs 14409 2022 Declarant 2 2042 - traitements, salaires, pensions, rentes - pensions, retraites, rentes - pensions, retraites et rentes TRUE FALSE zrstf 2
F22000002A c_2bh 1590 2022 Foyer 2042 - revenus de capitaux mobiliers - revenus deja soumis aux prelevements sociaux avec CSG deductible si option bareme TRUE FALSE NA
F22000002A c_2ck 204 2022 Foyer 2042 - revenus de capitaux mobiliers - prelevement forfaitaire non liberatoire deja verse TRUE FALSE NA
F22000002A c_2tr 1590 2022 Foyer 2042 - revenus de capitaux mobiliers - interets et autres produits de placement a revenu fixe TRUE FALSE zvamf

Cette transformation se fait dans l’étape separer_base_foyer_cf_non_cf.

10.3 Actualisation du format fiscal

La table foyer_cases_fiscales_anr, jusqu’alors au format fiscal des revenus de l’année de l’ERFS N, est ensuite adaptée au format fiscal de l’année suivante N+1. En pratique, on applique la matrice de passage des cases fiscales entre N et N+1 à foyer_cases_fiscales_anr. On obtient ainsi la table foyer_cases_fiscales_anr1, qui contient exactement les mêmes revenus que foyer_cases_fiscales_anr, mais répartis suivant le format de la déclaration fiscale des revenus N+1.

Cette transformation se fait dans l’étape applique_chgt_format_cases.

10.4 Séparation entre cases individuelles et cases non individuelles, et création de répertoires

Enfin, la dernière étape de restructuration des cases fiscales consiste à séparer en deux tables distinctes les cases fiscales correspondant à des revenus individualisables (salaires, retraites, etc.) des cases fiscales correspondant à des revenus non individualisables (revenus du capital, etc.).

Dans cette même étape, il est maintenant possible de créer deux répertoires qui serviront de colonne vertébrale au calcul de l’impôts :

  • un répertoire des foyers fiscaux, constitué de l’ensemble des idfoyer disponibles dans la table foyer livrée par l’ERFS ;
  • un répertoire des individus fiscaux, constitué par l’ensemble des individus ayant déclaré au moins un revenus individualisable. Ce répertoire est constitué uniquement à partir des cases fiscales. Par exemple : un foyer ayant déclaré du revenus dans les cases 1aj et 1bj sera associé à deux individus dans le répertoire des individus fiscaux : le coldec 1 et le coldec 2.

A l’issue de cette étape, on dispose donc de six tables :

  • erfs_foyer_fiscaux_an : le répertoire des foyers fiscaux, empilé sur trois ans, constitué d’une ligne par idfoyer x année ;
  • erfs_individus_fiscaux_an : le répertoire des individus fiscaux, empilé sur trois ans, constitué d’une ligne par idfoyer x coldec x année ;
  • erfs_foyer_cf_indivi_an0 : les cases fiscales individualisables des revenus N au format fiscal N ;
  • erfs_foyer_cf_non_indivi_an0 : les cases fiscales non individualisables des revenus N au format fiscal N ;
  • erfs_foyer_cf_indivi_an1 : les cases fiscales individualisables des revenus N au format fiscal N+1 ;
  • erfs_foyer_cf_non_indivi_an1 : les cases fiscales non individualisables des revenus N au format fiscal N+1 ;

Ces transformations se font dans l’étape separer_base_foyer_indivi_non_indivi.

Il est nécessaire d’attendre d’avoir appliqué les changements de format fiscaux pour séparer cases individualisables et non individualisables, mais aussi pour faire le répertoire des individus fiscaux. En effet, certaines cases fiscales associé au foyer en N peuvent être associées à des individus en N+1.

Il est actuellement impossible de créer les tables erfs_foyer_cf_indivi_an2 et erfs_foyer_cf_non_indivi_an2 car, lors du développement du modèle annuel, la brochure pratique des revenus N+2 est indisponible. On considère donc que les revenus N+2, obtenus à l’issue de la dérive, seront au format fiscal N+1.

10.5 Empilement post-dérive

La dérive des cases fiscales permet de faire avancer des revenus d’une année vers la suivante, mais sans changement de format fiscal possible. Ainsi, il suffit de dériver les revenus des tables erfs_foyer_cf_indivi_an1 et erfs_foyer_cf_non_indivi_an1 pour obtenir des cases de revenus N+1 au format fiscal N+1. Une seconde dérive permet d’obtenir des cases de revenus N+2 au format fiscal N+1.

Ainsi, à l’issue de la dérive, on empile :

  • erfs_foyer_cf_indivi_an0, erfs_foyer_cf_indivi_an1 dérivée une fois, et erfs_foyer_cf_indivi_an1 dérivée deux fois, pour obtenir la table erfs_foyer_cf_indivi_an ;
  • erfs_foyer_cf_non_indivi_an0, erfs_foyer_cf_non_indivi_an1 dérivée une fois, et erfs_foyer_cf_non_indivi_an1 dérivée deux fois, pour obtenir la table erfs_foyer_cf_non_indivi_an.

Ces tables contiennent des revenus sur trois ans, et seront appelées dans tout l’aval du modèle pour simuler le système sociofiscal.

Cette transformation se fait dans l’étape derive_cases_fiscales.

10.6 Explications

Ce format permet d’assigner correctement les cases fiscales au bon individu du foyer. Par exemple, au lieu d’avoir c_1bj associé à l’individu coldec == 1, mais qui correspond en réalité au salaire du conjoint, on assigne directement la valeur dans la case à l’individu coldec == 2, sous le nom c_1aj. On supprime ainsi toutes les mentions de “vous” dans la table des cases individualisables.

Ces opérations permettent d’alléger considérablement la table foyer (par la suppression de toutes les cases de valeur nulle), mais aussi de symmétriser les déclarations fiscales, en associant chaque case individuelle à l’individu qu’elle concerne, plutôt qu’au foyer fiscal associé au déclarant.

10.7 Utilisation dans la suite du modèle

Dans toutes les étapes suivantes, les données fiscales sont appelées avec les deux fonctions suivantes :

  • recupere_agregats_foyer pour la table foyer_agregats_anr
  • recupere_agregats_individuels pour la table individu_foyer_cases_anr

Dans les deux cas, l’appel se fait par le biais de la variable detail_contenu associée aux cases fiscales concernées. Ceci permet un appel insensible aux éventuels changements de cases fiscales entre deux déclarations.

Par exemple, le code suivant permet d’obtenir un data.frame au niveau individuel, où, pour chaque individu, on a ajouté deux colonnes : la colonne salaire, qui contient la case dont le detail_contenu est : “2042 - traitements, salaires, pensions, rentes - traitements, salaires - traitements et salaires”, et la colonne hsup, qui contient la case dont le detail_contenu est : “2042 - traitements, salaires, pensions, rentes - traitements, salaires - heures supplementaires exonerees”.

recupere_agregats_individuels(
  dico_cases_fiscales,
  erfs_individus_fiscaux_an,
  erfs_foyer_cf_indivi_an,
  liste = list(
    salaire = "2042 - traitements, salaires, pensions, rentes - traitements, salaires - traitements et salaires",
    hsup = "2042 - traitements, salaires, pensions, rentes - traitements, salaires - heures supplementaires exonerees"
    ))