OpenFisca-France 169.4.0__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.
- {OpenFisca_France-169.4.0.dist-info → OpenFisca_France-169.5.0.dist-info}/METADATA +1 -1
- {OpenFisca_France-169.4.0.dist-info → OpenFisca_France-169.5.0.dist-info}/RECORD +84 -83
- openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py +61 -60
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/activite.py +3 -3
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_prive.py +3 -3
- openfisca_france/model/prestations/minima_sociaux/aah.py +30 -30
- openfisca_france/model/revenus/activite/salarie.py +5 -5
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_celib.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_couple.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/index.yaml +2 -3
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/celib.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/celib_enf.yaml +3 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/general.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/reduc_postplafond.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/reduc_postplafond_veuf.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/couple_ou_pers_a_charge/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/couple_ou_pers_a_charge/not6.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/not31b.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/quotient_familial/sans_pers_a_charge/not32.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/index.yaml +9 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux2.yaml +3 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux3.yaml +4 -3
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/actions_gratuites/taux4.yaml +3 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/index.yaml +7 -4
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/taux_moins_3_ans.yaml +17 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/taux_plus_3_ans_pre_2018.yaml +23 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/etnc/index.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/etnc/taux.yaml +12 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/index.yaml +4 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/index.yaml +3 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/taux_avant_2_ans.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pea/taux_posterieur.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/pvce/index.yml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/{plus_values/pvce.yaml → pvce/taux.yaml} +6 -3
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/index.yml +7 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/taux_cas_general.yaml +11 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/report_impot_expire/taux_conditionnel.yaml +11 -0
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/index.yaml +4 -4
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/{min.yaml → min_apres_credits_impots.yaml} +2 -2
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/recouvrement/{seuil.yaml → min_avant_credits_impots.yaml} +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/plafond.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/accueil_dans_etablissement_personnes_agees/taux.yaml +4 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/compte_epargne_co_developpement/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/cotisations_syndicales/index.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/divers/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_aux_partis_politiques/plafond_seul.yaml +6 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_interet_general/index.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/dons_interet_general/plafond.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/dons/index.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/increment_plafond.yaml +4 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond_1ere_annee.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/plafond_maximum.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/emploi_salarie_domicile/taux.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/college.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/lycee.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/enfants_scolarises/universite.yaml +3 -3
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissement_forestier/index.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissements_immobiliers/duflot_pinel_denormandie/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/investissements_immobiliers/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/location_meublee/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/plafond.yaml +3 -0
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/prestations_compensatoires/taux.yaml +4 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/reduction_domtom/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/reduction_impot_exceptionnelle/index.yaml +1 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/index.yaml +2 -1
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/index.yaml +6 -6
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/plafond.yaml +5 -3
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/plafond_revenu_net_global.yaml +5 -3
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_1.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_2.yaml +4 -2
- openfisca_france/parameters/impot_revenu/calcul_reductions_impots/souscriptions/sofica/taux_3.yaml +3 -1
- openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/deductions/abatpro/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/deductions/index.yaml +2 -2
- openfisca_france/parameters/impot_revenu/contributions_exceptionnelles/contribution_exceptionnelle_hauts_revenus.yaml +7 -3
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/moins_3ans.yaml +0 -11
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/index.yaml +0 -6
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/post_2018.yaml +0 -14
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/bspce/plus_3ans/pre_2018.yaml +0 -16
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_entc.yaml +0 -9
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_report.yaml +0 -9
- openfisca_france/parameters/impot_revenu/calcul_impot_revenu/pv/plus_values/taux_plus_values_report_conditionnel.yaml +0 -9
- {OpenFisca_France-169.4.0.dist-info → OpenFisca_France-169.5.0.dist-info}/LICENSE.AGPL.txt +0 -0
- {OpenFisca_France-169.4.0.dist-info → OpenFisca_France-169.5.0.dist-info}/WHEEL +0 -0
- {OpenFisca_France-169.4.0.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
|
-
|
|
419
|
+
parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
|
|
420
420
|
|
|
421
|
-
abattement_minimum = where(chomeur_longue_duree,
|
|
422
|
-
abatfor = round_(min_(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
|
-
|
|
433
|
+
parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
|
|
434
434
|
|
|
435
|
-
abatfor = round_(min_(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
|
-
|
|
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_(
|
|
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_(
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
507
|
+
parameters_deductions = parameters(period).impot_revenu.calcul_revenus_imposables.deductions
|
|
508
508
|
|
|
509
|
-
return min_(
|
|
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):
|
|
@@ -1674,13 +1674,13 @@ class reduction_ss_condition_revenus(Variable):
|
|
|
1674
1674
|
nb_adult = foyer_fiscal('nb_adult', period)
|
|
1675
1675
|
nb_parts = foyer_fiscal('nbptr', period)
|
|
1676
1676
|
rfr = foyer_fiscal('rfr', period)
|
|
1677
|
-
|
|
1677
|
+
parameters = parameters(period).impot_revenu.calcul_impot_revenu.plaf_qf.reduction_ss_condition_revenus
|
|
1678
1678
|
|
|
1679
1679
|
ir_apres_plaf_qf_et_decote = ir_plaf_qf - decote
|
|
1680
|
-
plafond1 =
|
|
1681
|
-
plafond2 =
|
|
1682
|
-
reduction1 =
|
|
1683
|
-
reduction2 =
|
|
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)
|
|
1684
1684
|
|
|
1685
1685
|
reduction_sous_condition_de_ressources = (
|
|
1686
1686
|
(rfr < plafond1) * reduction1
|
|
@@ -1804,8 +1804,8 @@ class assiette_service(Variable):
|
|
|
1804
1804
|
|
|
1805
1805
|
return foyer_fiscal.sum(ebic_imps_i)
|
|
1806
1806
|
|
|
1807
|
-
#
|
|
1808
|
-
# assert (ebic_imps <=
|
|
1807
|
+
# parameters = _P.impot_revenu.calcul_revenus_imposables.rpns.micro.microentreprise
|
|
1808
|
+
# assert (ebic_imps <= parameters.servi.max)
|
|
1809
1809
|
|
|
1810
1810
|
|
|
1811
1811
|
class assiette_proflib(Variable):
|
|
@@ -1824,7 +1824,7 @@ class assiette_proflib(Variable):
|
|
|
1824
1824
|
# http://vosdroits.service-public.fr/professionnels-entreprises/F23267.xhtml
|
|
1825
1825
|
return foyer_fiscal.sum(ebnc_impo_i)
|
|
1826
1826
|
|
|
1827
|
-
# assert (ebnc_impo <=
|
|
1827
|
+
# assert (ebnc_impo <= parameters.microentreprise.regime_micro_bic.services.plafond)
|
|
1828
1828
|
|
|
1829
1829
|
|
|
1830
1830
|
class microsocial(Variable):
|
|
@@ -1914,7 +1914,7 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
1914
1914
|
rpns_pvce = foyer_fiscal.sum(rpns_pvce_i)
|
|
1915
1915
|
|
|
1916
1916
|
return round_(
|
|
1917
|
-
pv.
|
|
1917
|
+
pv.pvce.taux * rpns_pvce
|
|
1918
1918
|
+ pv.pv_cession_valeurs_mobilieres_pv_professionnelles.taux * max_(0, f3vg - f3vh)
|
|
1919
1919
|
+ pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
|
|
1920
1920
|
+ pv.pv_cession_valeurs_mobilieres_pv_professionnelles.taux * f3vl
|
|
@@ -1923,8 +1923,8 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
1923
1923
|
+ pv.plus_values.taux_pv_entrep * f3sa_2012
|
|
1924
1924
|
+ pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
|
|
1925
1925
|
+ pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
|
|
1926
|
-
+ pv.bspce.
|
|
1927
|
-
+ pv.bspce.
|
|
1926
|
+
+ pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
|
|
1927
|
+
+ pv.bspce.taux_moins_3_ans * f3sk
|
|
1928
1928
|
)
|
|
1929
1929
|
|
|
1930
1930
|
def formula_2013_01_01(foyer_fiscal, period, parameters):
|
|
@@ -1944,14 +1944,14 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
1944
1944
|
pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
|
|
1945
1945
|
|
|
1946
1946
|
return round_(
|
|
1947
|
-
pv.
|
|
1947
|
+
pv.pvce.taux * rpns_pvce
|
|
1948
1948
|
+ pv.pea.taux_avant_2_ans * f3vm
|
|
1949
1949
|
+ pv.pea.taux_posterieur * f3vt
|
|
1950
1950
|
+ pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
|
|
1951
1951
|
+ pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
|
|
1952
1952
|
+ pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
|
|
1953
|
-
+ pv.bspce.
|
|
1954
|
-
+ pv.bspce.
|
|
1953
|
+
+ pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
|
|
1954
|
+
+ pv.bspce.taux_moins_3_ans * f3sk
|
|
1955
1955
|
)
|
|
1956
1956
|
|
|
1957
1957
|
def formula_2016_01_01(foyer_fiscal, period, parameters):
|
|
@@ -1973,16 +1973,16 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
1973
1973
|
pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
|
|
1974
1974
|
|
|
1975
1975
|
return round_(
|
|
1976
|
-
pv.
|
|
1976
|
+
pv.pvce.taux * rpns_pvce
|
|
1977
1977
|
+ pv.pea.taux_avant_2_ans * f3vm
|
|
1978
1978
|
+ pv.pea.taux_posterieur * f3vt
|
|
1979
1979
|
+ pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
|
|
1980
1980
|
+ pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
|
|
1981
1981
|
+ pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
|
|
1982
|
-
+ pv.bspce.
|
|
1983
|
-
+ pv.bspce.
|
|
1984
|
-
+ pv.
|
|
1985
|
-
+ pv.
|
|
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
|
|
1986
1986
|
)
|
|
1987
1987
|
|
|
1988
1988
|
def formula_2017_01_01(foyer_fiscal, period, parameters):
|
|
@@ -2006,17 +2006,17 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
2006
2006
|
pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
|
|
2007
2007
|
|
|
2008
2008
|
return round_(
|
|
2009
|
-
pv.
|
|
2009
|
+
pv.pvce.taux * rpns_pvce
|
|
2010
2010
|
+ pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
|
|
2011
2011
|
+ pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
|
|
2012
2012
|
+ pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
|
|
2013
|
-
+ pv.bspce.
|
|
2014
|
-
+ pv.bspce.
|
|
2013
|
+
+ pv.bspce.taux_plus_3_ans_pre_2018 * f3sj
|
|
2014
|
+
+ pv.bspce.taux_moins_3_ans * f3sk
|
|
2015
2015
|
+ pv.pea.taux_avant_2_ans * f3vm
|
|
2016
2016
|
+ pv.pea.taux_posterieur * f3vt
|
|
2017
|
-
+ pv.
|
|
2018
|
-
+ pv.
|
|
2019
|
-
+ pv.
|
|
2017
|
+
+ pv.report_impot_expire.taux_cas_general * f3wi
|
|
2018
|
+
+ pv.report_impot_expire.taux_conditionnel * f3wj
|
|
2019
|
+
+ pv.etnc.taux * f3pi
|
|
2020
2020
|
)
|
|
2021
2021
|
|
|
2022
2022
|
def formula_2019_01_01(foyer_fiscal, period, parameters):
|
|
@@ -2039,19 +2039,19 @@ class taxation_plus_values_hors_bareme(Variable):
|
|
|
2039
2039
|
rpns_pvce = foyer_fiscal.sum(rpns_pvce_i)
|
|
2040
2040
|
rpns_info = foyer_fiscal.sum(rpns_info_i)
|
|
2041
2041
|
pv = parameters(period).impot_revenu.calcul_impot_revenu.pv
|
|
2042
|
-
|
|
2042
|
+
parameters_rpns = parameters(period).impot_revenu.calcul_revenus_imposables.rpns
|
|
2043
2043
|
|
|
2044
2044
|
return round_(
|
|
2045
|
-
pv.
|
|
2045
|
+
pv.pvce.taux * rpns_pvce
|
|
2046
2046
|
+ pv.actions_gratuites.taux2 * glo_taxation_ir_forfaitaire_taux2
|
|
2047
2047
|
+ pv.actions_gratuites.taux3 * glo_taxation_ir_forfaitaire_taux3
|
|
2048
2048
|
+ pv.actions_gratuites.taux4 * glo_taxation_ir_forfaitaire_taux4
|
|
2049
|
-
+
|
|
2050
|
-
+ pv.bspce.
|
|
2051
|
-
+ pv.bspce.
|
|
2052
|
-
+ pv.
|
|
2053
|
-
+ pv.
|
|
2054
|
-
+ pv.
|
|
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
|
|
2055
2055
|
)
|
|
2056
2056
|
|
|
2057
2057
|
|
|
@@ -2322,22 +2322,22 @@ class impot_revenu_restant_a_payer(Variable):
|
|
|
2322
2322
|
contribution_exceptionnelle_hauts_revenus = foyer_fiscal('contribution_exceptionnelle_hauts_revenus', period)
|
|
2323
2323
|
prelevement_forfaitaire_unique_ir = foyer_fiscal('prelevement_forfaitaire_unique_ir', period)
|
|
2324
2324
|
prelevement_forfaitaire_liberatoire = foyer_fiscal('prelevement_forfaitaire_liberatoire', period)
|
|
2325
|
-
|
|
2325
|
+
parameters_recouvrement = parameters(period).impot_revenu.calcul_impot_revenu.recouvrement
|
|
2326
2326
|
|
|
2327
2327
|
pre_result = iai - credits_impot - acomptes_ir + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir - prelevement_forfaitaire_liberatoire
|
|
2328
2328
|
result = iai - credits_impot - acomptes_ir + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir
|
|
2329
2329
|
impots_totaux_avant_imputations = iai + contribution_exceptionnelle_hauts_revenus - prelevement_forfaitaire_unique_ir - prelevement_forfaitaire_liberatoire
|
|
2330
2330
|
|
|
2331
2331
|
return (
|
|
2332
|
-
(impots_totaux_avant_imputations >
|
|
2333
|
-
(pre_result <
|
|
2332
|
+
(impots_totaux_avant_imputations > parameters_recouvrement.min_avant_credits_impots) * (
|
|
2333
|
+
(pre_result < parameters_recouvrement.min_apres_credits_impots)
|
|
2334
2334
|
* (result > 0)
|
|
2335
2335
|
* result
|
|
2336
2336
|
* 0
|
|
2337
|
-
+ ((pre_result <= 0) + (pre_result >=
|
|
2337
|
+
+ ((pre_result <= 0) + (pre_result >= parameters_recouvrement.min_apres_credits_impots))
|
|
2338
2338
|
* (- result)
|
|
2339
2339
|
)
|
|
2340
|
-
+ (impots_totaux_avant_imputations <=
|
|
2340
|
+
+ (impots_totaux_avant_imputations <= parameters_recouvrement.min_avant_credits_impots) * (
|
|
2341
2341
|
(pre_result < 0)
|
|
2342
2342
|
* (-result)
|
|
2343
2343
|
+ (pre_result >= 0)
|
|
@@ -2535,6 +2535,7 @@ class rpns_pvce(Variable):
|
|
|
2535
2535
|
entity = Individu
|
|
2536
2536
|
label = 'Plus values de cession nettes des moins-values - Revenu des professions non salariées'
|
|
2537
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
|
|
2538
2539
|
|
|
2539
2540
|
def formula(individu, period, parameters):
|
|
2540
2541
|
'''
|
|
@@ -2836,8 +2837,8 @@ class defacc(Variable):
|
|
|
2836
2837
|
cga = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.cga_taux2
|
|
2837
2838
|
micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
|
|
2838
2839
|
|
|
2839
|
-
def abat_rpns(rev,
|
|
2840
|
-
return max_(0, rev - min_(rev, max_(
|
|
2840
|
+
def abat_rpns(rev, parameters):
|
|
2841
|
+
return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
|
|
2841
2842
|
|
|
2842
2843
|
nacc_impn = foyer_fiscal.sum(nacc_impn_i)
|
|
2843
2844
|
macc_pvct = foyer_fiscal.sum(macc_pvct_i)
|
|
@@ -2862,8 +2863,8 @@ class defacc(Variable):
|
|
|
2862
2863
|
aacc_impn_i = foyer_fiscal.members('aacc_impn', period)
|
|
2863
2864
|
micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
|
|
2864
2865
|
|
|
2865
|
-
def abat_rpns(rev,
|
|
2866
|
-
return max_(0, rev - min_(rev, max_(
|
|
2866
|
+
def abat_rpns(rev, parameters):
|
|
2867
|
+
return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
|
|
2867
2868
|
|
|
2868
2869
|
macc_pvct = foyer_fiscal.sum(macc_pvct_i)
|
|
2869
2870
|
macc_impv = foyer_fiscal.sum(macc_impv_i)
|
|
@@ -2896,8 +2897,8 @@ class defncn(Variable):
|
|
|
2896
2897
|
micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
|
|
2897
2898
|
specialbnc = micro.microentreprise.regime_micro_bnc
|
|
2898
2899
|
|
|
2899
|
-
def abat_rpns(rev,
|
|
2900
|
-
return max_(0, rev - min_(rev, max_(
|
|
2900
|
+
def abat_rpns(rev, parameters):
|
|
2901
|
+
return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
|
|
2901
2902
|
cncn_bene = foyer_fiscal.sum(cncn_bene_i)
|
|
2902
2903
|
mncn_impo = foyer_fiscal.sum(mncn_impo_i)
|
|
2903
2904
|
mncn_pvct = foyer_fiscal.sum(mncn_pvct_i)
|
|
@@ -2920,8 +2921,8 @@ class defncn(Variable):
|
|
|
2920
2921
|
micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
|
|
2921
2922
|
specialbnc = micro.microentreprise.regime_micro_bnc
|
|
2922
2923
|
|
|
2923
|
-
def abat_rpns(rev,
|
|
2924
|
-
return max_(0, rev - min_(rev, max_(
|
|
2924
|
+
def abat_rpns(rev, parameters):
|
|
2925
|
+
return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
|
|
2925
2926
|
mncn_impo = foyer_fiscal.sum(mncn_impo_i)
|
|
2926
2927
|
mncn_pvct = foyer_fiscal.sum(mncn_pvct_i)
|
|
2927
2928
|
cncn_aimp = foyer_fiscal.sum(cncn_aimp_i)
|
|
@@ -3466,8 +3467,8 @@ class rpns_imposables(Variable):
|
|
|
3466
3467
|
locations_pro = individu('locations_pro', period)
|
|
3467
3468
|
micro = parameters(period).impot_revenu.calcul_revenus_imposables.rpns.micro
|
|
3468
3469
|
|
|
3469
|
-
def abat_rpns(rev,
|
|
3470
|
-
return max_(0, rev - min_(rev, max_(
|
|
3470
|
+
def abat_rpns(rev, parameters):
|
|
3471
|
+
return max_(0, rev - min_(rev, max_(parameters.taux * min_(parameters.plafond, rev), micro.microentreprise.montant_minimum)))
|
|
3471
3472
|
|
|
3472
3473
|
# # B revenus industriels et commerciaux professionnels
|
|
3473
3474
|
# regime micro entreprise
|
|
@@ -159,13 +159,13 @@ class crds_salaire(Variable):
|
|
|
159
159
|
assiette_csg_non_abattue = individu('assiette_csg_non_abattue', period)
|
|
160
160
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
parameters = parameters(period).prelevements_sociaux.contributions_sociales
|
|
163
163
|
|
|
164
164
|
montant_crds = montant_csg_crds(
|
|
165
|
-
law_node =
|
|
165
|
+
law_node = parameters.crds,
|
|
166
166
|
base_avec_abattement = assiette_csg_abattue,
|
|
167
167
|
base_sans_abattement = assiette_csg_non_abattue,
|
|
168
|
-
abattement_parameter =
|
|
168
|
+
abattement_parameter = parameters.csg.activite.abattement,
|
|
169
169
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
170
170
|
)
|
|
171
171
|
|
|
@@ -250,10 +250,10 @@ class agff_employeur(Variable):
|
|
|
250
250
|
categorie_salarie = individu('categorie_salarie', period)
|
|
251
251
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
252
252
|
|
|
253
|
-
|
|
253
|
+
parameters = parameters(period).cotsoc
|
|
254
254
|
|
|
255
255
|
cotisation_non_cadre = apply_bareme_for_relevant_type_sal(
|
|
256
|
-
bareme_by_type_sal_name =
|
|
256
|
+
bareme_by_type_sal_name = parameters.cotisations_employeur,
|
|
257
257
|
bareme_name = 'agffnc',
|
|
258
258
|
base = assiette_cotisations_sociales,
|
|
259
259
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -261,7 +261,7 @@ class agff_employeur(Variable):
|
|
|
261
261
|
)
|
|
262
262
|
|
|
263
263
|
cotisation_cadre = apply_bareme_for_relevant_type_sal(
|
|
264
|
-
bareme_by_type_sal_name =
|
|
264
|
+
bareme_by_type_sal_name = parameters.cotisations_employeur,
|
|
265
265
|
bareme_name = 'agffc',
|
|
266
266
|
base = assiette_cotisations_sociales,
|
|
267
267
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -190,13 +190,13 @@ class aah_base_ressources_deconjugalisee(Variable):
|
|
|
190
190
|
set_input = set_input_divide_by_period
|
|
191
191
|
|
|
192
192
|
def formula_2023_10_01(individu, period, parameters):
|
|
193
|
-
|
|
194
|
-
aah =
|
|
193
|
+
parameters = parameters(period)
|
|
194
|
+
aah = parameters.prestations_sociales.prestations_etat_de_sante.invalidite.aah
|
|
195
195
|
|
|
196
196
|
en_activite = ((individu('salaire_imposable', period, options = [ADD]) + individu('rpns_imposables', period.last_year)) > 0)
|
|
197
197
|
|
|
198
198
|
def assiette_revenu_activite_demandeur(revenus_demandeur):
|
|
199
|
-
smic_brut_annuel = 12 *
|
|
199
|
+
smic_brut_annuel = 12 * parameters.marche_travail.salaire_minimum.smic.smic_b_horaire * parameters.marche_travail.salaire_minimum.smic.nb_heures_travail_mensuel
|
|
200
200
|
total_tranche1 = min_(aah.travail_ordinaire.tranche_smic * smic_brut_annuel, revenus_demandeur)
|
|
201
201
|
total_tranche2 = max_(0, revenus_demandeur - total_tranche1)
|
|
202
202
|
return (1 - aah.travail_ordinaire.abattement_30) * total_tranche1 + (1 - aah.travail_ordinaire.abattement_sup) * total_tranche2
|
|
@@ -427,50 +427,50 @@ class aah_eligible(Variable):
|
|
|
427
427
|
'''
|
|
428
428
|
|
|
429
429
|
def formula_2011_01_01(individu, period, parameters):
|
|
430
|
-
|
|
430
|
+
parameters_aah = parameters(period).prestations_sociales.prestations_etat_de_sante.invalidite.aah
|
|
431
431
|
taux_incapacite = individu('taux_incapacite', period)
|
|
432
|
-
taux_incapacite_max = (taux_incapacite >=
|
|
433
|
-
taux_incapacite_rsdae = (taux_incapacite >=
|
|
432
|
+
taux_incapacite_max = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite)
|
|
433
|
+
taux_incapacite_rsdae = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite_rsdae)
|
|
434
434
|
rsdae = individu('aah_restriction_substantielle_durable_acces_emploi', period)
|
|
435
435
|
|
|
436
436
|
age = individu('age', period)
|
|
437
437
|
prestations_familiales_enfant_a_charge = individu('prestations_familiales_enfant_a_charge', period)
|
|
438
438
|
eligible_aah = (
|
|
439
|
-
(taux_incapacite_max + (taux_incapacite_rsdae * rsdae * (age <=
|
|
440
|
-
* ((age >=
|
|
439
|
+
(taux_incapacite_max + (taux_incapacite_rsdae * rsdae * (age <= parameters_aah.age_legal_retraite)))
|
|
440
|
+
* ((age >= parameters_aah.age_minimal) + ((age >= parameters_aah.age_fin_educ) * not_(prestations_familiales_enfant_a_charge)))
|
|
441
441
|
)
|
|
442
442
|
|
|
443
443
|
return eligible_aah
|
|
444
444
|
|
|
445
445
|
def formula_2005_07_01(individu, period, parameters):
|
|
446
|
-
|
|
446
|
+
parameters_aah = parameters(period).prestations_sociales.prestations_etat_de_sante.invalidite.aah
|
|
447
447
|
taux_incapacite = individu('taux_incapacite', period)
|
|
448
|
-
taux_incapacite_max = (taux_incapacite >=
|
|
449
|
-
taux_incapacite_rsdae = (taux_incapacite >=
|
|
448
|
+
taux_incapacite_max = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite)
|
|
449
|
+
taux_incapacite_rsdae = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite_rsdae)
|
|
450
450
|
rsdae = individu('aah_restriction_substantielle_durable_acces_emploi', period)
|
|
451
451
|
|
|
452
452
|
age = individu('age', period)
|
|
453
453
|
prestations_familiales_enfant_a_charge = individu('prestations_familiales_enfant_a_charge', period)
|
|
454
454
|
eligible_aah = (
|
|
455
|
-
(taux_incapacite_max + (taux_incapacite_rsdae * rsdae * (age <=
|
|
455
|
+
(taux_incapacite_max + (taux_incapacite_rsdae * rsdae * (age <= parameters_aah.age_legal_retraite))
|
|
456
456
|
* (individu('salaire_imposable', period.last_year, options=[ADD]) <= 0))
|
|
457
|
-
* ((age >=
|
|
457
|
+
* ((age >= parameters_aah.age_minimal) + ((age >= parameters_aah.age_fin_educ) * not_(prestations_familiales_enfant_a_charge)))
|
|
458
458
|
)
|
|
459
459
|
return eligible_aah
|
|
460
460
|
|
|
461
461
|
def formula(individu, period, parameters):
|
|
462
|
-
|
|
462
|
+
parameters_aah = parameters(period).prestations_sociales.prestations_etat_de_sante.invalidite.aah
|
|
463
463
|
taux_incapacite = individu('taux_incapacite', period)
|
|
464
|
-
taux_incapacite_max = (taux_incapacite >=
|
|
465
|
-
taux_incapacite_rsdae = (taux_incapacite >=
|
|
464
|
+
taux_incapacite_max = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite)
|
|
465
|
+
taux_incapacite_rsdae = (taux_incapacite >= parameters_aah.taux_capacite.taux_incapacite_rsdae)
|
|
466
466
|
rsdae = individu('aah_restriction_substantielle_durable_acces_emploi', period)
|
|
467
467
|
|
|
468
468
|
age = individu('age', period)
|
|
469
469
|
prestations_familiales_enfant_a_charge = individu('prestations_familiales_enfant_a_charge', period)
|
|
470
470
|
eligible_aah = (
|
|
471
471
|
(taux_incapacite_max + (taux_incapacite_rsdae * rsdae
|
|
472
|
-
* (age <=
|
|
473
|
-
* ((age >=
|
|
472
|
+
* (age <= parameters_aah.age_legal_retraite)))
|
|
473
|
+
* ((age >= parameters_aah.age_minimal) + ((age >= parameters_aah.age_fin_educ) * not_(prestations_familiales_enfant_a_charge)))
|
|
474
474
|
)
|
|
475
475
|
return eligible_aah
|
|
476
476
|
|
|
@@ -504,17 +504,17 @@ class aah_plafond_ressources_conjugalise(Variable):
|
|
|
504
504
|
'''
|
|
505
505
|
|
|
506
506
|
def formula(individu, period, parameters):
|
|
507
|
-
|
|
507
|
+
parameters = parameters(period).prestations_sociales
|
|
508
508
|
|
|
509
509
|
en_couple = individu.famille('en_couple', period)
|
|
510
510
|
af_nbenf = individu.famille('af_nbenf', period)
|
|
511
|
-
montant_max =
|
|
511
|
+
montant_max = parameters.prestations_etat_de_sante.invalidite.aah.montant
|
|
512
512
|
|
|
513
513
|
return montant_max * (
|
|
514
514
|
+ 1
|
|
515
515
|
+ en_couple
|
|
516
|
-
*
|
|
517
|
-
+
|
|
516
|
+
* parameters.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_plafond_couple
|
|
517
|
+
+ parameters.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_par_enfant_supplementaire
|
|
518
518
|
* af_nbenf
|
|
519
519
|
)
|
|
520
520
|
|
|
@@ -531,14 +531,14 @@ class aah_plafond_ressources_deconjugalise(Variable):
|
|
|
531
531
|
set_input = set_input_divide_by_period
|
|
532
532
|
|
|
533
533
|
def formula(individu, period, parameters):
|
|
534
|
-
|
|
534
|
+
parameters = parameters(period).prestations_sociales
|
|
535
535
|
|
|
536
536
|
af_nbenf = individu.famille('af_nbenf', period)
|
|
537
|
-
montant_max =
|
|
537
|
+
montant_max = parameters.prestations_etat_de_sante.invalidite.aah.montant
|
|
538
538
|
|
|
539
539
|
return montant_max * (
|
|
540
540
|
+ 1
|
|
541
|
-
+
|
|
541
|
+
+ parameters.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_par_enfant_supplementaire
|
|
542
542
|
* af_nbenf
|
|
543
543
|
)
|
|
544
544
|
|
|
@@ -569,13 +569,13 @@ class aah_base(Variable):
|
|
|
569
569
|
set_input = set_input_divide_by_period
|
|
570
570
|
|
|
571
571
|
def formula(individu, period, parameters):
|
|
572
|
-
|
|
572
|
+
parameters = parameters(period).prestations_sociales
|
|
573
573
|
|
|
574
574
|
aah_eligible = individu('aah_eligible', period)
|
|
575
575
|
aah_base_ressources_conjugalisee = individu('aah_base_ressources_conjugalisee', period)
|
|
576
576
|
plaf_ress_aah_conjugalise = individu('aah_plafond_ressources_conjugalise', period)
|
|
577
577
|
# Le montant de l'AAH est plafonné au montant de base.
|
|
578
|
-
montant_max =
|
|
578
|
+
montant_max = parameters.prestations_etat_de_sante.invalidite.aah.montant
|
|
579
579
|
montant_aah = min_(montant_max, max_(0, plaf_ress_aah_conjugalise - aah_base_ressources_conjugalisee))
|
|
580
580
|
|
|
581
581
|
aah_base_non_cumulable = individu('aah_base_non_cumulable', period)
|
|
@@ -583,9 +583,9 @@ class aah_base(Variable):
|
|
|
583
583
|
return aah_eligible * min_(max_(0, montant_aah), max_(0, montant_max - aah_base_non_cumulable))
|
|
584
584
|
|
|
585
585
|
def formula_2023_10_01(individu, period, parameters):
|
|
586
|
-
|
|
586
|
+
parameters = parameters(period).prestations_sociales
|
|
587
587
|
# Le montant de l'AAH est plafonné au montant de base.
|
|
588
|
-
montant_max =
|
|
588
|
+
montant_max = parameters.prestations_etat_de_sante.invalidite.aah.montant
|
|
589
589
|
aah_eligible = individu('aah_eligible', period)
|
|
590
590
|
aah_base_non_cumulable = individu('aah_base_non_cumulable', period)
|
|
591
591
|
aah_conjugalise_eligible = individu('aah_conjugalise_eligible', period)
|
|
@@ -623,7 +623,7 @@ class aah(Variable):
|
|
|
623
623
|
aah_reduction = ((aah_date_debut_hospitalisation <= m_2) + (aah_date_debut_incarceration <= m_2)) * not_(pers_charge)
|
|
624
624
|
|
|
625
625
|
return where(aah_reduction, aah_base * aah_parameters.pourcentage_aah.prison_hospitalisation, aah_base)
|
|
626
|
-
# montant_max_aah =
|
|
626
|
+
# montant_max_aah = parameters.prestations_etat_de_sante.invalidite.aah.montant
|
|
627
627
|
# est-ce cela, ou plutôt where(aah_reduction, min_(aah_base, aah_parameters.pourcentage_aah.prison_hospitalisation * montant_max_aah), aah_base)
|
|
628
628
|
# ce qui expliquerait la phrase : L'intéressé ne peut recevoir une allocation plus élevée que celle qu'il percevrait s'il n'était pas hospitalisé, placé dans une maison d'accueil spécialisée ou incarcéré.
|
|
629
629
|
# TODO: exemption de baisse également si paiement d'un forfait journalier (lors de l'hospitalisation), et si le conjoint ne travaille pas pour une raison reconnue valable
|
|
@@ -1298,20 +1298,20 @@ class af_nbenf_fonc(Variable):
|
|
|
1298
1298
|
'''
|
|
1299
1299
|
|
|
1300
1300
|
salaire_de_base_mensualise = famille.members('salaire_de_base', Period(('month', period.start, 6)).offset(-6), options = [ADD])
|
|
1301
|
-
|
|
1301
|
+
parameters = parameters(period)
|
|
1302
1302
|
nbh_travaillees = 169
|
|
1303
|
-
smic_mensuel_brut =
|
|
1303
|
+
smic_mensuel_brut = parameters.marche_travail.salaire_minimum.smic.smic_b_horaire * nbh_travaillees
|
|
1304
1304
|
|
|
1305
1305
|
autonomie_financiere = (salaire_de_base_mensualise >= (
|
|
1306
|
-
|
|
1306
|
+
parameters.prestations_sociales.prestations_familiales.def_pac.revenu_plafond_pac_non_scolaire
|
|
1307
1307
|
* smic_mensuel_brut
|
|
1308
1308
|
))
|
|
1309
1309
|
|
|
1310
1310
|
age = famille.members('age', period)
|
|
1311
1311
|
|
|
1312
1312
|
condition_enfant = (
|
|
1313
|
-
(age >=
|
|
1314
|
-
* (age <=
|
|
1313
|
+
(age >= parameters.prestations_sociales.prestations_familiales.prestations_generales.af.af_cm.age1)
|
|
1314
|
+
* (age <= parameters.prestations_sociales.prestations_familiales.prestations_generales.af.af_cm.age2)
|
|
1315
1315
|
* not_(autonomie_financiere)
|
|
1316
1316
|
)
|
|
1317
1317
|
|
openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_celib.yaml
CHANGED
|
@@ -101,7 +101,7 @@ values:
|
|
|
101
101
|
2023-01-01:
|
|
102
102
|
value: 873
|
|
103
103
|
metadata:
|
|
104
|
-
short_label: Seuil
|
|
104
|
+
short_label: Seuil pour les contribuables célibataires, divorcés ou veufs
|
|
105
105
|
last_value_still_valid_on: "2024-01-03"
|
|
106
106
|
ipp_csv_id: param_decote
|
|
107
107
|
unit: currency_next_year
|
|
@@ -232,7 +232,9 @@ metadata:
|
|
|
232
232
|
- title: Article 2, c) de la Loi n° 2022-1726 du 30/12/2022 (LF pour 2023)
|
|
233
233
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000046845640
|
|
234
234
|
2023-01-01:
|
|
235
|
-
|
|
235
|
+
- title: Article 197, I.4.a) du Code général des impôts
|
|
236
|
+
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000046860759
|
|
237
|
+
- title: Loi 2023-1322, art. 2 du 29/12/2023 (LF pour 2024)
|
|
236
238
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000048727355
|
|
237
239
|
official_journal_date:
|
|
238
240
|
1986-01-01: "1986-12-31"
|
openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/decote/seuil_couple.yaml
CHANGED
|
@@ -39,7 +39,7 @@ values:
|
|
|
39
39
|
2023-01-01:
|
|
40
40
|
value: 1444
|
|
41
41
|
metadata:
|
|
42
|
-
short_label: Seuil
|
|
42
|
+
short_label: Seuil pour les contribuables en couple
|
|
43
43
|
last_value_still_valid_on: "2024-01-03"
|
|
44
44
|
ipp_csv_id: param_decote_b
|
|
45
45
|
unit: currency_next_year
|
|
@@ -78,7 +78,9 @@ metadata:
|
|
|
78
78
|
- title: Article 2, c) de la Loi n° 2022-1726 du 30/12/2022 (LF pour 2023)
|
|
79
79
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000046845640
|
|
80
80
|
2023-01-01:
|
|
81
|
-
|
|
81
|
+
- title: Article 197, I.4. a) du Code général des impôts
|
|
82
|
+
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000046860759
|
|
83
|
+
- title: Loi 2023-1322, art. 2 du 29/12/2023 (LF pour 2024)
|
|
82
84
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000048727355
|
|
83
85
|
official_journal_date:
|
|
84
86
|
2014-01-01: "2014-12-30"
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
description:
|
|
1
|
+
description: Quotient familial, réductions spécifiques et décote
|
|
2
2
|
metadata:
|
|
3
3
|
documentation_start: true
|
|
4
4
|
label_en: Family quotient ceiling and "decote"
|
|
5
5
|
order:
|
|
6
6
|
- quotient_familial
|
|
7
7
|
- plafond_avantages_procures_par_demi_part
|
|
8
|
-
- decote
|
|
9
8
|
- abat_dom
|
|
10
|
-
-
|
|
9
|
+
- decote
|
|
11
10
|
documentation: |-
|
|
12
11
|
Création du quotient familial en 1945 (Loi 45-0195 du 31/02/1945).
|
|
13
12
|
Les montants des plafonnements de quotient familial et de la décote se trouvent à l'article 197-2 du CGI.
|
|
@@ -49,7 +49,7 @@ values:
|
|
|
49
49
|
2023-01-01:
|
|
50
50
|
value: 1050
|
|
51
51
|
metadata:
|
|
52
|
-
short_label: Personnes seules ayant
|
|
52
|
+
short_label: Personnes seules ayant eu des enfants
|
|
53
53
|
last_value_still_valid_on: "2024-01-03"
|
|
54
54
|
label_en: Family quotient ceiling and "decote"
|
|
55
55
|
ipp_csv_id: plaf_qf_persseule
|
|
@@ -144,7 +144,9 @@ metadata:
|
|
|
144
144
|
- title: Article 2, b) de la Loi n° 2022-1726 du 30/12/2022 (LF pour 2023)
|
|
145
145
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000046845640
|
|
146
146
|
2023-01-01:
|
|
147
|
-
|
|
147
|
+
- title: Article 197, I.2.§3 du Code général des impôts
|
|
148
|
+
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000046860759
|
|
149
|
+
- title: Loi 2023-1322, art. 2 du 29/12/2023 (LF pour 2024)
|
|
148
150
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000048727355
|
|
149
151
|
official_journal_date:
|
|
150
152
|
1997-01-01: "1997-12-31"
|
|
@@ -205,7 +205,9 @@ metadata:
|
|
|
205
205
|
- title: Article 2, b) de la Loi n° 2022-1726 du 30/12/2022 (LF pour 2023)
|
|
206
206
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000046845640
|
|
207
207
|
2023-01-01:
|
|
208
|
-
|
|
208
|
+
- title: Article 197, I.2.§2 du Code général des impôts
|
|
209
|
+
href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000046860759
|
|
210
|
+
- title: Loi 2023-1322, art. 2 du 29/12/2023 (LF pour 2024)
|
|
209
211
|
href: https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000048727355
|
|
210
212
|
official_journal_date:
|
|
211
213
|
1986-01-01: "1986-12-31"
|