From 08d47dc49c5e5affabf8590f3d16fa1f0a331bb0 Mon Sep 17 00:00:00 2001 From: cgl Date: Mon, 22 Jul 2024 12:01:19 +0200 Subject: [PATCH] =?UTF-8?q?bar=C3=A9mise=20la=20csg=20et=20la=20crds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit barémise la csg non salarié et chomage fix fix fix fix fix tests fix_tests fix calcul csg bareme enlève des modifications de tests qui étaient des erreurs baremise la csg sur les retraites fix rebase Transforme le taux unique de crds en barème Modifie formule CRDS salaires Rectifie labels de certaines formules de CRDS Modifie formule crds activité Modifie formules crds chomage et retraite Modifie formule de la CRDS d'un des revenus du capital Modifie formule CRDS aides au logement Modifie formule CRDS RSA Modifie formule CRDS PPA Modifie formule CRDS Allocations familiales Modifie formule CRDS Allocation de rentrée scolaire Modifie formule CRDS allocation de soutien familial Modifie formule CRDS Complément familial Modifie formules CRDS de la PAJE Teste de modifier la formule de la CRDS crds_revenus_capital Fix la formule capital Supprime les paraètres CRDS présentant dans taxation_capital qui sont des doublons du taux de crds unique fix test fix appel taux crds Fix erreur indentation et import Ajoute les imports manquants de la fonction montant_csg_crds_bareme fix fix signe crds fix index --- .../contributions_sociales/activite.py | 43 +++++++++++++------ .../contributions_sociales/base.py | 33 ++++++++++++++ .../contributions_sociales/capital.py | 26 +++++++---- .../contributions_sociales/remplacement.py | 29 ++++++------- .../model/prestations/aides_logement.py | 13 ++++-- .../model/prestations/complement_are.py | 2 +- .../prestations/minima_sociaux/anciens_ms.py | 11 ++++- .../model/prestations/minima_sociaux/ppa.py | 11 ++++- .../prestations/prestations_familiales/af.py | 10 ++++- .../prestations/prestations_familiales/ars.py | 10 ++++- .../prestations/prestations_familiales/asf.py | 10 ++++- .../prestations/prestations_familiales/cf.py | 10 ++++- .../prestations_familiales/paje.py | 28 +++++++++--- .../contributions_sociales/crds/taux.yaml | 19 +++++--- .../csg/activite/deductible/taux.yaml | 21 +++++---- .../csg/activite/imposable/taux.yaml | 17 +++++--- .../deductible/taux_plein.yaml | 21 +++++---- .../deductible/taux_reduit.yaml | 21 +++++---- .../imposable/taux_plein.yaml | 13 ++++-- .../imposable/taux_reduit.yaml | 13 ++++-- .../deductible/taux_median.yaml | 17 +++++--- .../deductible/taux_plein.yaml | 29 +++++++------ .../deductible/taux_reduit.yaml | 21 +++++---- .../imposable/taux_median.yaml | 13 ++++-- .../imposable/taux_plein.yaml | 13 ++++-- .../imposable/taux_reduit.yaml | 13 ++++-- .../taux_median.yaml | 17 +++++--- .../taux_plein.yaml | 33 ++++++++------ .../taux_reduit.yaml | 21 +++++---- .../prelevements_sociaux/crds/index.yaml | 11 ----- .../crds/produits_de_placement.yaml | 13 ------ .../crds/revenus_du_patrimoine.yaml | 13 ------ .../prelevements_sociaux/index.yaml | 1 - tests/formulas/base_a_net.yaml | 26 +++++------ 34 files changed, 382 insertions(+), 220 deletions(-) delete mode 100644 openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/index.yaml delete mode 100644 openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/produits_de_placement.yaml delete mode 100644 openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/revenus_du_patrimoine.yaml diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py index 258d1cfcf2..635327dbfb 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py @@ -1,7 +1,7 @@ import logging from openfisca_france.model.base import * -from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme log = logging.getLogger(__name__) @@ -111,7 +111,7 @@ def formula(individu, period, parameters): plafond_securite_sociale = individu('plafond_securite_sociale', period) csg = parameters(period).prelevements_sociaux.contributions_sociales.csg - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, abattement_parameter = csg.activite.abattement, @@ -135,7 +135,7 @@ def formula(individu, period, parameters): plafond_securite_sociale = individu('plafond_securite_sociale', period) csg_parameters = parameters(period).prelevements_sociaux.contributions_sociales.csg - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, abattement_parameter = csg_parameters.activite.abattement, @@ -161,7 +161,7 @@ def formula(individu, period, parameters): parameters = parameters(period).prelevements_sociaux.contributions_sociales - montant_crds = montant_csg_crds( + montant_crds = montant_csg_crds_bareme( law_node = parameters.crds, base_avec_abattement = assiette_csg_abattue, base_sans_abattement = assiette_csg_non_abattue, @@ -418,39 +418,56 @@ def formula(individu, period): class csg_imposable_non_salarie(Variable): value_type = float entity = Individu - label = 'Assiette CSG des personnes non salariées' + label = 'CSG des personnes non salariées' definition_period = YEAR def formula(individu, period, parameters): assiette_csg_crds_non_salarie = individu('assiette_csg_crds_non_salarie', period) csg = parameters(period).prelevements_sociaux.contributions_sociales.csg.activite - taux = csg.imposable.taux - return - taux * assiette_csg_crds_non_salarie + + montant_csg = montant_csg_crds_bareme( + base_sans_abattement = assiette_csg_crds_non_salarie, + law_node = csg.imposable, + ) + + return montant_csg class csg_deductible_non_salarie(Variable): value_type = float entity = Individu - label = 'Assiette CSG des personnes non salariées' + label = 'CSG des personnes non salariées' definition_period = YEAR def formula(individu, period, parameters): assiette_csg_crds_non_salarie = individu('assiette_csg_crds_non_salarie', period) csg = parameters(period).prelevements_sociaux.contributions_sociales.csg.activite - taux = csg.deductible.taux - return - taux * assiette_csg_crds_non_salarie + + montant_csg = montant_csg_crds_bareme( + base_sans_abattement = assiette_csg_crds_non_salarie, + law_node = csg.deductible, + ) + + return montant_csg class crds_non_salarie(Variable): value_type = float entity = Individu - label = 'Assiette CSG des personnes non salariées' + label = 'CRDS des personnes non salariées' definition_period = YEAR def formula(individu, period, parameters): assiette_csg_crds_non_salarie = individu('assiette_csg_crds_non_salarie', period) - taux = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux - return - taux * assiette_csg_crds_non_salarie + + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = assiette_csg_crds_non_salarie, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class revenus_non_salarie_nets(Variable): diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/base.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/base.py index c6069d165d..3dfc283938 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/base.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/base.py @@ -31,3 +31,36 @@ def montant_csg_crds(base_avec_abattement = None, base_sans_abattement = None, i + law_node.taux_reduit * indicatrice_taux_reduit + law_node.taux_median * indicatrice_taux_intermediaire ) * base + + +def montant_csg_crds_bareme(base_avec_abattement = None, base_sans_abattement = None, indicatrice_taux_plein = None, + indicatrice_taux_intermediaire = None, indicatrice_taux_reduit = None, abattement_parameter = None, law_node = None, plafond_securite_sociale = None): + assert law_node is not None + if base_sans_abattement is None: + base_sans_abattement = 0 + if base_avec_abattement is None: + base = base_sans_abattement + else: + assert plafond_securite_sociale is not None + assert abattement_parameter is not None + base = base_avec_abattement - abattement_parameter.calc( + base_avec_abattement, + factor = plafond_securite_sociale, + round_base_decimals = 2, + ) + base_sans_abattement + if indicatrice_taux_plein is None and indicatrice_taux_reduit is None: + return -law_node.taux.calc(base) + elif indicatrice_taux_plein is not None and indicatrice_taux_reduit is not None and indicatrice_taux_intermediaire is None: + return -( + law_node.taux_plein.calc(base) * indicatrice_taux_plein + + law_node.taux_reduit.calc(base) * indicatrice_taux_reduit + ) + else: + assert indicatrice_taux_plein is not None + assert indicatrice_taux_reduit is not None + assert indicatrice_taux_intermediaire is not None + return -( + law_node.taux_plein.calc(base) * indicatrice_taux_plein + + law_node.taux_reduit.calc(base) * indicatrice_taux_reduit + + law_node.taux_median.calc(base) * indicatrice_taux_intermediaire + ) diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/capital.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/capital.py index 823c917ae6..6f1bd4822b 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/capital.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/capital.py @@ -1,5 +1,7 @@ import logging + from openfisca_france.model.base import * +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme log = logging.getLogger(__name__) @@ -318,7 +320,7 @@ class csg_glo_assimile_salaire_ir_et_ps(Variable): def formula(individu, period, parameters): f1tt = individu('f1tt', period) csg_activite = parameters(period).prelevements_sociaux.contributions_sociales.csg.activite - taux = csg_activite.imposable.taux + csg_activite.deductible.taux + taux = csg_activite.imposable.taux.rates[0] + csg_activite.deductible.taux.rates[0] return - f1tt * taux @@ -332,10 +334,16 @@ class crds_glo_assimile_salaire_ir_et_ps(Variable): def formula(individu, period, parameters): f1tt = individu('f1tt', period) - return - f1tt * ( - parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = f1tt, + law_node = law.prelevements_sociaux.contributions_sociales.crds, ) + return montant_crds + class contribution_salariale_glo_assimile_salaire(Variable): calculate_output = calculate_output_add @@ -390,16 +398,18 @@ class crds_revenus_capital(Variable): def formula(foyer_fiscal, period, parameters): assiette_csg_revenus_capital = foyer_fiscal('assiette_csg_revenus_capital', period) - prelevements_sociaux = parameters(period).taxation_capital.prelevements_sociaux - crds_glo_assimile_salaire_ir_et_ps_i = foyer_fiscal.members('crds_glo_assimile_salaire_ir_et_ps', period) crds_glo_assimile_salaire_ir_et_ps = foyer_fiscal.sum(crds_glo_assimile_salaire_ir_et_ps_i) - return ( - - assiette_csg_revenus_capital * prelevements_sociaux.crds.produits_de_placement - + crds_glo_assimile_salaire_ir_et_ps + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = assiette_csg_revenus_capital, + law_node = law.prelevements_sociaux.contributions_sociales.crds, ) + return (montant_crds + crds_glo_assimile_salaire_ir_et_ps) + class prelevements_sociaux_revenus_capital_hors_csg_crds(Variable): value_type = float diff --git a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/remplacement.py b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/remplacement.py index ec24a80854..efdfb6e5a0 100644 --- a/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/remplacement.py +++ b/openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/remplacement.py @@ -1,9 +1,8 @@ import logging from openfisca_france.model.base import * -from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import ( - montant_csg_crds - ) +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme + log = logging.getLogger(__name__) @@ -74,7 +73,7 @@ def formula_2015(individu, period, parameters): chomage_cotisation_retraite_complementaire = individu('chomage_cotisation_retraite_complementaire', period) assiette_csg_chomage = chomage_brut - chomage_cotisation_retraite_complementaire - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_avec_abattement = assiette_csg_chomage, indicatrice_taux_plein = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein), indicatrice_taux_reduit = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit), @@ -140,7 +139,7 @@ def formula_2015(individu, period, parameters): chomage_cotisation_retraite_complementaire = individu('chomage_cotisation_retraite_complementaire', period) assiette_csg_chomage = chomage_brut - chomage_cotisation_retraite_complementaire - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_avec_abattement = assiette_csg_chomage, indicatrice_taux_plein = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein), indicatrice_taux_reduit = (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit), @@ -209,7 +208,7 @@ def formula_2015(individu, period, parameters): (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_reduit) + (taux_csg_remplacement == TypesTauxCSGRemplacement.taux_plein) ) - montant_crds = montant_csg_crds( + montant_crds = montant_csg_crds_bareme( base_avec_abattement = assiette_crds_chomage, abattement_parameter = parameters.prelevements_sociaux.contributions_sociales.csg.activite.abattement, law_node = parameters.prelevements_sociaux.contributions_sociales.crds, @@ -297,7 +296,7 @@ def formula_2019(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_intermediaire, TypesTauxCSGRetraite.taux_plein] ) - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_retraite == TypesTauxCSGRetraite.taux_plein), indicatrice_taux_reduit = (taux_csg_retraite == TypesTauxCSGRetraite.taux_reduit), @@ -321,7 +320,7 @@ def formula_2015(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_plein] ) - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_retraite == TypesTauxCSGRetraite.taux_plein), indicatrice_taux_reduit = (taux_csg_retraite == TypesTauxCSGRetraite.taux_reduit), @@ -334,7 +333,7 @@ def formula(individu, period, parameters): # formula_1997_2014 à corriger (cf. retraite_brute = individu('retraite_brute', period) parameters = parameters(period) - montant_csg = parameters.prelevements_sociaux.contributions_sociales.csg.remplacement.pensions_retraite_invalidite.deductible.taux_plein * retraite_brute + montant_csg = parameters.prelevements_sociaux.contributions_sociales.csg.remplacement.pensions_retraite_invalidite.deductible.taux_plein.rates[0] * retraite_brute return - montant_csg @@ -363,7 +362,7 @@ def formula_2019(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_intermediaire, TypesTauxCSGRetraite.taux_plein] ) - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_retraite == TypesTauxCSGRetraite.taux_plein), indicatrice_taux_reduit = (taux_csg_retraite == TypesTauxCSGRetraite.taux_reduit), @@ -387,7 +386,7 @@ def formula_2015(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_plein] ) - montant_csg = montant_csg_crds( + montant_csg = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, indicatrice_taux_plein = (taux_csg_retraite == TypesTauxCSGRetraite.taux_plein), indicatrice_taux_reduit = (taux_csg_retraite == TypesTauxCSGRetraite.taux_reduit), @@ -400,7 +399,7 @@ def formula(individu, period, parameters): # formula_1997_2014 à corriger (cf. retraite_brute = individu('retraite_brute', period) parameters = parameters(period) - montant_csg = parameters.prelevements_sociaux.contributions_sociales.csg.remplacement.pensions_retraite_invalidite.imposable.taux_plein * retraite_brute + montant_csg = parameters.prelevements_sociaux.contributions_sociales.csg.remplacement.pensions_retraite_invalidite.imposable.taux_plein.rates[0] * retraite_brute return - montant_csg @@ -429,7 +428,7 @@ def formula_2019(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_intermediaire, TypesTauxCSGRetraite.taux_plein] ) - montant_crds = montant_csg_crds( + montant_crds = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, law_node = parameters.prelevements_sociaux.contributions_sociales.crds, plafond_securite_sociale = parameters.prelevements_sociaux.pss.plafond_securite_sociale_mensuel, @@ -451,7 +450,7 @@ def formula_2015(individu, period, parameters): [TypesTauxCSGRetraite.exonere, TypesTauxCSGRetraite.taux_reduit, TypesTauxCSGRetraite.taux_plein] ) - montant_crds = montant_csg_crds( + montant_crds = montant_csg_crds_bareme( base_sans_abattement = retraite_brute, law_node = parameters.prelevements_sociaux.contributions_sociales.crds, plafond_securite_sociale = parameters.prelevements_sociaux.pss.plafond_securite_sociale_mensuel, @@ -461,7 +460,7 @@ def formula_2015(individu, period, parameters): def formula(individu, period, parameters): # formula_1997_2014 à corriger (cf. commentaire au niveau de la variable) retraite_brute = individu('retraite_brute', period) parameters = parameters(period) - taux = parameters.prelevements_sociaux.contributions_sociales.crds.taux + taux = parameters.prelevements_sociaux.contributions_sociales.crds.taux.rates[0] return - taux * retraite_brute diff --git a/openfisca_france/model/prestations/aides_logement.py b/openfisca_france/model/prestations/aides_logement.py index 30b49f94c6..4deb2f4b70 100644 --- a/openfisca_france/model/prestations/aides_logement.py +++ b/openfisca_france/model/prestations/aides_logement.py @@ -13,7 +13,7 @@ from openfisca_france.model.base import * from openfisca_france.model.revenus.activite.salarie import TypesConges from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf - +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme log = logging.getLogger(__name__) @@ -1410,8 +1410,15 @@ class crds_logement(Variable): def formula(famille, period, parameters): aide_logement_montant_brut = famille('aide_logement_montant_brut_crds', period) - crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux - return -aide_logement_montant_brut * crds + + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = aide_logement_montant_brut, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class TypesZoneApl(Enum): diff --git a/openfisca_france/model/prestations/complement_are.py b/openfisca_france/model/prestations/complement_are.py index 77e75607fd..bb6efb9eef 100644 --- a/openfisca_france/model/prestations/complement_are.py +++ b/openfisca_france/model/prestations/complement_are.py @@ -317,7 +317,7 @@ def formula(individu, period, parameters): # taux global par défaut : au demandeur d'emploi de suivre une démarche # pour la prise en compte du RFR (exonération potentielle de CRDS) - taux_global_crds_chomage = parametres_prelevements_sociaux.contributions_sociales.crds.taux + taux_global_crds_chomage = parametres_prelevements_sociaux.contributions_sociales.crds.taux.rates[0] crds_theorique = assiette_journaliere_crds * taux_global_crds_chomage # après la CSG, la CRDS ne doit pas faire baisser le montant net de l'allocation en-dessous du smic brut diff --git a/openfisca_france/model/prestations/minima_sociaux/anciens_ms.py b/openfisca_france/model/prestations/minima_sociaux/anciens_ms.py index 8a1be5b560..90b10e9be1 100644 --- a/openfisca_france/model/prestations/minima_sociaux/anciens_ms.py +++ b/openfisca_france/model/prestations/minima_sociaux/anciens_ms.py @@ -2,6 +2,7 @@ from openfisca_france.model.base import * from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class api(Variable): @@ -183,9 +184,15 @@ class crds_rsa_activite(Variable): def formula_2009_06_01(famille, period, parameters): rsa_activite = famille('rsa_activite', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux - return - taux_crds * rsa_activite + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = rsa_activite, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class rsa_activite_net_crds(Variable): diff --git a/openfisca_france/model/prestations/minima_sociaux/ppa.py b/openfisca_france/model/prestations/minima_sociaux/ppa.py index 6afeaae5e6..8d89dfee41 100644 --- a/openfisca_france/model/prestations/minima_sociaux/ppa.py +++ b/openfisca_france/model/prestations/minima_sociaux/ppa.py @@ -1,6 +1,7 @@ from openfisca_core.periods import Instant, Period from openfisca_france.model.base import * from numpy import round as round_, logical_or as or_, remainder as remainder_, datetime64 +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class ppa_eligibilite(Variable): @@ -521,9 +522,15 @@ class crds_ppa(Variable): def formula_2016_01_01(famille, period, parameters): ppa = famille('ppa', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux - return - taux_crds * ppa + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = ppa, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class ppa_nette_crds(Variable): diff --git a/openfisca_france/model/prestations/prestations_familiales/af.py b/openfisca_france/model/prestations/prestations_familiales/af.py index 649c5d11c1..c2c3c88ff5 100644 --- a/openfisca_france/model/prestations/prestations_familiales/af.py +++ b/openfisca_france/model/prestations/prestations_familiales/af.py @@ -2,6 +2,7 @@ from openfisca_france.model.base import * from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class af_nbenf(Variable): @@ -437,9 +438,14 @@ class crds_af(Variable): def formula(famille, period, parameters): af = famille('af', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) - return -(af) * taux_crds + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = af, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class af_nettes_crds(Variable): diff --git a/openfisca_france/model/prestations/prestations_familiales/ars.py b/openfisca_france/model/prestations/prestations_familiales/ars.py index 36a38267ca..67b9de04f9 100644 --- a/openfisca_france/model/prestations/prestations_familiales/ars.py +++ b/openfisca_france/model/prestations/prestations_familiales/ars.py @@ -4,6 +4,7 @@ from openfisca_france.model.base import * from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class ars(Variable): @@ -74,9 +75,14 @@ class crds_ars(Variable): def formula(famille, period, parameters): ars = famille('ars', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) - return -(ars) * taux_crds + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = ars, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class ars_nette_crds(Variable): diff --git a/openfisca_france/model/prestations/prestations_familiales/asf.py b/openfisca_france/model/prestations/prestations_familiales/asf.py index df905c279d..7ed8595141 100644 --- a/openfisca_france/model/prestations/prestations_familiales/asf.py +++ b/openfisca_france/model/prestations/prestations_familiales/asf.py @@ -1,4 +1,5 @@ from openfisca_france.model.base import * +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class asf_elig_enfant(Variable): @@ -90,9 +91,14 @@ class crds_asf(Variable): def formula(famille, period, parameters): asf = famille('asf', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) - return -(asf) * taux_crds + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = asf, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class asf_nette_crds(Variable): diff --git a/openfisca_france/model/prestations/prestations_familiales/cf.py b/openfisca_france/model/prestations/prestations_familiales/cf.py index cbae52f89d..c374d2df99 100644 --- a/openfisca_france/model/prestations/prestations_familiales/cf.py +++ b/openfisca_france/model/prestations/prestations_familiales/cf.py @@ -1,6 +1,7 @@ from numpy import round, logical_or as or_ from openfisca_france.model.base import * +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme class cf_enfant_a_charge(Variable): @@ -353,9 +354,14 @@ class crds_cf(Variable): def formula(famille, period, parameters): cf = famille('cf', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) - return -(cf) * taux_crds + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = cf, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class cf_net_crds(Variable): diff --git a/openfisca_france/model/prestations/prestations_familiales/paje.py b/openfisca_france/model/prestations/prestations_familiales/paje.py index 5e8ccfc915..82d236c4e7 100644 --- a/openfisca_france/model/prestations/prestations_familiales/paje.py +++ b/openfisca_france/model/prestations/prestations_familiales/paje.py @@ -3,6 +3,7 @@ from openfisca_france.model.base import * from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf from openfisca_core.periods import Instant +from openfisca_france.model.prelevements_obligatoires.prelevements_sociaux.contributions_sociales.base import montant_csg_crds_bareme # Prestations familiales @@ -763,9 +764,14 @@ class crds_ape(Variable): def formula(famille, period, parameters): ape = famille('ape', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) - return -(ape) * taux_crds + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = ape, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) + + return montant_crds class ape_nette_crds(Variable): @@ -811,9 +817,14 @@ class crds_apje(Variable): def formula(famille, period, parameters): apje = famille('apje', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = apje, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) - return -(apje) * taux_crds + return montant_crds class apje_nette_crds(Variable): @@ -988,9 +999,14 @@ class crds_paje(Variable): def formula(famille, period, parameters): paje = famille('paje', period) - taux_crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux + law = parameters(period) + + montant_crds = montant_csg_crds_bareme( + base_sans_abattement = paje, + law_node = law.prelevements_sociaux.contributions_sociales.crds, + ) - return -(paje) * taux_crds + return montant_crds class paje_nette_crds(Variable): diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/crds/taux.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/crds/taux.yaml index 23e0cb18a4..4fa16142d6 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/crds/taux.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/crds/taux.yaml @@ -1,12 +1,17 @@ description: Taux de la contribution au remboursement de la dette sociale (CRDS) -values: - 1996-02-01: - value: 0.005 +brackets: +- threshold: + 1996-02-01: + value: 0 + rate: + 1996-02-01: + value: 0.005 metadata: - short_label: Taux global - last_value_still_valid_on: "2023-07-05" - label_en: CRDS - unit: /1 + short_label: Taux + last_value_still_valid_on: "2024-07-22" + label_en: CRDS rate + rate_unit: /1 + threshold_unit: currency reference: 1996-02-01: - title: Article 1600-0 J du Code général des impôts diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/deductible/taux.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/deductible/taux.yaml index 3eb4fbcd1b..72411e4c6a 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/deductible/taux.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/deductible/taux.yaml @@ -1,17 +1,22 @@ description: Taux de la contribution sociale généralisée (CSG) déductible sur les revenus d'activité -values: - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.051 - 2018-01-01: - value: 0.068 +brackets: +- threshold: + 1997-02-01: + value: 0 + rate: + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.051 + 2018-01-01: + value: 0.068 metadata: short_label: Taux last_value_still_valid_on: "2024-07-22" label_en: CSG - rates on work incomes ipp_csv_id: csg_act_ded - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: title: Loi 96-1160 du 27/12/1996, art. 9 à 17 (LFSS pour 1997) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/imposable/taux.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/imposable/taux.yaml index 3566cfe4d8..9f270e5850 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/imposable/taux.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/activite/imposable/taux.yaml @@ -1,14 +1,19 @@ description: Taux de la contribution sociale généralisée (CSG) imposable sur les revenus d'activité -values: - 1991-02-01: - value: 0.011 - 1993-07-01: - value: 0.024 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: 0.011 + 1993-07-01: + value: 0.024 metadata: short_label: Taux last_value_still_valid_on: "2024-07-22" label_en: CSG - rates on work incomes - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_plein.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_plein.yaml index 4f66d7bb9d..cae449f7d1 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_plein.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_plein.yaml @@ -1,17 +1,22 @@ description: Taux plein de la contribution sociale généralisée (CSG) déductible sur les allocations chômage -values: - 1991-02-01: - value: null - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.038 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.038 metadata: short_label: Taux plein last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on unemployment incomes ipp_csv_id: csg_cho_ded - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_reduit.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_reduit.yaml index efb3e3302c..f36d9a93bc 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_reduit.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/deductible/taux_reduit.yaml @@ -1,17 +1,22 @@ description: Taux réduit de la contribution sociale généralisée (CSG) déductible sur les allocations chômage -values: - 1991-02-01: - value: null - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.038 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.038 metadata: short_label: Taux réduit last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on unemployment incomes ipp_csv_id: csg_cho_red - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_plein.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_plein.yaml index c60c0ae2ad..114d831b03 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_plein.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_plein.yaml @@ -1,12 +1,17 @@ description: Taux plein de la contribution sociale généralisée (CSG) imposable sur les allocations chômage -values: - 1997-01-01: - value: 0.024 +brackets: +- threshold: + 1997-01-01: + value: 0 + rate: + 1997-01-01: + value: 0.024 metadata: short_label: Taux plein last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on unemployment incomes - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: - title: Article L136-8 du Code de la sécurité sociale (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_reduit.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_reduit.yaml index 96a30e1aa6..3b365fd5c1 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_reduit.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/allocations_chomage/imposable/taux_reduit.yaml @@ -1,12 +1,17 @@ description: Taux réduit de la contribution sociale généralisée (CSG) imposable sur les revenus d'activité -values: - 1997-01-01: - value: 0 +brackets: +- threshold: + 1997-01-01: + value: 0 + rate: + 1997-01-01: + value: 0 metadata: short_label: Taux réduit last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on work incomes - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: - title: Article L136-8 du Code de la sécurité sociale (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_median.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_median.yaml index e4b67f6fe9..67b4c8a3ef 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_median.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_median.yaml @@ -1,14 +1,19 @@ description: Taux médian de la contribution sociale généralisée (CSG) déductible sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: null - 2019-01-01: - value: 0.042 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 2019-01-01: + value: 0.042 metadata: short_label: Taux médian last_value_still_valid_on: "2024-07-24" ipp_csv_id: csg_pens_median_deductible - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 2019-01-01: - title: Article 154 quinquies du Code général des impôts (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_plein.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_plein.yaml index 571ce3eb67..92f63617c2 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_plein.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_plein.yaml @@ -1,20 +1,25 @@ description: Taux plein de la contribution sociale généralisée (CSG) déductible sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: null - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.038 - 2005-01-01: - value: 0.042 - 2018-01-01: - value: 0.059 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.038 + 2005-01-01: + value: 0.042 + 2018-01-01: + value: 0.059 metadata: short_label: Taux plein last_value_still_valid_on: "2024-07-24" ipp_csv_id: csg_pens_ded - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_reduit.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_reduit.yaml index 8412bd17f7..b9c3226438 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_reduit.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/deductible/taux_reduit.yaml @@ -1,16 +1,21 @@ description: Taux réduit de la contribution sociale généralisée (CSG) déductible sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: null - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.038 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.038 metadata: short_label: Taux réduit last_value_still_valid_on: "2024-07-24" ipp_csv_id: csg_pens_red_deductible - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_median.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_median.yaml index 6616a353fa..5421354168 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_median.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_median.yaml @@ -1,11 +1,16 @@ description: Taux médian de la contribution sociale généralisée (CSG) imposable sur les pensions de retraite et d'invalidité -values: - 1997-01-01: - value: 0.024 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1997-01-01: + value: 0.024 metadata: short_label: Taux médian last_value_still_valid_on: "2024-07-24" - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: title: Article 154 quinquies du Code général des impôts (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_plein.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_plein.yaml index 08bc252b67..fa633695f8 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_plein.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_plein.yaml @@ -1,11 +1,16 @@ description: Taux plein de la contribution sociale généralisée (CSG) imposable sur les pensions de retraite et d'invalidité -values: - 1997-01-01: - value: 0.024 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1997-01-01: + value: 0.024 metadata: short_label: Taux plein last_value_still_valid_on: "2024-07-24" - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: title: Article 154 quinquies du Code général des impôts (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_reduit.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_reduit.yaml index f7a04a43b6..1162e9aff1 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_reduit.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/imposable/taux_reduit.yaml @@ -1,12 +1,17 @@ description: Taux réduit de la contribution sociale généralisée (CSG) imposable sur les pensions de retraite et d'invalidité -values: - 1997-01-01: - value: 0 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1997-01-01: + value: 0 metadata: short_label: Taux réduit last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on work incomes - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1997-01-01: - title: Article 154 quinquies du Code général des impôts (taux global) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_median.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_median.yaml index 66cea3126c..6858337246 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_median.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_median.yaml @@ -1,15 +1,20 @@ description: Taux médian de la contribution sociale généralisée (CSG) sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: null - 2019-01-01: - value: 0.066 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 2019-01-01: + value: 0.066 metadata: short_label: Taux médian global last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on replacement incomes ipp_csv_id: csg_pens_median_total - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_plein.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_plein.yaml index 67bef9ee21..f5122ab789 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_plein.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_plein.yaml @@ -1,23 +1,28 @@ description: Taux plein global de la contribution sociale généralisée (CSG) sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: 0.011 - 1993-07-01: - value: 0.024 - 1997-01-01: - value: 0.034 - 1998-01-01: - value: 0.062 - 2005-01-01: - value: 0.066 - 2018-01-01: - value: 0.083 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: 0.011 + 1993-07-01: + value: 0.024 + 1997-01-01: + value: 0.034 + 1998-01-01: + value: 0.062 + 2005-01-01: + value: 0.066 + 2018-01-01: + value: 0.083 metadata: short_label: Taux plein global last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on work incomes ipp_csv_id: csg_pens - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_reduit.yaml b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_reduit.yaml index 44b5151a2b..dc1d2411f0 100644 --- a/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_reduit.yaml +++ b/openfisca_france/parameters/prelevements_sociaux/contributions_sociales/csg/remplacement/pensions_retraite_invalidite/taux_reduit.yaml @@ -1,17 +1,22 @@ description: Taux réduit global de la contribution sociale généralisée (CSG) sur les pensions de retraite et d'invalidité -values: - 1991-02-01: - value: null - 1997-01-01: - value: 0.01 - 1998-01-01: - value: 0.038 +brackets: +- threshold: + 1991-02-01: + value: 0 + rate: + 1991-02-01: + value: null + 1997-01-01: + value: 0.01 + 1998-01-01: + value: 0.038 metadata: short_label: Taux réduit global last_value_still_valid_on: "2024-07-24" label_en: CSG - rates on work incomes ipp_csv_id: csg_pens_red - unit: /1 + rate_unit: /1 + threshold_unit: currency reference: 1991-02-01: title: Loi 90-1168 du 29/12/90, art. 127 à 135 (LF pour 1991) diff --git a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/index.yaml b/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/index.yaml deleted file mode 100644 index 4fec606a0d..0000000000 --- a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/index.yaml +++ /dev/null @@ -1,11 +0,0 @@ -description: Contribution au remboursement de la dette sociale (CRDS) sur les revenus du capital -metadata: - documentation_start: true - short_label: CRDS sur les revenus du capital - label_en: CRDS on financial income - order: - - revenus_du_patrimoine - - produits_de_placement -documentation: |- - Référence dans les codes législatifs : - Pour le taux de CRDS : l'ordonnance 96-50 du 24/01/1996 est codifiée aux articles 1600-0 G à 1600-0 J du CGI. diff --git a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/produits_de_placement.yaml b/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/produits_de_placement.yaml deleted file mode 100644 index caa9595593..0000000000 --- a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/produits_de_placement.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: Taux sur les produits de placement de la contribution au remboursement de la dette sociale (CRDS) sur les revenus du capital -values: - 1996-02-01: - value: 0.005 -metadata: - short_label: Produits de placement - last_value_still_valid_on: "1996-01-01" - label_en: CRDS on financial income - ipp_csv_id: tx_crds_rk_plac - unit: /1 - reference: - 1996-02-01: - title: Ordonnance 96-50 du 24/01/1996, art. 15, 16 et 19 diff --git a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/revenus_du_patrimoine.yaml b/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/revenus_du_patrimoine.yaml deleted file mode 100644 index 590bc086b5..0000000000 --- a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/crds/revenus_du_patrimoine.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: Taux sur les revenus du patrimoine de la contribution au remboursement de la dette sociale (CRDS) sur les revenus du capital -values: - 1996-02-01: - value: 0.005 -metadata: - short_label: Taux CRDS capital revenus du patrimoine - last_value_still_valid_on: "1996-01-01" - label_en: CRDS on financial income - ipp_csv_id: tx_crds_rk_patr - unit: /1 - reference: - 1996-02-01: - title: Ordonnance 96-50 du 24/01/1996, art. 15, 16 et 19 diff --git a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml b/openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml index 9417457144..795abe4600 100644 --- a/openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml +++ b/openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml @@ -4,7 +4,6 @@ metadata: label_en: Social levies on financial income order: - csg - - crds - prelevement_social_exceptionnel_cnav - contribution_sociale_permanente_cnaf - contribution_sociale_cnav diff --git a/tests/formulas/base_a_net.yaml b/tests/formulas/base_a_net.yaml index 6df1396cbb..92561fcc67 100644 --- a/tests/formulas/base_a_net.yaml +++ b/tests/formulas/base_a_net.yaml @@ -5,7 +5,7 @@ ### privé non cadre - name: 1PSS_2018_privenoncadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311 @@ -45,7 +45,7 @@ ### privé cadre - name: 1PSS_2018_privecadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311 @@ -85,7 +85,7 @@ ### public - name: 1PSS_2018_public - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: traitement_indiciaire_brut: 3311 @@ -130,7 +130,7 @@ ### test présence hsup - name: 1PSS_2018_privenoncadre_hsup - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311 @@ -171,7 +171,7 @@ ### temps partiel - name: 1PSS_2018_privenoncadre_tpspart - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311 @@ -213,7 +213,7 @@ ### privé non cadre - name: 4PSS_2018_privenoncadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 13244 @@ -253,7 +253,7 @@ ### privé cadre - name: 4PSS_2018_privecadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 13244 @@ -293,7 +293,7 @@ ### public - name: 4PSS_2018_public - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: traitement_indiciaire_brut: 13244 @@ -340,7 +340,7 @@ ### privé non cadre - name: 8PSS_2018_privenoncadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311*8 @@ -380,7 +380,7 @@ ### privé cadre - name: 8PSS_2018_privecadre - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: salaire_de_base: 3311*8 @@ -420,7 +420,7 @@ ### public - name: 8PSS_2018_public - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2018-01 input: traitement_indiciaire_brut: 3311*8 @@ -466,7 +466,7 @@ ## 1 PSS - name: 1PSS_2021 - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2021-01 input: salaire_de_base: 3428 @@ -507,7 +507,7 @@ ## >1 PSS - name: justabove1PSS_2021 - absolute_error_margin: 0.05 + absolute_error_margin: 0.005 period: 2021-01 input: salaire_de_base: 3429