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 :
- chaque case fiscale est associée à un libellé permettant de la situer dans la déclaration fiscale, et de la décrire succitement ;
- les cases fiscales sont maintenant présentes sous forme de tables au format long, et empilée entre années ;
- il existe un répertoire des individus fiscaux (présents dans la table des foyers fiscaux), et des foyers fiscaux eux-mêmes. L’impôt est donc calculé à partir de ce répertoire, et non pas sur l’ensemble des individus EEC.
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
et1bj
sera associé à deux individus dans le répertoire des individus fiscaux : le coldec1
et le coldec2
.
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 paridfoyer x année
;erfs_individus_fiscaux_an
: le répertoire des individus fiscaux, empilé sur trois ans, constitué d’une ligne paridfoyer 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
eterfs_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, eterfs_foyer_cf_indivi_an1
dérivée deux fois, pour obtenir la tableerfs_foyer_cf_indivi_an
;erfs_foyer_cf_non_indivi_an0
,erfs_foyer_cf_non_indivi_an1
dérivée une fois, eterfs_foyer_cf_non_indivi_an1
dérivée deux fois, pour obtenir la tableerfs_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 tablefoyer_agregats_anr
recupere_agregats_individuels
pour la tableindividu_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"
))