@@ -43,7 +43,40 @@ def formula_2025_01_01(foyer_fiscal, period, parameters):
4343 # pour chaque année, le revenu mentionné au présent II.
4444
4545 return rfr
46+ def formula_2026_01_01 (foyer_fiscal , period , parameters ):
47+ # LF 2026 : Modifications de l'article 224 CGI
48+ # II. – Le revenu mentionné au I s'entend du revenu fiscal de référence défini au 1° du IV de l'article 1417,
49+ # sans qu'il soit fait application des règles de quotient définies au I de l'article 163-0 A,
50+ rfr = foyer_fiscal ('rfr' , period )
51+
52+ # [leximpact : TODO - exclure le système du quotient (art. 163-0 A) du RFR]
53+ # Le RFR doit être calculé sans application des règles de quotient pour revenus exceptionnels
54+
55+ # diminué du montant :
56+ # 1° Des abattements mentionnés au a bis du même 1° autres que ceux mentionnés aux 1 ter ou 1 quater de l'article 150-0 D ;
57+ # 2° Des bénéfices exonérés mentionnés au b du 1° du IV de l'article 1417 ;
58+ # 3° Des produits et revenus exonérés en application de l'article 155 B ;
59+ # 4° Du résultat net bénéficiaire déterminé en application de l'article 238 effectivement imposé au taux de 10 % ;
60+ # 5° Des produits imposés au taux de 10 % mentionnés au second alinéa du I de l'article 93 quater ;
61+ # 6° Des plus-values mentionnées au I de l'article 150-0 B ter pour lesquelles le report d'imposition expire ;
62+ # 7° Des produits et revenus exonérés en application d'une convention internationale relative aux doubles impositions.
63+
64+ # [leximpact : condition revenus exceptionnels - inchangée]
65+ # Pour la détermination du revenu mentionné au présent II,
66+ # les revenus qui, par leur nature, ne sont pas susceptibles d'être recueillis annuellement
67+ # et dont le montant dépasse la moyenne des revenus nets d'après lesquels le contribuable
68+ # a été soumis à l'impôt sur le revenu au titre des trois dernières années,
69+ # sont retenus pour le quart de leur montant.
4670
71+ # [leximpact : nouvelles règles de changement de situation familiale (LF 2026)]
72+ # En cas de modification de la situation de famille du contribuable au cours de l'année d'imposition
73+ # ou des trois années précédentes (et non plus deux), les revenus nets sont ceux :
74+ # a) Du couple passible de la contribution et des foyers fiscaux auxquels les conjoints ou les partenaires
75+ # de ce couple ont appartenu au cours de l'année d'imposition, ou des trois années précédentes en cas d'union.
76+ # b) Du contribuable passible de la contribution et des foyers fiscaux auxquels il a appartenu au cours
77+ # de l'année d'imposition, ou des trois années précédentes en cas de divorce, de séparation ou de décès.
78+
79+ return rfr
4780
4881class contribution_differentielle_hauts_revenus_eligible (Variable ):
4982 value_type = float
@@ -140,6 +173,40 @@ def formula_2025_01_01(foyer_fiscal, period, parameters):
140173 + f7ik + f7il + f7gq + f7gr + f7fq + f7ft + f7fm + f7fl + f7fy )
141174 return reduction_d_impot_majorantes
142175
176+ def formula_2026_01_01 (foyer_fiscal , period , parameters ):
177+ # LF 2026 : IV.A.2° - Ajout de l'article 200 (dons aux oeuvres) aux réductions majorantes
178+ # « à l'article 200 » est inséré après « I, »
179+ f8wt = foyer_fiscal ('f8wt' , period )
180+ f8tb = foyer_fiscal ('f8tb' , period )
181+ f8tl = foyer_fiscal ('f8tl' , period )
182+ f8tp = foyer_fiscal ('f8tp' , period )
183+ f8uz = foyer_fiscal ('f8uz' , period )
184+ f8wa = foyer_fiscal ('f8wa' , period )
185+ f8wd = foyer_fiscal ('f8wd' , period )
186+ f8wr = foyer_fiscal ('f8wr' , period )
187+ f8wc = foyer_fiscal ('f8wc' , period )
188+ f8te = foyer_fiscal ('f8te' , period )
189+ interets_emprunt_reprise_societe = foyer_fiscal ('interets_emprunt_reprise_societe' , period )
190+ f7ik = foyer_fiscal ('f7ik' , period )
191+ f7il = foyer_fiscal ('f7il' , period )
192+ f7gq = foyer_fiscal ('f7gq' , period )
193+ f7gr = foyer_fiscal ('f7gr' , period )
194+ f7fq = foyer_fiscal ('f7fq' , period )
195+ f7ft = foyer_fiscal ('f7ft' , period )
196+ f7fm = foyer_fiscal ('f7fm' , period )
197+ f7fl = foyer_fiscal ('f7fl' , period )
198+ f7fy = foyer_fiscal ('f7fy' , period )
199+
200+ # LF 2026 : Ajout de l'article 200 (réduction d'impôt pour dons)
201+ # Les dons aux oeuvres (art. 200) sont maintenant inclus dans les réductions majorantes
202+ reductions_dons = foyer_fiscal ('reductions_dons' , period )
203+
204+ reduction_d_impot_majorantes = (f8wt + f8tb + f8tl + f8tp + f8uz
205+ + f8wa + f8wd + f8wr + f8wc + f8te + interets_emprunt_reprise_societe
206+ + f7ik + f7il + f7gq + f7gr + f7fq + f7ft + f7fm + f7fl + f7fy
207+ + reductions_dons )
208+ return reduction_d_impot_majorantes
209+
143210
144211class contribution_differentielle_hauts_revenus_decote (Variable ):
145212 value_type = float
@@ -328,3 +395,148 @@ def formula_2025_01_01(foyer_fiscal, period, parameters): # Sur revenus 2025
328395 contribution_differentielle_hauts_revenus_eligible
329396 * contribution_differentielle_hauts_revenus_montant
330397 )
398+ def formula_2026_01_01 (foyer_fiscal , period , parameters ):
399+ # LF 2026 : Modifications de l'article 224 CGI
400+ contribution_differentielle_hauts_revenus_eligible = foyer_fiscal (
401+ 'contribution_differentielle_hauts_revenus_eligible' , period
402+ )
403+
404+ # III. – La contribution mentionnée au I est égale à la différence, lorsqu'elle est positive, entre :
405+ # 1° Le montant résultant de l'application d'un taux de 20 % au revenu défini au II ;
406+ taux = parameters (
407+ period
408+ ).impot_revenu .contributions_exceptionnelles .contribution_differentielle_hauts_revenus .taux_cdhr
409+ contribution_differentielle_hauts_revenus_ressources = foyer_fiscal (
410+ 'contribution_differentielle_hauts_revenus_ressources' , period
411+ )
412+
413+ # [on soustrait la décote définie en V]
414+ contribution_differentielle_hauts_revenus_decote = foyer_fiscal (
415+ 'contribution_differentielle_hauts_revenus_decote' , period
416+ )
417+ impot_cible_apres_decote = (
418+ contribution_differentielle_hauts_revenus_ressources * taux
419+ ) - contribution_differentielle_hauts_revenus_decote
420+
421+ # 2° Et le montant résultant de la somme de l'impôt sur le revenu et de la contribution prévue à l'article
422+ # 223 sexies définis au IV ainsi que des prélèvements libératoires de l'impôt sur le revenu
423+ # mentionnés au c du 1° du IV de l'article 1417,
424+ contribution_exceptionnelle_hauts_revenus = foyer_fiscal (
425+ 'contribution_exceptionnelle_hauts_revenus' , period
426+ )
427+ pfu = foyer_fiscal ('prelevement_forfaitaire_unique_ir' , period )
428+ prelevement_forfaitaire_liberatoire = - 1 * foyer_fiscal (
429+ 'prelevement_forfaitaire_liberatoire' , period
430+ )
431+ ip_net = foyer_fiscal ('ip_net' , period )
432+
433+ # LF 2026 IV.A dernier alinéa : L'impôt sur le revenu est minoré du montant de l'imposition
434+ # se rapportant aux plus-values mentionnées au I de l'article 150-0 B ter pour lesquelles le report d'imposition expire.
435+ # [leximpact : TODO - implémenter la minoration pour PV en report 150-0 B ter]
436+ minoration_pv_report = 0 # À implémenter si variable disponible
437+
438+ impot_avant_creation_cdhr = (
439+ ip_net
440+ + pfu
441+ + prelevement_forfaitaire_liberatoire
442+ + contribution_exceptionnelle_hauts_revenus
443+ + foyer_fiscal (
444+ 'contribution_differentielle_hauts_revenus_majoration' , period
445+ )
446+ + foyer_fiscal (
447+ 'contribution_differentielle_hauts_revenus_majoration_impot' , period
448+ )
449+ - minoration_pv_report
450+ )
451+ contribution_differentielle_hauts_revenus_montant = max_ (
452+ impot_cible_apres_decote - impot_avant_creation_cdhr , 0
453+ )
454+
455+ # LF 2026 : IV.B - Nouvelles règles pour la CEHR
456+ # B. – Pour la détermination de la contribution mentionnée au 2° du III du présent article :
457+ # 1° Il n'est pas fait application du 1 du II de l'article 223 sexies ; (inchangé)
458+ # 2° La contribution est minorée de la part de son montant se rapportant aux éléments mentionnés aux 1° à 7° du II ;
459+ # 3° La contribution se rapportant aux revenus remplissant les conditions prévues au neuvième alinéa du même II
460+ # est retenue pour le quart de son montant.
461+ # [leximpact : TODO - implémenter les minorations de la CEHR pour éléments du II et revenus exceptionnels]
462+
463+ return (
464+ contribution_differentielle_hauts_revenus_eligible
465+ * contribution_differentielle_hauts_revenus_montant
466+ )
467+
468+
469+ class contribution_differentielle_hauts_revenus_acompte (Variable ):
470+ value_type = float
471+ entity = FoyerFiscal
472+ label = "Acompte de la contribution différentielle sur les hauts revenus (CDHR)"
473+ reference = 'https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000051200465'
474+ definition_period = YEAR
475+ calculate_output = calculate_output_divide
476+ documentation = '''
477+ LF 2026 : III bis. – A. – 1. La contribution mentionnée au I de l'article 224 du code
478+ général des impôts donne lieu au versement d'un acompte entre le 1er et le 15 décembre
479+ de l'année d'imposition.
480+ Cet acompte est égal à 95 % du montant de la contribution estimé par le contribuable.
481+ '''
482+
483+ def formula_2026_01_01 (foyer_fiscal , period , parameters ):
484+ # L'acompte est égal à 95 % du montant de la contribution estimée par le contribuable
485+ cdhr_parameters = parameters (
486+ period
487+ ).impot_revenu .contributions_exceptionnelles .contribution_differentielle_hauts_revenus
488+ taux_acompte = cdhr_parameters .taux_acompte # 0.95
489+
490+ cdhr = foyer_fiscal ('contribution_differentielle_hauts_revenus' , period )
491+ return cdhr * taux_acompte
492+
493+
494+ class contribution_differentielle_hauts_revenus_penalite_acompte (Variable ):
495+ value_type = float
496+ entity = FoyerFiscal
497+ label = "Pénalité sur l'acompte de la CDHR en cas de défaut, retard ou sous-estimation"
498+ reference = 'https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000051200465'
499+ definition_period = YEAR
500+ calculate_output = calculate_output_divide
501+ documentation = '''
502+ LF 2026 : III bis. – C. – 1. Par dérogation au chapitre II du livre II du code général des impôts,
503+ une pénalité prenant la forme d'une majoration de 20 % s'applique :
504+ a) En cas de défaut ou de retard de paiement de l'acompte ;
505+ b) Lorsque le montant de l'acompte versé s'avère inférieur, de plus de 20 %,
506+ à 95 % du montant de la contribution prévue à l'article 224 du code général des impôts.
507+
508+ Cette variable calcule le montant de la pénalité potentielle.
509+ '''
510+
511+ def formula_2026_01_01 (foyer_fiscal , period , parameters ):
512+ # Pénalité de 20% si acompte versé < 95% * CDHR - 20% (soit < 76% de la CDHR)
513+ cdhr_parameters = parameters (
514+ period
515+ ).impot_revenu .contributions_exceptionnelles .contribution_differentielle_hauts_revenus
516+ taux_penalite = cdhr_parameters .taux_penalite_acompte # 0.20
517+ taux_acompte = cdhr_parameters .taux_acompte # 0.95
518+
519+ cdhr = foyer_fiscal ('contribution_differentielle_hauts_revenus' , period )
520+ acompte_verse = foyer_fiscal ('contribution_differentielle_hauts_revenus_acompte_verse' , period )
521+
522+ # Seuil de sous-estimation toléré = 20% de marge
523+ seuil_acompte_minimum = cdhr * taux_acompte * (1 - 0.20 )
524+
525+ # Pénalité si acompte insuffisant
526+ assiette_penalite = max_ (cdhr * taux_acompte - acompte_verse , 0 )
527+ penalite = (acompte_verse < seuil_acompte_minimum ) * assiette_penalite * taux_penalite
528+
529+ return penalite
530+
531+
532+ class contribution_differentielle_hauts_revenus_acompte_verse (Variable ):
533+ value_type = float
534+ entity = FoyerFiscal
535+ label = "Acompte versé pour la contribution différentielle sur les hauts revenus (CDHR)"
536+ reference = 'https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000051200465'
537+ definition_period = YEAR
538+ default_value = 0
539+ documentation = '''
540+ Montant de l'acompte effectivement versé par le contribuable entre le 1er et le 15 décembre.
541+ Variable d'entrée à renseigner par l'utilisateur.
542+ '''
0 commit comments