OpenFisca-France 169.3.3__py3-none-any.whl → 169.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of OpenFisca-France might be problematic. Click here for more details.

Files changed (100) hide show
  1. {OpenFisca_France-169.3.3.dist-info → OpenFisca_France-169.5.0.dist-info}/METADATA +1 -1
  2. {OpenFisca_France-169.3.3.dist-info → OpenFisca_France-169.5.0.dist-info}/RECORD +93 -91
  3. openfisca_france/model/prelevements_obligatoires/impot_revenu/credits_impot.py +8 -3
  4. openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py +150 -112
  5. openfisca_france/model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/ir_prelevement_forfaitaire_unique.py +13 -8
  6. openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py +3 -3
  7. openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_prive.py +3 -3
  8. openfisca_france/model/prestations/minima_sociaux/aah.py +30 -30
  9. openfisca_france/model/revenus/activite/salarie.py +5 -5
  10. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_celib.yaml +4 -2
  11. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_couple.yaml +4 -2
  12. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/index.yaml +2 -3
  13. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/celib.yaml +4 -2
  14. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/celib_enf.yaml +3 -1
  15. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/general.yaml +4 -2
  16. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/index.yaml +1 -1
  17. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/reduc_postplafond.yaml +4 -2
  18. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/reduc_postplafond_veuf.yaml +4 -2
  19. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/couple_ou_pers_a_charge/index.yaml +2 -2
  20. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/couple_ou_pers_a_charge/not6.yaml +1 -1
  21. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/index.yaml +2 -6
  22. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/index.yaml +3 -1
  23. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/not31b.yaml +1 -1
  24. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/not32.yaml +1 -1
  25. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/index.yaml +9 -2
  26. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux2.yaml +3 -2
  27. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux3.yaml +4 -3
  28. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux4.yaml +3 -2
  29. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/index.yaml +7 -4
  30. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/taux_moins_3_ans.yaml +17 -0
  31. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/taux_plus_3_ans_pre_2018.yaml +23 -0
  32. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/etnc/index.yaml +3 -0
  33. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/etnc/taux.yaml +12 -0
  34. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/index.yaml +4 -0
  35. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/index.yaml +3 -2
  36. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/taux_avant_2_ans.yaml +2 -1
  37. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/taux_posterieur.yaml +2 -1
  38. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pvce/index.yml +3 -0
  39. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/{plus_values/pvce.yaml → pvce/taux.yaml} +6 -3
  40. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/index.yml +7 -0
  41. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/taux_cas_general.yaml +11 -0
  42. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/taux_conditionnel.yaml +11 -0
  43. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/index.yaml +4 -4
  44. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/{min.yaml → min_apres_credits_impots.yaml} +2 -2
  45. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/{seuil.yaml → min_avant_credits_impots.yaml} +2 -2
  46. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/index.yaml +2 -2
  47. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/plafond.yaml +4 -2
  48. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/taux.yaml +4 -0
  49. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/compte_epargne_co_developpement/index.yaml +2 -2
  50. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/cotisations_syndicales/index.yaml +2 -1
  51. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/divers/index.yaml +1 -1
  52. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_aux_partis_politiques/plafond_seul.yaml +6 -1
  53. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_interet_general/index.yaml +2 -1
  54. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_interet_general/plafond.yaml +2 -1
  55. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/index.yaml +2 -1
  56. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/increment_plafond.yaml +4 -1
  57. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/index.yaml +1 -1
  58. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond.yaml +3 -0
  59. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond_1ere_annee.yaml +3 -0
  60. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond_maximum.yaml +3 -0
  61. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/taux.yaml +3 -0
  62. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/college.yaml +2 -2
  63. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/index.yaml +2 -2
  64. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/lycee.yaml +2 -2
  65. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/universite.yaml +3 -3
  66. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissement_forestier/index.yaml +2 -1
  67. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissements_immobiliers/duflot_pinel_denormandie/index.yaml +1 -1
  68. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissements_immobiliers/index.yaml +1 -1
  69. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/location_meublee/index.yaml +2 -2
  70. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/index.yaml +2 -2
  71. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/plafond.yaml +3 -0
  72. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/taux.yaml +4 -1
  73. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/reduction_domtom/index.yaml +2 -2
  74. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/reduction_impot_exceptionnelle/index.yaml +1 -1
  75. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/index.yaml +2 -1
  76. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/index.yaml +6 -6
  77. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/plafond.yaml +5 -3
  78. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/plafond_revenu_net_global.yaml +5 -3
  79. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_1.yaml +4 -2
  80. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_2.yaml +4 -2
  81. openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_3.yaml +3 -1
  82. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/deductions/abatpro/index.yaml +2 -2
  83. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/deductions/index.yaml +2 -2
  84. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/produits_assurances_vies_assimiles/{abattement.yaml → abattement_celib.yaml} +2 -2
  85. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/produits_assurances_vies_assimiles/abattement_couple.yaml +31 -0
  86. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/produits_assurances_vies_assimiles/index.yaml +4 -2
  87. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/revenus_capitaux_mobiliers_dividendes/abattement_forfaitaire.yaml +1 -1
  88. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/revenus_capitaux_mobiliers_dividendes/index.yaml +2 -1
  89. openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rvcm/revenus_capitaux_mobiliers_dividendes/taux_abattement.yaml +2 -2
  90. openfisca_france/parameters/impot_revenu/contributions_exceptionnelles/contribution_exceptionnelle_hauts_revenus.yaml +7 -3
  91. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/moins_3ans.yaml +0 -11
  92. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/index.yaml +0 -6
  93. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/post_2018.yaml +0 -14
  94. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/pre_2018.yaml +0 -16
  95. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_entc.yaml +0 -9
  96. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_report.yaml +0 -9
  97. openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_report_conditionnel.yaml +0 -9
  98. {OpenFisca_France-169.3.3.dist-info → OpenFisca_France-169.5.0.dist-info}/LICENSE.AGPL.txt +0 -0
  99. {OpenFisca_France-169.3.3.dist-info → OpenFisca_France-169.5.0.dist-info}/WHEEL +0 -0
  100. {OpenFisca_France-169.3.3.dist-info → OpenFisca_France-169.5.0.dist-info}/top_level.txt +0 -0
