Skip to content

Commit

Permalink
Réductions et crédits Impôt sur le Revenu (partie 1) (#2383)
Browse files Browse the repository at this point in the history
  • Loading branch information
DorineLam authored Nov 18, 2024
2 parents a00a039 + d4df7ef commit 13a399e
Show file tree
Hide file tree
Showing 123 changed files with 574 additions and 339 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

### 169.6.0 [2383](https://github.com/openfisca/openfisca-france/pull/2383)

* Changement intermédiaire
* Périodes concernées : toutes.
* Zones impactées :
- `/model/prelevements_obligatoires/impot_revenu`.
- `parameters/impot_revenu/calcul_reductions_impots`.
- `parameters/impot_revenu/credits_impots`

* Détails :
- Début d'une modification des labels et références et dossiers des crédits et réductions d'impôts, dans l'objectif de rendre plus clairs les dispositifs et de mettre des dossiers au même niveau.
- 3 changements majeurs :
- Création d'un nouveau dossier des paramètres du crédit d'impôt pour employé à domicile, tout en gardant le dossier des paramètres initial dans les réductions d'impôt : https://github.com/openfisca/openfisca-france/pull/2383/commits/a72ac419f374c0d9474c6d75012121b938733d1e
- Suppression des paramètres en doublons et non utilisés dans les formules : https://github.com/openfisca/openfisca-france/pull/2383/commits/ba3a1b89622cdb753ec659cb5b243ec065cfbf54, https://github.com/openfisca/openfisca-france/pull/2383/commits/8b0d672f43a112c5a25ff019841875e69ed697d2
- Utilisation du plafond par foyer fiscal au lieu du plafond individuel pour la réduction d'impôt sur les dons aux parties politiques https://github.com/openfisca/openfisca-france/pull/2383/commits/9e617a532bebae96f048c0f2db1d99161b415108

### 169.5.0 [2370](https://github.com/openfisca/openfisca-france/pull/2370)

* Évolution du système socio-fiscal.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1932,6 +1932,7 @@ class quaenv(Variable):
entity = FoyerFiscal
label = 'Crédits d’impôt pour dépenses en faveur de la qualité environnementale (2005 - 2014) / de la transition energétique (2014 - ) '
definition_period = YEAR
end = '2019-12-31'

def formula_2005_01_01(foyer_fiscal, period, parameters):
'''
Expand Down Expand Up @@ -2766,7 +2767,7 @@ def formula_2007_01_01(foyer_fiscal, period, parameters):
f7db = foyer_fiscal('f7db', period)
f7dg = foyer_fiscal('f7dg', period)
f7dl = foyer_fiscal('f7dl', period)
P = parameters(period).impot_revenu.calcul_reductions_impots.emploi_salarie_domicile
P = parameters(period).impot_revenu.credits_impots.emploi_salarie_domicile

isinvalid = f7dg
nbpacmin = nb_pac_majoration_plafond + f7dl
Expand All @@ -2787,13 +2788,13 @@ def formula_2009_01_01(foyer_fiscal, period, parameters):
f7dg = foyer_fiscal('f7dg', period)
f7dl = foyer_fiscal('f7dl', period)
f7dq = foyer_fiscal('f7dq', period)
P = parameters(period).impot_revenu.calcul_reductions_impots.emploi_salarie_domicile
P = parameters(period).impot_revenu.credits_impots.emploi_salarie_domicile

isinvalid = f7dg
annee1 = f7dq
nbpacmin = nb_pac_majoration_plafond + f7dl
maxBase = P.plafond * not_(annee1) + P.plafond_1ere_annee * annee1
maxDuMaxNonInv = P.plafond_maximum * not_(annee1) + P.plafond_invalides_1ere_annee * annee1
maxDuMaxNonInv = P.plafond_maximum * not_(annee1) + P.plafond_maximum_1ere_annee * annee1
maxNonInv = min_(maxBase + P.increment_plafond * nbpacmin, maxDuMaxNonInv)
maxEffectif = maxNonInv * not_(isinvalid) + P.plafond_invalides * isinvalid

Expand All @@ -2816,15 +2817,15 @@ def formula_2011_01_01(foyer_fiscal, period, parameters):
annee1 = foyer_fiscal('f7dq', period)
invalide = foyer_fiscal('f7dg', period)

P = parameters(period).impot_revenu.calcul_reductions_impots.emploi_salarie_domicile
P = parameters(period).impot_revenu.credits_impots.emploi_salarie_domicile

# détérminer le plafond

if invalide.any():
plaf = P.plafond_invalides
else:
if annee1.any():
plaf = min_(P.plafond_invalides_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
plaf = min_(P.plafond_maximum_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
else:
plaf = min_(P.plafond_maximum, P.plafond + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))

Expand All @@ -2847,14 +2848,14 @@ def formula_2020_01_01(foyer_fiscal, period, parameters):
annee1 = foyer_fiscal('f7dq', period)
invalide = foyer_fiscal('f7dg', period)

P = parameters(period).impot_revenu.calcul_reductions_impots.emploi_salarie_domicile
P = parameters(period).impot_revenu.credits_impots.emploi_salarie_domicile

# détérminer le plafond
if invalide.any():
plaf = P.plafond_invalides
else:
if annee1.any():
plaf = min_(P.plafond_invalides_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
plaf = min_(P.plafond_maximum_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
else:
plaf = min_(P.plafond_maximum, P.plafond + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,8 @@ def formula_2002_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2004_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -215,8 +215,8 @@ def formula_2004_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf + f7xs
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2005_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -230,8 +230,8 @@ def formula_2005_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf + f7xs + f7xt
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2006_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -246,8 +246,8 @@ def formula_2006_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf + f7xs + f7xt + f7xu
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2007_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -263,8 +263,8 @@ def formula_2007_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf + f7xs + f7xt + f7xu + f7xw
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2008_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -281,8 +281,8 @@ def formula_2008_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons

base = f7uf + f7xs + f7xt + f7xu + f7xw + f7xy
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2011_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -304,8 +304,8 @@ def formula_2011_01_01(foyer_fiscal, period, parameters):

report_f7va_f7ud = max_(0, f7va + f7ud - plafond_reduction_don_coluche)
base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2012_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -327,8 +327,8 @@ def formula_2012_01_01(foyer_fiscal, period, parameters):

report_f7va_f7ud = max_(0, f7va + f7ud - plafond_reduction_don_coluche)
base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud
max1 = P.dons_interet_general.plafond * rni
return P.dons_aux_oeuvres.taux * min_(base, max1)
max1 = P.plafond_dons * rni
return P.taux_reduction * min_(base, max1)

def formula_2013_01_01(foyer_fiscal, period, parameters):
'''
Expand Down Expand Up @@ -358,9 +358,9 @@ def formula_2013_01_01(foyer_fiscal, period, parameters):
dons_partipol = min_(P.dons_aux_partis_politiques.plafond_seul * (1 + maries_ou_pacses), f7uh)

base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud + dons_partipol
max = P.dons_interet_general.plafond * rni
max = P.plafond_dons * rni

return red_7ud_7va + P.dons_aux_oeuvres.taux * min_(base, max)
return red_7ud_7va + P.taux_reduction * min_(base, max)

def formula_2019_01_01(foyer_fiscal, period, parameters):
'''
Expand Down Expand Up @@ -395,9 +395,9 @@ def formula_2019_01_01(foyer_fiscal, period, parameters):
dons_partipol = min_(P.dons_aux_partis_politiques.plafond_seul * (1 + maries_ou_pacses), f7uh)

base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud + dons_partipol + report_notre_dame
max = P.dons_interet_general.plafond * rni
max = P.plafond_dons * rni

return red_notre_dame + red_7ud_7va + P.dons_aux_oeuvres.taux * min_(base, max)
return red_notre_dame + red_7ud_7va + P.taux_reduction * min_(base, max)

def formula_2020_01_01(foyer_fiscal, period, parameters):
'''
Expand Down Expand Up @@ -427,9 +427,9 @@ def formula_2020_01_01(foyer_fiscal, period, parameters):
dons_partipol = min_(P.dons_aux_partis_politiques.plafond_seul * (1 + maries_ou_pacses), f7uh)

base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud + dons_partipol
max = P.dons_interet_general.plafond * rni
max = P.plafond_dons * rni

return red_7ud_7va + P.dons_aux_oeuvres.taux * min_(base, max)
return red_7ud_7va + P.taux_reduction * min_(base, max)

def formula_2021_01_01(foyer_fiscal, period, parameters):
'''
Expand All @@ -452,20 +452,19 @@ def formula_2021_01_01(foyer_fiscal, period, parameters):
P = parameters(period).impot_revenu.calcul_reductions_impots.dons
plafond_reduction_don_coluche = parameters(period).impot_revenu.calcul_reductions_impots.dons.dons_coluche.plafond
taux_donapd = parameters(period).impot_revenu.calcul_reductions_impots.dons.dons_coluche.taux
maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)

red_7ud_7va = min_(plafond_reduction_don_coluche, f7va + f7ud) * taux_donapd
report_f7va_f7ud = max_(0, f7va + f7ud - plafond_reduction_don_coluche)

red_7uj = min_(P.dons_assoc_cult, f7uj) * taux_donapd
report_7uj = max_(0, f7uj - P.dons_assoc_cult)
red_7uj = min_(P.dons_cultuels.plafond_dons, f7uj) * taux_donapd
report_7uj = max_(0, f7uj - P.dons_cultuels.plafond_dons)

dons_partipol = min_(P.dons_aux_partis_politiques.plafond_seul * (1 + maries_ou_pacses), f7uh)
dons_partipol = min_(P.dons_aux_partis_politiques.plafond_foyer, f7uh)

base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy + report_f7va_f7ud + report_7uj + dons_partipol
max = P.dons_interet_general.plafond * rni
max = P.plafond_dons * rni

return red_7ud_7va + red_7uj + P.dons_aux_oeuvres.taux * min_(base, max)
return red_7ud_7va + red_7uj + P.taux_reduction * min_(base, max)


class reduction_enfants_scolarises(Variable):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3658,7 +3658,7 @@ def formula_2009_01_01(foyer_fiscal, period, parameters):

nbpacmin = nb_pac_majoration_plafond + f7dl
max_base = P.plafond * not_(annee1) + P.plafond_1ere_annee * annee1
max_du_max_non_inv = P.plafond_maximum * not_(annee1) + P.plafond_invalides_1ere_annee * annee1
max_du_max_non_inv = P.plafond_maximum * not_(annee1) + P.plafond_maximum_1ere_annee * annee1
max_non_inv = min_(max_base + P.increment_plafond * nbpacmin, max_du_max_non_inv)
max_non_inv2 = min_(max_base + P.increment_plafond * nb_pac_majoration_plafond, max_du_max_non_inv)
max_effectif = max_non_inv * not_(invalide) + P.plafond_invalides * invalide
Expand Down Expand Up @@ -3693,7 +3693,7 @@ def formula_2011_01_01(foyer_fiscal, period, parameters):
plaf = P.plafond_invalides
else:
if annee1.any():
plaf = min_(P.plafond_invalides_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
plaf = min_(P.plafond_maximum_1ere_annee, P.plafond_1ere_annee + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))
else:
plaf = min_(P.plafond_maximum, P.plafond + P.increment_plafond * (nb_pac_majoration_plafond + f7dl))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
description: Réduction d'impôt sur les frais de comptabilité et d'adhésion CGA
description: Réduction d'impôt sur les frais de comptabilité et d'adhésion de centres de gestion agréés, d'associations agréées ou d'organismes mixtes de gestion agréés
metadata:
short_label: Frais comptabilité et CGA
short_label: Frais de comptabilité et d’adhésion à un organisme agréé
order:
- plafond
documentation: |-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
description: Montant plafond (par exploitation) de la réduction d'impôt sur les frais de comptabilité et d'adhésion CGA
description: Montant plafond (par exploitation) de la réduction d'impôt sur les frais de comptabilité et d'adhésion de centres de gestion agréés, d'associations agréées ou d'organismes mixtes de gestion agréés
values:
1977-01-01:
value: null
Expand All @@ -11,9 +11,13 @@ values:
2001-01-01:
value: 915
metadata:
short_label: Montant
short_label: Plafond de réduction d'impôt
ipp_csv_id: frais_compta
unit: currency_next_year
reference:
2001-01-01:
title: Article 199 quater B du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000033805582
notes:
1994-01-01:
- title: "plaf_formachef: il existe un plafonement trienal de 10 000 FRF pour les conjoints collaborateurs du chef d'entreprise"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
description: Réduction d'impôts sur les intérêts d'emprunt pour reprise de société
metadata:
short_label: Intérêts emprunt reprise société
short_label: Intérêts des emprunts souscrits pour la reprise d'une entreprise
order:
- taux
- plafond
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ metadata:
short_label: Plafond
ipp_csv_id: plaf_repsoc
unit: currency_next_year
reference:
2008-01-01:
title: Article 199 terdecies-0 B du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000036428982/2018-01-01/
documentation: |-
Intérêts d'emprunts pour reprise de société : plafond à doubler pour un couple
Art. 199 terdecies-0 B du CGI. Loi 2003-721 du 1 août 2003 - art. 42 JORF 5 août 2003
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ metadata:
short_label: Taux
ipp_csv_id: tx_repsoc
unit: /1
reference:
2004-01-01:
title: Article 199 terdecies-0 B du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000036428982/2018-01-01/
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
description: Réduction d'impôt sur les intérêts de paiements différés accordés aux agriculteurs
description: Réduction d'impôt sur les intérêts de paiements différés accordés lors de la transmission d'une exploitation agricole
metadata:
short_label: Intérêts paiements différés agriculteurs
short_label: Intérêts pour paiement différé accordé aux agriculteurs
order:
- taux
- plafond
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,8 @@ metadata:
short_label: Plafond
ipp_csv_id: plaf_intagri
unit: currency_next_year
reference:
2005-01-01:
title: Article 199 vicies A du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006303322/2006-01-06
documentation: "Intérêts pour paiement différé accordé aux agriculteurs : plafond à doubler pour couple"
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ metadata:
short_label: Taux
ipp_csv_id: taux_intagri
unit: /1
reference:
2005-01-01:
title: Article 199 vicies A du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006303322/2006-01-06
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@ metadata:
- plafond
documentation: |-
Travaux de réhabilitation des résidences de tourisme : Article 199 decies G bis.
Pour les travaux effectués entre le 1er Janvier 2017 et le 31 Décembre 2019 par des propriétaires de logements situés dans une résidence touristique,
destiné à la location et achevé depuis au moins 15 ans. La décision d'effectuer les travaux doit être décidée en assemblée générale des copropriétaires.
Pour les travaux effectués entre le 1er Janvier 2017 et le 31 Décembre 2019 par des propriétaires de logements situés dans une résidence touristique, destiné à la location et achevé depuis au moins 15 ans. La décision d'effectuer les travaux doit être décidée en assemblée générale des copropriétaires.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ values:
value: null
2017-01-01:
value: 22000
2024-01-01:
null
metadata:
short_label: Plafond
ipp_csv_id: plaf_rehab_touristique
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ values:
value: null
2017-01-01:
value: 0.2
2024-01-01:
null
metadata:
short_label: Taux
ipp_csv_id: tx_rehab_touristique
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
description: Incrément de la réduction d'impôts sur rente survie et contrat d'épargne handicap
description: Majoration du plafond de la réduction d'impôts sur rente survie et contrat d'épargne handicap par personne à charge
values:
1977-01-01:
value: null
Expand All @@ -11,9 +11,13 @@ values:
2004-01-01:
value: 300
metadata:
short_label: Incrément
short_label: Majoration du plafond par personne à charge
ipp_csv_id: increment_survie
unit: currency_next_year
reference:
2004-01-01:
title: Article 199 septies I. du Code général des impôts
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000048806424/2024-01-01/
notes:
1983-01-01:
- title: À partir de 1984, les bénéfices liés aux primes d'assurances vie et rentes-survie prennent la forme d'une réduction d'împôt, alors qu'ils consistaient en une déduction du revenu net.
- title: À partir de 1984, les bénéfices liés aux primes d'assurances vie et rentes-survie prennent la forme d'une réduction d'impôt, alors qu'ils consistaient en une déduction du revenu net.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
description: Réduction d'impôts sur rente survie et contrat d'épargne handicap
metadata:
short_label: Rente survie
short_label: Primes des contrats de rente-survie et d’épargne-handicap
order:
- taux
- plafond
Expand Down
Loading

0 comments on commit 13a399e

Please sign in to comment.