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