@@ -416,10 +416,10 @@ class revenu_assimile_salaire_apres_abattements(Variable):
416
416
  revenu_assimile_salaire = individu('revenu_assimile_salaire', period)
417
417
  chomeur_longue_duree = individu('chomeur_longue_duree', period)
418
418
  frais_reels = individu('frais_reels', period)
419
- P = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
419
+ parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
420
420
 
421
- abattement_minimum = where(chomeur_longue_duree, P.abatpro.min2, P.abatpro.min)
422
- abatfor = round_(min_(max_(P.abatpro.taux * revenu_assimile_salaire, abattement_minimum), P.abatpro.max))
421
+ abattement_minimum = where(chomeur_longue_duree, parameters_deductions.abatpro.min2, parameters_deductions.abatpro.min)
422
+ abatfor = round_(min_(max_(parameters_deductions.abatpro.taux * revenu_assimile_salaire, abattement_minimum), parameters_deductions.abatpro.max))
423
423
  return (
424
424
  (frais_reels > abatfor)
425
425
  * (revenu_assimile_salaire - frais_reels)
@@ -430,9 +430,9 @@ class revenu_assimile_salaire_apres_abattements(Variable):
430
430
  def formula_2018_01_01(individu, period, parameters):
431
431
  revenu_assimile_salaire = individu('revenu_assimile_salaire', period)
432
432
  frais_reels = individu('frais_reels', period)
433
- P = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
433
+ parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
434
434
 
435
- abatfor = round_(min_(max_(P.abatpro.taux * revenu_assimile_salaire, P.abatpro.min), P.abatpro.max))
435
+ abatfor = round_(min_(max_(parameters_deductions.abatpro.taux * revenu_assimile_salaire, parameters_deductions.abatpro.min), parameters_deductions.abatpro.max))
436
436
  return (
437
437
  (frais_reels > abatfor)
438
438
  * (revenu_assimile_salaire - frais_reels)
@@ -464,17 +464,17 @@ class revenu_assimile_pension_apres_abattements(Variable):
464
464
 
465
465
  def formula(individu, period, parameters):
466
466
  revenu_assimile_pension = individu('revenu_assimile_pension', period)
467
- P = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
467
+ parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
468
468
 
469
469
  # TODO: problème car les pensions sont majorées au niveau du foyer
470
470
  # d11 = ( AS + BS + CS + DS + ES +
471
471
  # AO + BO + CO + DO + EO )
472
472
  # penv2 = (d11-f11> abatpen.max)*(penv + (d11-f11-abatpen.max)) + (d11-f11<= abatpen.max)*penv
473
473
  # Plus d'abatement de 20% en 2006
474
- return max_(0, revenu_assimile_pension - round_(max_(P.abatpen.taux * revenu_assimile_pension, P.abatpen.min)))
474
+ return max_(0, revenu_assimile_pension - round_(max_(parameters_deductions.abatpen.taux * revenu_assimile_pension, parameters_deductions.abatpen.min)))
475
475
 
476
476
 
477
- # return max_(0, revenu_assimile_pension - min_(round_(max_(P.abatpen.taux*revenu_assimile_pension , P.abatpen.min)), P.abatpen.max)) le max se met au niveau du foyer
477
+ # return max_(0, revenu_assimile_pension - min_(round_(max_(parameters_deductions.abatpen.taux*revenu_assimile_pension , parameters_deductions.abatpen.min)), parameters_deductions.abatpen.max)) le max se met au niveau du foyer
478
478
 
479
479
  class indu_plaf_abat_pen(Variable):
480
480
  value_type = float
@@ -485,13 +485,13 @@ class indu_plaf_abat_pen(Variable):
485
485
  def formula(foyer_fiscal, period, parameters):
486
486
  rev_pen_i = foyer_fiscal.members('revenu_assimile_pension', period)
487
487
  pen_net_i = foyer_fiscal.members('revenu_assimile_pension_apres_abattements', period)
488
- P = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
488
+ parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
489
489
 
490
490
  revenu_assimile_pension_apres_abattements = foyer_fiscal.sum(pen_net_i)
491
491
  revenu_assimile_pension = foyer_fiscal.sum(rev_pen_i)
492
492
 
493
493
  abat = revenu_assimile_pension - revenu_assimile_pension_apres_abattements
494
- return abat - min_(abat, P.abatpen.max)
494
+ return abat - min_(abat, parameters_deductions.abatpen.max)
495
495
 
496
496
 
497
497
  class abattement_salaires_pensions(Variable):
@@ -504,9 +504,9 @@ class abattement_salaires_pensions(Variable):
504
504
  def formula(individu, period, parameters):
505
505
  revenu_assimile_salaire_apres_abattements = individu('revenu_assimile_salaire_apres_abattements', period)
506
506
  revenu_assimile_pension_apres_abattements = individu('revenu_assimile_pension_apres_abattements', period)
507
- P = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
507
+ parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
508
508
 
509
- return min_(P.abat_supp.taux * max_(revenu_assimile_salaire_apres_abattements + revenu_assimile_pension_apres_abattements, 0), P.abat_supp.max)
509
+ return min_(parameters_deductions.abat_supp.taux * max_(revenu_assimile_salaire_apres_abattements + revenu_assimile_pension_apres_abattements, 0), parameters_deductions.abat_supp.max)
510
510
 
511
511
 
512
512
  class rente_viagere_titre_onereux(Variable):
@@ -691,6 +691,9 @@ class revenu_categoriel_capital(Variable):
691
691
  Revenus des valeurs et capitaux mobiliers
692
692
  '''
693
693
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
694
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
695
+ veuf = foyer_fiscal('veuf', period)
696
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
694
697
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
695
698
  f2ch = foyer_fiscal('f2ch', period)
696
699
  f2dc = foyer_fiscal('f2dc', period)
@@ -700,32 +703,34 @@ class revenu_categoriel_capital(Variable):
700
703
  f2go = foyer_fiscal('f2go', period)
701
704
  f2gr = foyer_fiscal('f2gr', period)
702
705
  f2tr = foyer_fiscal('f2tr', period)
703
- rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
706
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
707
+
708
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
704
709
 
705
710
  f2dc_bis = f2dc
706
711
  f2tr_bis = f2tr
707
712
  # # Calcul du revenu catégoriel
708
713
  # 1.2 Revenus des valeurs et capitaux mobiliers
709
- b12 = min_(f2ch, rvcm.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses))
714
+ b12 = min_(f2ch, abattement_assurance_vie)
710
715
  TOT1 = f2ch - b12 # c12
711
716
  # Part des frais s'imputant sur les revenus déclarés case DC
712
717
  den = ((f2dc_bis + f2ts) != 0) * (f2dc_bis + f2ts) + ((f2dc_bis + f2ts) == 0)
713
718
  F1 = f2ca / den * f2dc_bis # f12
714
719
  # Revenus de capitaux mobiliers nets de frais, ouvrant droit à abattement
715
720
  # partie négative (à déduire des autres revenus nets de frais d'abattements
716
- g12a = -min_(f2dc_bis * (1 - rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) - F1, 0)
721
+ g12a = -min_(f2dc_bis * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) - F1, 0)
717
722
  # partie positive
718
- g12b = max_(f2dc_bis * (1 - rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) - F1, 0)
719
- rev = g12b + f2gr + f2fu * (1 - rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement)
723
+ g12b = max_(f2dc_bis * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) - F1, 0)
724
+ rev = g12b + f2gr + f2fu * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement)
720
725
 
721
726
  # Abattements, limité au revenu
722
- h12 = rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses)
727
+ h12 = parameters_rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses)
723
728
  TOT2 = max_(0, rev - h12)
724
729
  # i121= -min_(0,rev - h12)
725
730
 
726
731
  # Part des frais s'imputant sur les revenus déclarés ligne TS
727
732
  F2 = f2ca - F1
728
- TOT3 = (f2ts - F2) + f2go * rvcm.majoration_revenus_reputes_distribues + f2tr_bis - g12a
733
+ TOT3 = (f2ts - F2) + f2go * parameters_rvcm.majoration_revenus_reputes_distribues + f2tr_bis - g12a
729
734
 
730
735
  DEF = deficit_rcm
731
736
  return max_(TOT1 + TOT2 + TOT3 - DEF, 0)
@@ -735,6 +740,9 @@ class revenu_categoriel_capital(Variable):
735
740
  Revenus des valeurs et capitaux mobiliers
736
741
  '''
737
742
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
743
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
744
+ veuf = foyer_fiscal('veuf', period)
745
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
738
746
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
739
747
  f2ch = foyer_fiscal('f2ch', period)
740
748
  f2da = foyer_fiscal('f2da', period)
@@ -745,23 +753,25 @@ class revenu_categoriel_capital(Variable):
745
753
  f2go = foyer_fiscal('f2go', period)
746
754
  f2gr = foyer_fiscal('f2gr', period)
747
755
  f2tr = foyer_fiscal('f2tr', period)
748
- parameter_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
756
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
757
+
758
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
749
759
 
750
760
  part_frais_imputes_sur_f2dc = f2ca / max_(1, f2dc + f2ts) * f2dc
751
- part_frais_restant_a_imputer = -min_(f2dc * (1 - parameter_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - part_frais_imputes_sur_f2dc, 0)
761
+ part_frais_restant_a_imputer = -min_(f2dc * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - part_frais_imputes_sur_f2dc, 0)
752
762
 
753
- dividendes_apres_abattements = max_(f2dc * (1 - parameter_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - part_frais_imputes_sur_f2dc, 0)
754
- revenus_assurance_vie_apres_abattements = f2ch - min_(f2ch, parameter_rvcm.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses))
763
+ dividendes_apres_abattements = max_(f2dc * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - part_frais_imputes_sur_f2dc, 0)
764
+ revenus_assurance_vie_apres_abattements = f2ch - min_(f2ch, abattement_assurance_vie)
755
765
  rvcm_apres_abattements_proportionnels = (
756
766
  revenus_assurance_vie_apres_abattements
757
767
  + dividendes_apres_abattements
758
768
  + f2gr
759
- + f2fu * (1 - parameter_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0))
769
+ + f2fu * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0))
760
770
  )
