Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Édition du paramètre impot_revenu.bareme_ir_depuis_1945.bareme #2317

Open
wants to merge 41 commits into
base: wip-leximpact
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
151d303
ajoute des variables de csg par catégorie de revenus
clallemand Sep 7, 2023
0c30a7d
fix lint
clallemand Sep 8, 2023
436d3b8
modifie csg en appelant les nouvelles variables
clallemand Sep 18, 2023
1795c24
fix output add csg
clallemand Sep 20, 2023
306011a
fix set input
clallemand Sep 20, 2023
02983e9
corrige variables csg ajoutées
clallemand May 22, 2024
2b6239d
ajout déciles de niveau de vie
clallemand Apr 22, 2024
68e3e5e
ajoute valeurs niveau de vie pour 2024
clallemand Apr 23, 2024
702b6c5
Merge branch 'ajout_deciles_niveau_vie' into wip-leximpact
clallemand Jun 12, 2024
9fbeadb
fix order
clallemand Jun 12, 2024
e36b60c
Bump again
benjello May 23, 2024
442f030
Clean pélevement sociaux régime général
benjello May 24, 2024
9cdb8e3
Remove unnecessary level in prelevements_sociaux/cotisations_securite…
benjello May 24, 2024
47ea698
Typo
benjello May 31, 2024
8747244
Fix test
benjello May 31, 2024
500b7e6
Migrate ASF
benjello Jun 3, 2024
310a524
Clean AGIRC-ARRCO
benjello Jun 4, 2024
82971c6
More homogeneisation
benjello Jun 5, 2024
3881ae6
More Homogenisation
benjello Jun 5, 2024
9ca3972
Clean AGFF
benjello Jun 6, 2024
a9de0b1
Clean some refs
benjello Jun 10, 2024
0cf8ac8
Fix arrco
benjello Jun 10, 2024
ce333f9
Clean Arrco
benjello Jun 10, 2024
efd2fd8
Fix label and index arrco
benjello Jun 10, 2024
b6681a9
More cleaning
benjello Jun 11, 2024
24eb5aa
Remove problematic file
benjello Jun 11, 2024
3c4e21a
More cleaning
benjello Jun 11, 2024
be816a9
Reoder mmid_pl
benjello Jun 12, 2024
4db3091
Imrove notes
benjello Jun 12, 2024
eaeebdc
Fix indent
benjello Jun 12, 2024
e5059be
Bump
benjello Jun 12, 2024
885dee9
wip
clallemand Jun 17, 2024
7b49590
wip
clallemand Jun 17, 2024
91a0226
ajout variables vieillesse_salarie et vieillesse_employeur
clallemand Jun 17, 2024
f8285b3
wip
clallemand Jun 17, 2024
c8a0fd4
fix
clallemand Jun 19, 2024
5d9d02b
supprime cotisations_contributions_employeur de la décomposition
clallemand Jun 19, 2024
32a6d81
fix lint
clallemand Jun 19, 2024
4b9f560
refacto cotisations employeurs V2
clallemand Jun 19, 2024
edda202
fix
clallemand Jun 19, 2024
c132faa
Édition du paramètre impot_revenu.bareme_ir_depuis_1945.bareme
eraviart Jun 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

# 167.0.1 [2312](https://github.com/openfisca/openfisca-france/pull/2312)

* Changement mineur.
* Périodes concernées : toutes.
* Zones impactées : `openfisca_france/parameters/prelevements_sociaux`.
* Détails :
- Nettoyage des labels (dates, majuscules, description)

# 167.0.0 [2286](https://github.com/openfisca/openfisca-france/pull/2286)

* Évolution du système socio-fiscal et corrections.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,86 @@ 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
)

# 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
Expand Down
221 changes: 216 additions & 5 deletions openfisca_france/model/revenus/activite/salarie.py
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,7 @@ class avantage_en_nature_valeur_forfaitaire(Variable):
definition_period = MONTH
set_input = set_input_divide_by_period

# TODO: coplete this function
# TODO: complete this function
def formula(individu, period, parameters):
period = period
avantage_en_nature_valeur_reelle = individu('avantage_en_nature_valeur_reelle', period)
Expand Down Expand Up @@ -1507,16 +1507,227 @@ def formula_2022_07_01(individu, period, parameters):
salaire_super_brut_hors_allegements = individu('salaire_super_brut_hors_allegements', period)
exonerations = individu('exonerations', period)
allegement_general = individu('allegement_general', period, options = [ADD])
prime_partage_valeur_exoneree = individu('prime_partage_valeur_exoneree', period, options=[DIVIDE])
prime_partage_valeur_exoneree_exceptionnelle = individu('prime_partage_valeur_exoneree_exceptionnelle', period, options=[DIVIDE])
return (
salaire_super_brut_hors_allegements
- exonerations
- allegement_general
+ prime_partage_valeur_exoneree
+ 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)
pension_employeur = individu('pension_employeur', period)
cotisations_employeur_retraite_complementaire = individu('cotisations_employeur_retraite_complementaire', 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
- pension_employeur
- cotisations_employeur_retraite_complementaire
- 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 (
prime_partage_valeur_exoneree
+ primes_fonction_publique
+ primes_salaires
+ 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_plafonnee_employeur = individu('vieillesse_plafonnee_employeur', period)
vieillesse_deplafonnee_employeur = individu('vieillesse_deplafonnee_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_plafonnee_employeur
+ vieillesse_deplafonnee_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 (
conge_individuel_formation_cdd
+ contribution_supplementaire_apprentissage
+ financement_organisations_syndicales
+ taxe_salaires
+ forfait_social
+ participation_effort_construction
+ prevoyance_obligatoire_cadre
+ complementaire_sante_employeur
+ versement_transport
+ contribution_unique_formation_professionnelle_alternance
+ fonds_emploi_hospitalier
+ ati_atiacl
+ fnal
)


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)
rafp_employeur = individu('rafp_employeur', period)

return (
agirc_arrco_employeur
+ contribution_equilibre_general_employeur
+ contribution_equilibre_technique_employeur
+ apec_employeur
+ ircantec_employeur
+ rafp_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
Expand Down
Loading
Loading