diff --git a/openfisca_france/model/mesures.py b/openfisca_france/model/mesures.py index 60163758a2..b75c60f380 100644 --- a/openfisca_france/model/mesures.py +++ b/openfisca_france/model/mesures.py @@ -77,6 +77,20 @@ def formula(menage, period, parameters): + revenus_nets_du_capital ) + def formula_2024_01_01(menage, period, parameters): + revenus_nets_menage = menage('revenus_nets_menage', period) + impots_directs = menage('impots_directs', period) + + # On prend en compte les prestations sociales touchées par une famille dont le demandeur est dans le ménage + prestations_sociales_i = menage.members.famille('prestations_sociales', period) # PF de la famille auquel appartient chaque membre du ménage + prestations_sociales = menage.sum(prestations_sociales_i, role = Famille.DEMANDEUR) # On somme seulement pour les demandeurs + + return ( + revenus_nets_menage + + impots_directs + + prestations_sociales + ) + class niveau_de_vie(Variable): value_type = float @@ -90,6 +104,63 @@ def formula(menage, period): return revenu_disponible / uc +class revenus_nets_menage(Variable): + value_type = float + entity = Menage + label = 'Revenus nets' + definition_period = YEAR + + def formula_2024_01_01(menage, period): + # revenus du travail nets + remuneration_brute_i = menage.members('remuneration_brute', period, options = [ADD]) + remuneration_brute = menage.sum(remuneration_brute_i) + indemnite_compensatrice_csg_i = menage.members('indemnite_compensatrice_csg', period, options = [ADD]) + indemnite_compensatrice_csg = menage.sum(indemnite_compensatrice_csg_i) + cotisations_salariales_i = menage.members('cotisations_salariales', period, options = [ADD]) + cotisations_salariales = menage.sum(cotisations_salariales_i) + complementaire_sante_salarie_i = menage.members('complementaire_sante_salarie', period, options = [ADD]) + complementaire_sante_salarie = menage.sum(complementaire_sante_salarie_i) + rpns_imposables_i = menage.members('rpns_imposables', period, options = [ADD]) + rpns_imposables = menage.sum(rpns_imposables_i) + microentreprise_i = menage.members.foyer_fiscal('microentreprise', period, options = [ADD]) * menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL) + microentreprise = menage.sum(microentreprise_i) + # pensions nettes + chomage_brut_i = menage.members('chomage_brut', period, options = [ADD]) + chomage_brut = menage.sum(chomage_brut_i) + retraite_brute_i = menage.members('retraite_brute', period, options = [ADD]) + retraite_brute = menage.sum(retraite_brute_i) + casa_i = menage.members('casa', period, options = [ADD]) + casa = menage.sum(casa_i) + pensions_rentes_complementaires = menage('pensions_rentes_complementaires', period) + # revenus nets du capital + revenus_du_capital_avant_prelevements = menage('revenus_du_capital_avant_prelevements', period) + prelevements_sociaux_revenus_capital_hors_csg_crds_f = menage.members.foyer_fiscal('prelevements_sociaux_revenus_capital_hors_csg_crds', period) * menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL) + prelevements_sociaux_revenus_capital_hors_csg_crds = menage.sum(prelevements_sociaux_revenus_capital_hors_csg_crds_f) + + # CSG CRDS + csg_i = menage.members('csg', period) + csg = menage.sum(csg_i) + crds_hors_prestations_i = menage.members('crds_hors_prestations', period) + crds_hors_prestations = menage.sum(crds_hors_prestations_i) + + return ( + remuneration_brute + + indemnite_compensatrice_csg + + cotisations_salariales + - complementaire_sante_salarie + + rpns_imposables + + microentreprise + + retraite_brute + + casa + + chomage_brut + + pensions_rentes_complementaires + + revenus_du_capital_avant_prelevements + + prelevements_sociaux_revenus_capital_hors_csg_crds + + csg + + crds_hors_prestations + ) + + class revenus_nets_du_travail(Variable): value_type = float entity = Individu @@ -103,6 +174,61 @@ def formula(individu, period): return salaire_net + revenus_non_salarie_nets +class pensions_rentes_complementaires(Variable): + value_type = float + entity = Menage + label = 'Pensions et revenus de remplacement hors chomage et retraite' + reference = 'http://fr.wikipedia.org/wiki/Rente' + definition_period = YEAR + + def formula(menage, period): + pensions_alimentaires_percues_i = menage.members('pensions_alimentaires_percues', period, options = [ADD]) + pensions_alimentaires_percues = menage.sum(pensions_alimentaires_percues_i) + pensions_invalidite_i = menage.members('pensions_invalidite', period, options = [ADD]) + pensions_invalidite = menage.sum(pensions_invalidite_i) + + # Revenus du foyer fiscal, que l'on projette uniquement sur le 1er déclarant + pensions_alimentaires_versees_f = menage.members.foyer_fiscal('pensions_alimentaires_versees', period) + pensions_alimentaires_versees = menage.sum(pensions_alimentaires_versees_f * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL))) + rente_viagere_titre_onereux_f = menage.members.foyer_fiscal('rente_viagere_titre_onereux', period, options = [ADD]) + rente_viagere_titre_onereux = menage.sum(rente_viagere_titre_onereux_f * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL))) + + return ( + pensions_alimentaires_percues + + pensions_invalidite + + pensions_alimentaires_versees + + rente_viagere_titre_onereux + ) + + +class revenus_du_capital_avant_prelevements(Variable): + value_type = float + entity = Menage + label = 'Revenus du capital avant prélèvements sociaux' + definition_period = YEAR + + def formula_2024_01_01(menage, period): + assiette_csg_revenus_capital_f = menage.members.foyer_fiscal('assiette_csg_revenus_capital', period) * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)) + assiette_csg_revenus_capital = menage.sum(assiette_csg_revenus_capital_f) + assiette_csg_plus_values_f = menage.members.foyer_fiscal('assiette_csg_plus_values', period) * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)) + assiette_csg_plus_values = menage.sum(assiette_csg_plus_values_f) + plus_values_base_large_f = menage.members.foyer_fiscal('plus_values_base_large', period) * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)) + plus_values_base_large = menage.sum(plus_values_base_large_f) + rente_viagere_titre_onereux_net_f = menage.members.foyer_fiscal('rente_viagere_titre_onereux_net', period) * (menage.members.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)) + rente_viagere_titre_onereux_net = menage.sum(rente_viagere_titre_onereux_net_f) + # Ajoute les gains de levée d'options qui, pour les prélèvements sociaux, sont soumis aux mêmes taux que les salaires. Contrairement aux revenus ci-dessus, ces revenus sont individuels. + glo_assimiles_salaire_ir_et_ps_i = menage.members('f1tt', period) + glo_assimiles_salaire_ir_et_ps = menage.sum(glo_assimiles_salaire_ir_et_ps_i) + + return ( + assiette_csg_revenus_capital + - assiette_csg_plus_values + + plus_values_base_large + - rente_viagere_titre_onereux_net + + glo_assimiles_salaire_ir_et_ps + ) + + class pensions_nettes(Variable): value_type = float entity = Individu @@ -578,6 +704,23 @@ def formula(famille, period, parameters): return aah + caah + minimum_vieillesse + rsa + aefa + api + ass + psa + ppa_nette_crds + garantie_jeunes + def formula_2024_01_01(famille, period, parameters): + # Certaines réformes ayant des effets de bords nécessitent que le rsa soit calculé avant la ppa + rsa = famille('rsa', period, options = [ADD]) + ppa_nette_crds = famille('ppa_nette_crds', period, options = [ADD]) + aspa = famille('aspa', period, options = [ADD]) + asi_i = famille.members('asi', period, options = [ADD]) + asi = famille.sum(asi_i) + aah_i = famille.members('aah', period, options = [ADD]) + aah = famille.sum(aah_i) + ass_i = famille.members('ass', period, options = [ADD]) + ass = famille.sum(ass_i) + garantie_jeunes_i = famille.members('garantie_jeunes', period, options = [ADD]) + garantie_jeunes = famille.sum(garantie_jeunes_i) + aefa = famille('aefa', period) + + return rsa + ppa_nette_crds + aspa + asi + aah + ass + garantie_jeunes + aefa + class aides_logement(Variable): value_type = float @@ -650,3 +793,19 @@ def formula(menage, period, parameters): + isf_ifi + prelevement_liberatoire_autoentrepreneur ) + + +class prelevement_forfaitaire_unique(Variable): + value_type = float + entity = FoyerFiscal + label = "Prélèvement forfaitaire unique" + definition_period = YEAR + + def formula_2018_01_01(foyer_fiscal, period, parameters): + return ( + foyer_fiscal('prelevement_forfaitaire_unique_ir_hors_assurance_vie', period) + + foyer_fiscal('prelevement_forfaitaire_unique_ir_sur_assurance_vie', period) + + foyer_fiscal('prelevements_sociaux_revenus_capital_hors_csg_crds', period) + + foyer_fiscal('csg_revenus_capital', period) + + foyer_fiscal('crds_revenus_capital', period) + ) \ No newline at end of file diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/csg_crds.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/csg_crds.py index f2039905fd..41f28aa2b4 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/csg_crds.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/csg_crds.py @@ -10,29 +10,21 @@ class csg(Variable): label = 'Contribution sociale généralisée' definition_period = YEAR - def formula(individu, period): - csg_imposable_salaire = individu('csg_imposable_salaire', period, options = [ADD]) - csg_deductible_salaire = individu('csg_deductible_salaire', period, options = [ADD]) - csg_imposable_chomage = individu('csg_imposable_chomage', period, options = [ADD]) - csg_deductible_chomage = individu('csg_deductible_chomage', period, options = [ADD]) - csg_imposable_retraite = individu('csg_imposable_retraite', period, options = [ADD]) - csg_deductible_retraite = individu('csg_deductible_retraite', period, options = [ADD]) - csg_imposable_non_salarie = individu('csg_imposable_non_salarie', period, options = [ADD]) - csg_deductible_non_salarie = individu('csg_deductible_non_salarie', period, options = [ADD]) + def formula(individu, period, parameters): + csg_salaire = individu('csg_salaire', period, options = [ADD]) + csg_chomage = individu('csg_chomage', period, options = [ADD]) + csg_retraite = individu('csg_retraite', period, options = [ADD]) + csg_non_salarie = individu('csg_non_salarie', period) csg_glo_assimile_salaire_ir_et_ps = individu('csg_glo_assimile_salaire_ir_et_ps', period) # CSG sur revenus du capital, définie à l'échelle du foyer fiscal, mais projetée sur le déclarant principal csg_revenus_capital = individu.foyer_fiscal('csg_revenus_capital', period) csg_revenus_capital_projetee = csg_revenus_capital * individu.has_role(FoyerFiscal.DECLARANT_PRINCIPAL) return ( - csg_imposable_salaire - + csg_deductible_salaire - + csg_imposable_chomage - + csg_deductible_chomage - + csg_imposable_retraite - + csg_deductible_retraite - + csg_imposable_non_salarie - + csg_deductible_non_salarie + csg_salaire + + csg_chomage + + csg_retraite + + csg_non_salarie + csg_glo_assimile_salaire_ir_et_ps + csg_revenus_capital_projetee ) @@ -40,6 +32,64 @@ def formula(individu, period): # TODO: manque CSG sur IJ et pré-retraites +class csg_salaire(Variable): + calculate_output = calculate_output_add + value_type = float + entity = Individu + label = 'CSG salaire' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula(individu, period, parameters): + return ( + individu('csg_deductible_salaire', period) + + individu('csg_imposable_salaire', period) + ) + + +class csg_non_salarie(Variable): + value_type = float + entity = Individu + label = 'CSG non salarie' + definition_period = YEAR + + def formula(individu, period, parameters): + return ( + individu('csg_deductible_non_salarie', period) + + individu('csg_imposable_non_salarie', period) + ) + + +class csg_retraite(Variable): + calculate_output = calculate_output_add + value_type = float + entity = Individu + label = 'CSG sur les retraites' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula(individu, period, parameters): + return ( + individu('csg_imposable_retraite', period) + + individu('csg_deductible_retraite', period) + ) + + +class csg_chomage(Variable): + calculate_output = calculate_output_add + value_type = float + entity = Individu + label = 'CSG sur le chomage' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula(individu, period): + return ( + individu('csg_imposable_chomage', period) + + individu('csg_deductible_chomage', period) + ) + + class crds(Variable): value_type = float entity = Individu diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/allegements.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/allegements.py index 7ccc152f02..ea616a633e 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/allegements.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/allegements.py @@ -120,6 +120,42 @@ def formula(individu, period, parameters): return (jours_ouvres_ce_mois_incomplet > 0) * coefficient +class cotisations_allegement_general(Variable): + value_type = float + entity = Individu + label = 'Cotisations sociales employeur concernées par l allègement général' + set_input = set_input_divide_by_period + definition_period = MONTH + calculate_output = calculate_output_add + + def formula_2019_01_01(individu, period, parameters): + agirc_arrco_employeur = individu('agirc_arrco_employeur', period) + chomage_employeur = individu('chomage_employeur', period) + contribution_equilibre_general_employeur = individu('contribution_equilibre_general_employeur', period) + vieillesse_deplafonnee_employeur = individu('vieillesse_deplafonnee_employeur', period, options = [ADD]) + vieillesse_plafonnee_employeur = individu('vieillesse_plafonnee_employeur', period, options = [ADD]) + accident_du_travail = individu('accident_du_travail', period, options = [ADD]) + contribution_solidarite_autonomie = individu('contribution_solidarite_autonomie', period) + famille_net_allegement = individu('famille_net_allegement', period) + mmid_employeur_net_allegement = individu('mmid_employeur_net_allegement', period, options = [ADD]) + fnal = individu('fnal', period, options = [ADD]) + + cotisations = ( + agirc_arrco_employeur + + chomage_employeur + + contribution_equilibre_general_employeur + + vieillesse_deplafonnee_employeur + + vieillesse_plafonnee_employeur + + accident_du_travail + + contribution_solidarite_autonomie + + famille_net_allegement + + mmid_employeur_net_allegement + + fnal + ) + + return cotisations + + class credit_impot_competitivite_emploi(Variable): value_type = float entity = Individu diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_totaux.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_totaux.py index 84f02e87e1..a289102eb1 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_totaux.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_totaux.py @@ -152,8 +152,7 @@ def formula(individu, period, parameters): ircantec_salarie = individu('ircantec_salarie', period) pension_salarie = individu('pension_salarie', period) rafp_salarie = individu('rafp_salarie', period) - vieillesse_deplafonnee_salarie = individu('vieillesse_deplafonnee_salarie', period) - vieillesse_plafonnee_salarie = individu('vieillesse_plafonnee_salarie', period) + vieillesse_salarie = individu('vieillesse_salarie', period) cotisations_salariales_contributives = ( # prive @@ -167,8 +166,7 @@ def formula(individu, period, parameters): + contribution_equilibre_general_salarie + contribution_equilibre_technique_salarie + cotisation_exceptionnelle_temporaire_salarie - + vieillesse_deplafonnee_salarie - + vieillesse_plafonnee_salarie + + vieillesse_salarie # public + ircantec_salarie + pension_salarie diff --git a/openfisca_france/model/revenus/activite/salarie.py b/openfisca_france/model/revenus/activite/salarie.py index fa221f976c..2a1a3fe090 100644 --- a/openfisca_france/model/revenus/activite/salarie.py +++ b/openfisca_france/model/revenus/activite/salarie.py @@ -1517,6 +1517,219 @@ def formula_2022_07_01(individu, period, parameters): + prime_partage_valeur_exoneree_exceptionnelle ) + def formula_2024_01_01(individu, period, parameters): + remuneration_brute = individu('remuneration_brute', period) + cotisations_employeur_securite_sociale = individu('cotisations_employeur_securite_sociale', period) + cotisations_employeur_retraite_complementaire = individu('cotisations_employeur_retraite_complementaire', period) + pension_employeur = individu('pension_employeur', period) + rafp_employeur = individu('rafp_employeur', period) + cotisations_employeur_assurance_chomage = individu('cotisations_employeur_assurance_chomage', period) + cotisations_employeur_autres = individu('cotisations_employeur_autres', period) + allegement_general = individu('allegement_general', period) + exonerations = individu('exonerations', period) + + return ( + remuneration_brute + - cotisations_employeur_securite_sociale + - cotisations_employeur_retraite_complementaire + - pension_employeur + - rafp_employeur + - cotisations_employeur_assurance_chomage + - cotisations_employeur_autres + - allegement_general + - exonerations + ) + + +class remuneration_brute(Variable): + value_type = float + entity = Individu + label = 'Rémunération brute' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + salaire_de_base = individu('salaire_de_base', period) + remuneration_principale = individu('remuneration_principale', period) + indemnite_residence = individu('indemnite_residence', period) + supplement_familial_traitement = individu('supplement_familial_traitement', period) + remuneration_apprenti = individu('remuneration_apprenti', period) + primes = individu('primes', period) + indemnite_fin_contrat = individu('indemnite_fin_contrat', period) + depense_cantine_titre_restaurant_employeur = individu('depense_cantine_titre_restaurant_employeur', period) + reintegration_titre_restaurant_employeur = individu('reintegration_titre_restaurant_employeur', period) + + return ( + salaire_de_base + + remuneration_principale + + indemnite_residence + + supplement_familial_traitement + + remuneration_apprenti + + primes + + indemnite_fin_contrat + + depense_cantine_titre_restaurant_employeur + + reintegration_titre_restaurant_employeur + ) + + +class primes(Variable): + value_type = float + entity = Individu + label = 'Primes' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + primes_fonction_publique = individu('primes_fonction_publique', period) + primes_salaires = individu('primes_salaires', period) + prime_partage_valeur_exoneree = individu('prime_partage_valeur_exoneree', period, options=[DIVIDE]) + prime_partage_valeur_non_exoneree = individu('prime_partage_valeur_non_exoneree', period, options=[DIVIDE]) + + return ( + primes_fonction_publique + + primes_salaires + + prime_partage_valeur_exoneree + + prime_partage_valeur_non_exoneree + ) + + +class cotisations_employeur_securite_sociale(Variable): + value_type = float + entity = Individu + label = 'Cotisations et contributions du régime général de la sécurité sociale' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + mmid_employeur_net_allegement = individu('mmid_employeur_net_allegement', period) + vieillesse_employeur = individu('vieillesse_employeur', period) + famille_net_allegement = individu('famille_net_allegement', period) + accident_du_travail = individu('accident_du_travail', period) + contribution_solidarite_autonomie = individu('contribution_solidarite_autonomie', period) + + return ( + mmid_employeur_net_allegement + + vieillesse_employeur + + famille_net_allegement + + accident_du_travail + + contribution_solidarite_autonomie + ) + + +class cotisations_employeur_autres(Variable): + value_type = float + entity = Individu + label = 'Autres cotisations et contributions employeur' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + conge_individuel_formation_cdd = individu('conge_individuel_formation_cdd', period) + contribution_supplementaire_apprentissage = individu('contribution_supplementaire_apprentissage', period) + financement_organisations_syndicales = individu('financement_organisations_syndicales', period) + taxe_salaires = individu('taxe_salaires', period) + forfait_social = individu('forfait_social', period) + participation_effort_construction = individu('participation_effort_construction', period) + prevoyance_obligatoire_cadre = individu('prevoyance_obligatoire_cadre', period) + complementaire_sante_employeur = individu('complementaire_sante_employeur', period) + versement_transport = individu('versement_transport', period) + contribution_unique_formation_professionnelle_alternance = individu('contribution_unique_formation_professionnelle_alternance', period) + fonds_emploi_hospitalier = individu('fonds_emploi_hospitalier', period) + ati_atiacl = individu('ati_atiacl', period) + fnal = individu('fnal', period) + + return ( + contribution_unique_formation_professionnelle_alternance + + conge_individuel_formation_cdd + + contribution_supplementaire_apprentissage + + versement_transport + + financement_organisations_syndicales + + fnal + + participation_effort_construction + + prevoyance_obligatoire_cadre + + complementaire_sante_employeur + + taxe_salaires + + forfait_social + + fonds_emploi_hospitalier + + ati_atiacl + ) + + +class cotisations_employeur_retraite_complementaire(Variable): + value_type = float + entity = Individu + label = 'Cotisations aux régimes complémentaires de retraite' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + agirc_arrco_employeur = individu('agirc_arrco_employeur', period) + contribution_equilibre_general_employeur = individu('contribution_equilibre_general_employeur', period) + contribution_equilibre_technique_employeur = individu('contribution_equilibre_technique_employeur', period) + apec_employeur = individu('apec_employeur', period) + ircantec_employeur = individu('ircantec_employeur', period) + + return ( + agirc_arrco_employeur + + contribution_equilibre_general_employeur + + contribution_equilibre_technique_employeur + + apec_employeur + + ircantec_employeur + ) + + +class cotisations_employeur_assurance_chomage(Variable): + value_type = float + entity = Individu + label = 'Cotisations employeur pour le chomage' + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2024_01_01(individu, period, parameters): + chomage_employeur = individu('chomage_employeur', period) + ags = individu('ags', period) + + return ( + chomage_employeur + + ags + ) + + +class vieillesse_salarie(Variable): + value_type = float + entity = Individu + label = 'Cotisation vieillesse plafonnée et déplafonnée (salarié)' + reference = [ + 'Article L. 242-1 du code de la sécurité sociale', + 'https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044626664' + ] + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula(individu, period, parameters): + vieillesse_plafonnee_salarie = individu('vieillesse_plafonnee_salarie', period) + vieillesse_deplafonnee_salarie = individu('vieillesse_deplafonnee_salarie', period) + + return vieillesse_plafonnee_salarie + vieillesse_deplafonnee_salarie + + +class vieillesse_employeur(Variable): + value_type = float + entity = Individu + label = 'Cotisation vieillesse plafonnée et déplafonnée (employeur)' + reference = [ + 'Article L. 242-1 du code de la sécurité sociale', + 'https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044626664' + ] + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula(individu, period, parameters): + vieillesse_plafonnee_employeur = individu('vieillesse_plafonnee_employeur', period) + vieillesse_deplafonnee_employeur = individu('vieillesse_deplafonnee_employeur', period) + + return vieillesse_plafonnee_employeur + vieillesse_deplafonnee_employeur + class exonerations(Variable): value_type = float