761
- rvcm_apres_abattements_proportionnels_et_fixes = max_(0, rvcm_apres_abattements_proportionnels - parameter_rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses))
771
+ rvcm_apres_abattements_proportionnels_et_fixes = max_(0, rvcm_apres_abattements_proportionnels - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses))
762
772
  autres_rvcm_sans_abattements = (
763
773
  f2ts - (f2ca - part_frais_imputes_sur_f2dc)
764
- + f2go * parameter_rvcm.majoration_revenus_reputes_distribues
774
+ + f2go * parameters_rvcm.majoration_revenus_reputes_distribues
765
775
  + f2tr - part_frais_restant_a_imputer
766
776
  )
767
777
 
@@ -772,6 +782,9 @@ class revenu_categoriel_capital(Variable):
772
782
  Revenus des valeurs et capitaux mobiliers
773
783
  '''
774
784
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
785
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
786
+ veuf = foyer_fiscal('veuf', period)
787
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
775
788
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
776
789
  f2ca = foyer_fiscal('f2ca', period)
777
790
  f2ch = foyer_fiscal('f2ch', period)
@@ -780,15 +793,16 @@ class revenu_categoriel_capital(Variable):
780
793
  f2go = foyer_fiscal('f2go', period)
781
794
  f2tr = foyer_fiscal('f2tr', period)
782
795
  f2ts = foyer_fiscal('f2ts', period)
783
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
796
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
784
797
 
785
798
  # Revenus après abatemment
786
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
787
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
799
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
800
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
801
+
788
802
  rvcm_apres_abattement = (
789
803
  f2fu + f2dc - abattement_dividende
790
804
  + f2ch - min_(f2ch, abattement_assurance_vie)
791
- + f2ts + f2tr + f2go * P.majoration_revenus_reputes_distribues
805
+ + f2ts + f2tr + f2go * parameters_rvcm.majoration_revenus_reputes_distribues
792
806
  )
793
807
 
794
808
  return max_(0, rvcm_apres_abattement - f2ca - deficit_rcm)
@@ -798,6 +812,9 @@ class revenu_categoriel_capital(Variable):
798
812
  Revenus des valeurs et capitaux mobiliers
799
813
  '''
800
814
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
815
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
816
+ veuf = foyer_fiscal('veuf', period)
817
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
801
818
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
802
819
  f2ca = foyer_fiscal('f2ca', period)
803
820
  f2ch = foyer_fiscal('f2ch', period)
@@ -808,15 +825,16 @@ class revenu_categoriel_capital(Variable):
808
825
  f2ts = foyer_fiscal('f2ts', period)
809
826
  f2tt_2016 = foyer_fiscal('f2tt_2016', period)
810
827
  f2tu_2016 = foyer_fiscal('f2tu_2016', period)
811
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
828
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
812
829
 
813
830
  # Revenus après abatemment
814
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
815
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
831
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
832
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
833
+
816
834
  rvcm_apres_abattement = (
817
835
  f2fu + f2dc - abattement_dividende
818
836
  + f2ch - min_(f2ch, abattement_assurance_vie)
819
- + f2ts + f2tr + max_(0, f2tt_2016 - f2tu_2016) + f2go * P.majoration_revenus_reputes_distribues
837
+ + f2ts + f2tr + max_(0, f2tt_2016 - f2tu_2016) + f2go * parameters_rvcm.majoration_revenus_reputes_distribues
820
838
  )
821
839
 
822
840
  return max_(0, rvcm_apres_abattement - f2ca - deficit_rcm)
@@ -834,6 +852,9 @@ class revenu_categoriel_capital(Variable):
834
852
  - Brochure pratique de l'IR 2017 sur revenus 2016 : https://www.impots.gouv.fr/portail/www2/fichiers/documentation/brochure/ir_2017/files/assets/common/downloads/publication.pdf
835
853
  '''
836
854
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
855
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
856
+ veuf = foyer_fiscal('veuf', period)
857
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
837
858
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
838
859
  f2ca = foyer_fiscal('f2ca', period)
839
860
  f2ch = foyer_fiscal('f2ch', period)
@@ -843,15 +864,15 @@ class revenu_categoriel_capital(Variable):
843
864
  f2tr = foyer_fiscal('f2tr', period)
844
865
  f2ts = foyer_fiscal('f2ts', period)
845
866
  f2tt = foyer_fiscal('f2tt', period)
846
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
867
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
847
868
 
848
869
  # Revenus après abatemment
849
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
850
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
870
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
871
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
851
872
  rvcm_apres_abattement = (
852
873
  f2fu + f2dc - abattement_dividende
853
874
  + f2ch - min_(f2ch, abattement_assurance_vie)
854
- + f2ts + f2tr + f2tt + f2go * P.majoration_revenus_reputes_distribues
875
+ + f2ts + f2tr + f2tt + f2go * parameters_rvcm.majoration_revenus_reputes_distribues
855
876
  )
856
877
 
857
878
  return max_(0, rvcm_apres_abattement - f2ca - deficit_rcm)
@@ -866,8 +887,11 @@ class revenu_categoriel_capital(Variable):
866
887
  Dans ce cas, ils ne sortent pas de la variable `revenu_categoriel_capital`.
867
888
  '''
868
889
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
890
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
891
+ veuf = foyer_fiscal('veuf', period)
892
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
869
893
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
870
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
894
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
871
895
  imposition_au_bareme = foyer_fiscal('f2op', period)
872
896
 
873
897
  # Revenus à prendre en compte dans les deux cas: pfu ou imposition au barème
@@ -887,12 +911,13 @@ class revenu_categoriel_capital(Variable):
887
911
  f2zz = foyer_fiscal('f2zz', period)
888
912
 
889
913
  # Revenus après abatemment
890
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
891
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
914
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
915
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
892
916
  abattement_residuel = max_(abattement_assurance_vie - f2ch, 0)
893
917
  abattement_residuel2 = max_(abattement_residuel - f2vv, 0)
918
+
894
919
  pre_result = where(imposition_au_bareme, f2zz + max_(f2vv - abattement_residuel, 0) + max_(f2ww - abattement_residuel2, 0) + f2fu + f2dc - abattement_dividende
895
- + f2ts + f2tr + f2tt + f2go * P.majoration_revenus_reputes_distribues, 0)
920
+ + f2ts + f2tr + f2tt + f2go * parameters_rvcm.majoration_revenus_reputes_distribues, 0)
896
921
  rvcm_apres_abattement = (
897
922
  f2yy
898
923
  + f2ch - min_(f2ch, abattement_assurance_vie)
@@ -911,8 +936,11 @@ class revenu_categoriel_capital(Variable):
911
936
  Source : Brochure pratique revenus 2019 page 123 et 340: https://www.impots.gouv.fr/www2/fichiers/documentation/brochure/ir_2020/accueil.htm
912
937
  '''
913
938
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
939
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
940
+ veuf = foyer_fiscal('veuf', period)
941
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
914
942
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
915
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
943
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
916
944
  imposition_au_bareme = foyer_fiscal('f2op', period)
917
945
 
918
946
  # Revenus à prendre en compte dans les deux cas: pfu ou imposition au barème
@@ -933,12 +961,13 @@ class revenu_categoriel_capital(Variable):
933
961
  f2tq = foyer_fiscal('f2tq', period)
934
962
 
935
963
  # Revenus après abatemment
936
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
937
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
964
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
965
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
938
966
  abattement_residuel = max_(abattement_assurance_vie - f2ch, 0)
939
967
  abattement_residuel2 = max_(abattement_residuel - f2vv, 0)
968
+
940
969
  pre_result = where(imposition_au_bareme, f2zz + max_(f2vv - abattement_residuel, 0) + max_(f2ww - abattement_residuel2, 0) + f2fu + f2dc - abattement_dividende
941
- + f2ts + f2tr + f2tt + f2go * P.majoration_revenus_reputes_distribues + f2tq, 0)
970
+ + f2ts + f2tr + f2tt + f2go * parameters_rvcm.majoration_revenus_reputes_distribues + f2tq, 0)
942
971
  rvcm_apres_abattement = (
943
972
  f2yy
944
973
  + f2ch - min_(f2ch, abattement_assurance_vie)
@@ -957,8 +986,11 @@ class revenu_categoriel_capital(Variable):
957
986
  Source : Brochure pratique revenus 2020 page 119, 132 et 364: https://www.impots.gouv.fr/www2/fichiers/documentation/brochure/ir_2021/accueil.htm
958
987
  '''
959
988
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
989
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
990
+ veuf = foyer_fiscal('veuf', period)
991
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
960
992
  deficit_rcm = foyer_fiscal('deficit_rcm', period)
961
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
993
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
962
994
  imposition_au_bareme = foyer_fiscal('f2op', period)
963
995
 
964
996
  # Revenus à prendre en compte dans les deux cas: pfu ou imposition au barème
@@ -980,12 +1012,13 @@ class revenu_categoriel_capital(Variable):
980
1012
  f2tz = foyer_fiscal('f2tz', period)
981
1013
 
982
1014
  # Revenus après abatemment
983
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
984
- abattement_assurance_vie = P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)
1015
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
1016
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
985
1017
  abattement_residuel = max_(abattement_assurance_vie - f2ch, 0)
986
1018
  abattement_residuel2 = max_(abattement_residuel - f2vv, 0)
1019
+
987
1020
  pre_result = where(imposition_au_bareme, f2zz + max_(f2vv - abattement_residuel, 0) + max_(f2ww - abattement_residuel2, 0) + f2fu + f2dc - abattement_dividende
988
- + f2ts + f2tr + f2tt + f2go * P.majoration_revenus_reputes_distribues + f2tq + f2tz, 0)
1021
+ + f2ts + f2tr + f2tt + f2go * parameters_rvcm.majoration_revenus_reputes_distribues + f2tq + f2tz, 0)
989
1022
  rvcm_apres_abattement = (
990
1023
  f2yy
991
1024
  + f2ch - min_(f2ch, abattement_assurance_vie)
@@ -1010,7 +1043,7 @@ class rfr_rvcm_abattements_a_reintegrer(Variable):
1010
1043
  f2gr = foyer_fiscal('f2gr', period)
1011
1044
  f2fu = foyer_fiscal('f2fu', period)
1012
1045
  f2da = foyer_fiscal('f2da', period) # noqa F841
1013
- rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1046
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1014
1047
 
1015
1048
  # Calcul de i121
1016
1049
  # Part des frais s'imputant sur les revenus déclarés case DC
@@ -1018,20 +1051,20 @@ class rfr_rvcm_abattements_a_reintegrer(Variable):
1018
1051
  F1 = f2ca / den * f2dc # f12
1019
1052
  # Revenus de capitaux mobiliers nets de frais, ouvrant droit à abattement
1020
1053
  # partie positive
1021
- g12b = max_(f2dc * (1 - rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - F1, 0)
1022
- rev = g12b + f2gr + f2fu * (1 - rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0))
1054
+ g12b = max_(f2dc * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0)) - F1, 0)
1055
+ rev = g12b + f2gr + f2fu * (1 - parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement * (f2da == 0))
1023
1056
 
1024
1057
  # Abattements, limité au revenu
1025
- h12 = rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses)
1058
+ h12 = parameters_rvcm.revenus_capitaux_mobiliers_dividendes.abattement_forfaitaire * (1 + maries_ou_pacses)
1026
1059
  i121 = - min_(0, rev - h12)
1027
- return max_((rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) * (f2dc + f2fu) * (f2da == 0) - i121, 0)
1060
+ return max_((parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement) * (f2dc + f2fu) * (f2da == 0) - i121, 0)
1028
1061
 
1029
1062
  def formula_2013_01_01(foyer_fiscal, period, parameters):
1030
1063
  f2dc = foyer_fiscal('f2dc', period)
1031
1064
  f2fu = foyer_fiscal('f2fu', period)
1032
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1065
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1033
1066
 
1034
- abattement_dividende = (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement
1067
+ abattement_dividende = (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement
1035
1068
 
1036
1069
  return abattement_dividende
1037
1070
 
@@ -1043,6 +1076,9 @@ class rfr_rvcm_abattements_a_reintegrer(Variable):
1043
1076
  Si le foyer a choisi l'imposition au barème pour les revenus éligibles au pfu, les revenus de l'assurance-vie entrent dans le calcul du RFR via `revenus_categoriel` net d'abattement.
1044
1077
  '''
1045
1078
  maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period)
1079
+ celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period)
1080
+ veuf = foyer_fiscal('veuf', period)
1081
+ jeune_veuf = foyer_fiscal('jeune_veuf', period)
1046
1082
  imposition_au_bareme = foyer_fiscal('f2op', period)
1047
1083
  f2ch = foyer_fiscal('f2ch', period)
1048
1084
  f2dh = foyer_fiscal('f2dh', period)
@@ -1050,14 +1086,15 @@ class rfr_rvcm_abattements_a_reintegrer(Variable):
1050
1086
  f2ww = foyer_fiscal('f2ww', period)
1051
1087
  f2dc = foyer_fiscal('f2dc', period)
1052
1088
  f2fu = foyer_fiscal('f2fu', period)
1053
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1089
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1054
1090
 
1055
- abattement_assurance_vie = where(imposition_au_bareme, 0,
1056
- (f2ch < P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses)) * max_(0, min_(f2vv + f2ww, P.produits_assurances_vies_assimiles.abattement * (1 + maries_ou_pacses) - f2ch - f2dh))
1091
+ abattement_assurance_vie = parameters_rvcm.produits_assurances_vies_assimiles.abattement_couple * maries_ou_pacses + parameters_rvcm.produits_assurances_vies_assimiles.abattement_celib * (celibataire_ou_divorce | veuf | jeune_veuf)
1092
+ abattement_assu_vie = where(imposition_au_bareme, 0,
1093
+ (f2ch < abattement_assurance_vie) * max_(0, min_(f2vv + f2ww, abattement_assurance_vie - f2ch - f2dh))
1057
1094
  )
1058
- abattement_dividende = where(imposition_au_bareme, (f2fu + f2dc) * P.revenus_capitaux_mobiliers_dividendes.taux_abattement, 0)
1095
+ abattement_dividende = where(imposition_au_bareme, (f2fu + f2dc) * parameters_rvcm.revenus_capitaux_mobiliers_dividendes.taux_abattement, 0)
1059
1096
 
1060
- return - abattement_assurance_vie + abattement_dividende
1097
+ return - abattement_assu_vie + abattement_dividende
1061
1098
 
1062
1099
 
1063
1100
  class revenu_categoriel_foncier(Variable):
@@ -1637,13 +1674,13 @@ class reduction_ss_condition_revenus(Variable):
1637
1674
  nb_adult = foyer_fiscal('nb_adult', period)
1638
1675
  nb_parts = foyer_fiscal('nbptr', period)
1639
1676
  rfr = foyer_fiscal('rfr', period)
1640
- P = parameters(period).impot_revenu.calcul_impot_revenu.plaf_qf.reduction_ss_condition_revenus
1677
+ parameters = parameters(period).impot_revenu.calcul_impot_revenu.plaf_qf.reduction_ss_condition_revenus
1641
1678
 
1642
1679
  ir_apres_plaf_qf_et_decote = ir_plaf_qf - decote
1643
- plafond1 = P.plafond_rfr_celib * nb_adult + P.majoration_plafond_par_demi_parts_supp * 2 * (nb_parts - nb_adult)
1644
- plafond2 = P.plafond_rfr_couple * nb_adult + P.majoration_plafond_par_demi_parts_supp * 2 * (nb_parts - nb_adult)
1645
- reduction1 = P.taux * ir_apres_plaf_qf_et_decote
1646
- reduction2 = P.taux * ir_apres_plaf_qf_et_decote * (plafond2 - rfr) / (plafond2 - plafond1)
1680
+ plafond1 = parameters.plafond_rfr_celib * nb_adult + parameters.majoration_plafond_par_demi_parts_supp * 2 * (nb_parts - nb_adult)
1681
+ plafond2 = parameters.plafond_rfr_couple * nb_adult + parameters.majoration_plafond_par_demi_parts_supp * 2 * (nb_parts - nb_adult)
1682
+ reduction1 = parameters.taux * ir_apres_plaf_qf_et_decote
1683
+ reduction2 = parameters.taux * ir_apres_plaf_qf_et_decote * (plafond2 - rfr) / (plafond2 - plafond1)
1647
1684
 
1648
1685
  reduction_sous_condition_de_ressources = (
1649
1686
  (rfr < plafond1) * reduction1
@@ -1767,8 +1804,8 @@ class assiette_service(Variable):
1767
1804
 
1768
1805
  return foyer_fiscal.sum(ebic_imps_i)
1769
1806
 
1770
- # P = _P.impot_revenu.calcul_revenus_imposables.rpns.micro.microentreprise
1771
- # assert (ebic_imps <= P.servi.max)
1807
+ # parameters = _P.impot_revenu.calcul_revenus_imposables.rpns.micro.microentreprise
1808
+ # assert (ebic_imps <= parameters.servi.max)
1772
1809
 
1773
1810
 
1774
1811
  class assiette_proflib(Variable):
@@ -1787,7 +1824,7 @@ class assiette_proflib(Variable):
1787
1824
  # http://vosdroits.service-public.fr/professionnels-entreprises/F23267.xhtml
1788
1825
  return foyer_fiscal.sum(ebnc_impo_i)
1789
1826
 
1790
- # assert (ebnc_impo <= P.microentreprise.regime_micro_bic.services.plafond)
1827
+ # assert (ebnc_impo <= parameters.microentreprise.regime_micro_bic.services.plafond)
1791
1828
 
1792
1829
 
1793
1830
  class microsocial(Variable):
@@ -1844,9 +1881,9 @@ class tax_rvcm_forfaitaire(Variable):
1844
1881
  Taxation des revenus des valeurs et capitaux mobiliers
1845
1882
  '''
1846
1883
  f2fa = foyer_fiscal('f2fa', period)
1847
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1884
+ parameters_rvcm = parameters(period).impot_revenu.calcul_revenus_imposables.rvcm
1848
1885
 
1849
- return f2fa * P.taux_forfaitaire
1886
+ return f2fa * parameters_rvcm.taux_forfaitaire
1850
1887
 
1851
1888
 
1852
1889
  class taxation_plus_values_hors_bareme(Variable):
@@ -1877,7 +1914,7 @@ class taxation_plus_values_hors_bareme(Variable):
1877
1914
  rpns_pvce = foyer_fiscal.sum(rpns_pvce_i)
1878
1915
 
1879
1916
  return round_(
1880
- pv.plus_values.pvce * rpns_pvce
1917
+ pv.pvce.taux * rpns_pvce
1881
1918
  + pv.pv_cession_valeurs_mobilieres_pv_professionnelles.taux * max_(0, f3vg - f3vh)
1882
1919
  + pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
1883
1920
  + pv.pv_cession_valeurs_mobilieres_pv_professionnelles.taux * f3vl
@@ -1886,8 +1923,8 @@ class taxation_plus_values_hors_bareme(Variable):
1886
1923
  + pv.plus_values.taux_pv_entrep * f3sa_2012
1887
1924
  + pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
1888
1925
  + pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
1889
- + pv.bspce.plus_3ans.pre_2018 * f3sj
1890
- + pv.bspce.moins_3ans * f3sk
1926
+ + pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
1927
+ + pv.bspce.taux_moins_3_ans * f3sk
1891
1928
  )
1892
1929
 
1893
1930
  def formula_2013_01_01(foyer_fiscal, period, parameters):
@@ -1907,14 +1944,14 @@ class taxation_plus_values_hors_bareme(Variable):
1907
1944
  pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
1908
1945
 
1909
1946
  return round_(
1910
- pv.plus_values.pvce * rpns_pvce
1947
+ pv.pvce.taux * rpns_pvce
1911
1948
  + pv.pea.taux_avant_2_ans * f3vm
1912
1949
  + pv.pea.taux_posterieur * f3vt
1913
1950
  + pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
1914
1951
  + pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
1915
1952
  + pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
1916
- + pv.bspce.plus_3ans.pre_2018 * f3sj
1917
- + pv.bspce.moins_3ans * f3sk
1953
+ + pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
1954
+ + pv.bspce.taux_moins_3_ans * f3sk
1918
1955
  )
1919
1956
 
1920
1957
  def formula_2016_01_01(foyer_fiscal, period, parameters):
@@ -1936,16 +1973,16 @@ class taxation_plus_values_hors_bareme(Variable):
1936
1973
  pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
1937
1974
 
1938
1975
  return round_(
1939
- pv.plus_values.pvce * rpns_pvce
1976
+ pv.pvce.taux * rpns_pvce
1940
1977
  + pv.pea.taux_avant_2_ans * f3vm
1941
1978
  + pv.pea.taux_posterieur * f3vt
1942
1979
  + pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
1943
1980
  + pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
1944
1981
  + pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
1945
- + pv.bspce.plus_3ans.pre_2018 * f3sj
1946
- + pv.bspce.moins_3ans * f3sk
1947
- + pv.plus_values.taux_plus_values_report * f3wi
1948
- + pv.plus_values.taux_plus_values_report_conditionnel * f3wj
1982
+ + pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
1983
+ + pv.bspce.taux_moins_3_ans * f3sk
1984
+ + pv.report_impot_expire.taux_cas_general * f3wi
1985
+ + pv.report_impot_expire.taux_conditionnel * f3wj
1949
1986
  )
1950
1987
 
1951
1988
  def formula_2017_01_01(foyer_fiscal, period, parameters):
@@ -1969,17 +2006,17 @@ class taxation_plus_values_hors_bareme(Variable):
1969
2006
  pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
1970
2007
 
1971
2008
  return round_(
1972
- pv.plus_values.pvce * rpns_pvce
2009
+ pv.pvce.taux * rpns_pvce
1973
2010
  + pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
1974
2011
  + pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
1975
2012
  + pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
1976
- + pv.bspce.plus_3ans.pre_2018 * f3sj
1977
- + pv.bspce.moins_3ans * f3sk
2013
+ + pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
2014
+ + pv.bspce.taux_moins_3_ans * f3sk
1978
2015
  + pv.pea.taux_avant_2_ans * f3vm
1979
2016
  + pv.pea.taux_posterieur * f3vt
1980
- + pv.plus_values.taux_plus_values_report * f3wi
1981
- + pv.plus_values.taux_plus_values_report_conditionnel * f3wj
1982
- + pv.plus_values.taux_plus_values_entc * f3pi
2017
+ + pv.report_impot_expire.taux_cas_general * f3wi
2018
+ + pv.report_impot_expire.taux_conditionnel * f3wj
2019
+ + pv.etnc.taux * f3pi
1983
2020
  )
1984
2021
 
1985
2022
  def formula_2019_01_01(foyer_fiscal, period, parameters):
@@ -2002,19 +2039,19 @@ class taxation_plus_values_hors_bareme(Variable):
2002
2039
  rpns_pvce = foyer_fiscal.sum(rpns_pvce_i)
2003
2040
  rpns_info = foyer_fiscal.sum(rpns_info_i)
2004
2041
  pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
2005
- P = parameters(period).impot_revenu.calcul_revenus_imposables.rpns
2042
+ parameters_rpns = parameters(period).impot_revenu.calcul_revenus_imposables.rpns
2006
2043
 
2007
2044
  return round_(
2008
- pv.plus_values.pvce * rpns_pvce
2045
+ pv.pvce.taux * rpns_pvce
2009
2046
  + pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
2010
2047
  + pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
2011
2048
  + pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
2012
- + P.taux10 * rpns_info
2013
- + pv.bspce.plus_3ans.pre_2018 * f3sj
2014
- + pv.bspce.moins_3ans * f3sk
2015
- + pv.plus_values.taux_plus_values_report * f3wi
2016
- + pv.plus_values.taux_plus_values_report_conditionnel * f3wj
2017
- + pv.plus_values.taux_plus_values_entc * f3pi
2049
+ + parameters_rpns.taux10 * rpns_info
2050
+ + pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
2051
+ + pv.bspce.taux_moins_3_ans * f3sk
2052
+ + pv.report_impot_expire.taux_cas_general * f3wi
2053
+ + pv.report_impot_expire.taux_conditionnel * f3wj
2054
+ + pv.etnc.taux * f3pi
2018
2055
  )
2019
2056
 
2020
2057
 
@@ -2285,22 +2322,22 @@ class impot_revenu_restant_a_payer(Variable):
2285
2322
  contribution_exceptionnelle_hauts_revenus = foyer_fiscal('contribution_exceptionnelle_hauts_revenus', period)
2286
2323
  prelevement_forfaitaire_unique_ir = foyer_fiscal('prelevement_forfaitaire_unique_ir', period)
2287
2324
  prelevement_forfaitaire_liberatoire = foyer_fiscal('prelevement_forfaitaire_liberatoire', period)
2288
- P = parameters(period).impot_revenu.calcul_impot_revenu.recouvrement
2325
+ parameters_recouvrement = parameters(period).impot_revenu.calcul_impot_revenu.recouvrement
2289
2326
 
2290
2327
  pre_result = iai - credits_impot - acomptes_ir + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir - prelevement_forfaitaire_liberatoire
2291
2328
  result = iai - credits_impot - acomptes_ir + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir
2292
2329
  impots_totaux_avant_imputations = iai + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir - prelevement_forfaitaire_liberatoire
2293
2330
 
2294
2331
  return (
2295
- (impots_totaux_avant_imputations > P.seuil) * (
2296
- (pre_result < P.min)
2332
+ (impots_totaux_avant_imputations > parameters_recouvrement.min_avant_credits_impots) * (
2333
+ (pre_result < parameters_recouvrement.min_apres_credits_impots)
2297
2334
  * (result > 0)
2298
2335
  * result
2299
2336
  * 0
2300
- + ((pre_result <= 0) + (pre_result >= P.min))
2337
+ + ((pre_result <= 0) + (pre_result >= parameters_recouvrement.min_apres_credits_impots))
2301
2338
  * (- result)
2302
2339
  )
2303
- + (impots_totaux_avant_imputations <= P.seuil) * (
2340
+ + (impots_totaux_avant_imputations <= parameters_recouvrement.min_avant_credits_impots) * (
2304
2341
  (pre_result < 0)
2305
2342
  * (-result)
2306
2343
  + (pre_result >= 0)
@@ -2498,6 +2535,7 @@ class rpns_pvce(Variable):
2498
2535
  entity = Individu
2499
2536
  label = 'Plus values de cession nettes des moins-values - Revenu des professions non salariées'
2500
2537
  definition_period = YEAR
2538
+ # Somme des cases "plus-values nettes à long terme" de la déclaration sur les revenus des professions non-salariées
2501
2539
 
2502
2540
  def formula(individu, period, parameters):
2503
2541
  '''
@@ -2799,8 +2837,8 @@ class defacc(Variable):
2799
2837
  cga = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.cga_taux2
2800
2838
  micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
2801
2839
 
2802
- def abat_rpns(rev, P):
2803
- return max_(0, rev - min_(rev, max_(P.taux * min_(P.plafond, rev), micro.microentreprise.montant_minimum)))
2840
+ def abat_rpns(rev, parameters):
2841
+ return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
2804
2842
 
2805
2843
  nacc_impn = foyer_fiscal.sum(nacc_impn_i)
2806
2844
  macc_pvct = foyer_fiscal.sum(macc_pvct_i)
@@ -2825,8 +2863,8 @@ class defacc(Variable):
2825
2863
  aacc_impn_i = foyer_fiscal.members('aacc_impn', period)
2826
2864
  micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
2827
2865
 
2828
- def abat_rpns(rev, P):
2829
- return max_(0, rev - min_(rev, max_(P.taux * min_(P.plafond, rev), micro.microentreprise.montant_minimum)))
2866
+ def abat_rpns(rev, parameters):
2867
+ return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
2830
2868
 
2831
2869
  macc_pvct = foyer_fiscal.sum(macc_pvct_i)
2832
2870
  macc_impv = foyer_fiscal.sum(macc_impv_i)
@@ -2859,8 +2897,8 @@ class defncn(Variable):
2859
2897
  micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
2860
2898
  specialbnc = micro.microentreprise.regime_micro_bnc
2861
2899
 
2862
- def abat_rpns(rev, P):
2863
- return max_(0, rev - min_(rev, max_(P.taux * min_(P.plafond, rev), micro.microentreprise.montant_minimum)))
2900
+ def abat_rpns(rev, parameters):
2901
+ return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
2864
2902
  cncn_bene = foyer_fiscal.sum(cncn_bene_i)
2865
2903
  mncn_impo = foyer_fiscal.sum(mncn_impo_i)
2866
2904
  mncn_pvct = foyer_fiscal.sum(mncn_pvct_i)
@@ -2883,8 +2921,8 @@ class defncn(Variable):
2883
2921
  micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
2884
2922
  specialbnc = micro.microentreprise.regime_micro_bnc
2885
2923
 
2886
- def abat_rpns(rev, P):
2887
- return max_(0, rev - min_(rev, max_(P.taux * min_(P.plafond, rev), micro.microentreprise.montant_minimum)))
2924
+ def abat_rpns(rev, parameters):
2925
+ return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
2888
2926
  mncn_impo = foyer_fiscal.sum(mncn_impo_i)
2889
2927
  mncn_pvct = foyer_fiscal.sum(mncn_pvct_i)
2890
2928
  cncn_aimp = foyer_fiscal.sum(cncn_aimp_i)
@@ -3429,8 +3467,8 @@ class rpns_imposables(Variable):
3429
3467
  locations_pro = individu('locations_pro', period)
3430
3468
  micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
3431
3469
 
3432
- def abat_rpns(rev, P):
3433
- return max_(0, rev - min_(rev, max_(P.taux * min_(P.plafond, rev), micro.microentreprise.montant_minimum)))
3470
+ def abat_rpns(rev, parameters):
3471
+ return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
3434
3472
 
3435
3473
  # # B revenus industriels et commerciaux professionnels
3436
3474
  # regime micro entreprise