Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code la flat tax (réforme Macron 2018) #1075

Merged
merged 50 commits into from
Aug 23, 2018
Merged

Conversation

bfabre01
Copy link
Contributor

@bfabre01 bfabre01 commented Aug 14, 2018

  • Évolution du système socio-fiscal.
  • Périodes concernées : toutes
  • Zones impactées:
    • model/mesures
    • model/prelevements_obligatoires/impot_revenu/credits_impot
    • model/prelevements_obligatoires/impot_revenu/ir
    • model/prelevements_obligatoires/prelevement_forfaitaire_liberatoire : déplacé dans
      model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/prelevement_forfaitaire_liberatoire
    • model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/__init__ (création)
    • model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/variables_communes (création)
    • model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/ir_prelevement_forfaitaire_unique (création)
    • model/prelevements_obligatoires/isf
    • model/prelevements_obligatoires/prelevements_obligatoires/prelevements_sociaux/contributions_sociales/capital
    • model/prestations/aides_logement
    • model/prestations/prestations_familiales/base_ressource
    • model/revenus/capital/financier
    • model/revenus/capital/plus_value
    • reforms/allocations_familiales_imposables
    • reforms/landais_piketty_saez
  • Détails :
    • Code le prélèvement forfaitaire unique (PFU) instauré dans la loi de finances 2018.
      Cette "flat tax" à 30 % se décompose en :
      • Une hausse des prélèvements sociaux (17,2%)
      • Un prélèvement forfaitaire au titre de l'impôt sur le revenu (12,8%). Pour coder cette partie, création d'une nouvelle variable d'impôt prelevement_forfaitaire_unique_ir, calculée dans model/prelevements_obligatoires/impot_revenu/prelevements_forfaitaires/ir_prelevement_forfaitaire_unique.
        Pour cela :
        • Redéfinition ou création des variables d'assurance-vie et des variables d'épargne logement (PEL, CEL) pour s'adapter aux nouvelles assiettes
        • Définition de nouvelles assiettes revenus_capitaux_prelevement_forfaitaire_unique_ir et plus_values_prelevement_forfaitaire_unique_ir, en remplacement des anciennes variables d'assiettes injectées dans les différents dispositifs et bases ressources (revenus_capitaux_prelevement_bareme, revenus_capitaux_prelevement_liberatoire, rev_cat_rvcm, rev_cat_pv, rfr_rvcm, etc.).
        • Ensemble des variables neutralisées à partir de 2018 : rev_cat_pv rev_cat_rvcm rfr_rvcm tax_rvcm_forfaitaire taxation_plus_values_hors_bareme,
          revenus_capitaux_prelevement_bareme, revenus_capitaux_prelevement_liberatoire, prelevement_forfaitaire_liberatoire,
          , f2ch, f2ts, prlire,
          acompte_ir_elus_locaux, prelevement_forfaitaire_non_liberatoire, acomptes_ir, variables commençant par assurance_vie_pl_non_anonyme, assurance_vie_pl_anonyme.
    • Note : pour les revenus 2018, on ne dispose pas du formulaire de déclaration des revenus.
      Hypothèse : la structure des cases du formulaire 2042 et 2042C est identique entre 2018 et 2019 (i.e. entre les revenus 2017 et 2018). Les assiettes du PFU sont donc définies avec les cases des formulaires de l'IR 2018 sur revenus 2017. Et on neutralise les variables d'acomptes d'impôt.
    • Changements mineurs concernant les années antérieures à 2018 :
      • Actualise certaines variables fiscales pour 2017 : cases 2TT, 2TU et 2TV, variable rev_cat_pv.
      • Renomme rfr_plus_values en rfr_plus_values_hors_rni.
      • Renomme rfr_rvcm par rfr_rvcm_abattements_a_reintegrer

@bfabre01 bfabre01 force-pushed the taxation-capital-budget-2018 branch 4 times, most recently from f3fefef to 26e31b4 Compare August 20, 2018 15:40
@bfabre01 bfabre01 changed the title WIP: code la flat tax (réforme Macron 2018) Code la flat tax (réforme Macron 2018) Aug 21, 2018
@@ -1974,10 +2007,11 @@ def formula(foyer_fiscal, period, parameters):
abattement_net_duree_detention_retraite_dirigeant_pme = foyer_fiscal('abattement_net_duree_detention_retraite_dirigeant_pme', period)
f2dm = foyer_fiscal('f2dm', period)
microentreprise = foyer_fiscal('microentreprise', period)
revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD])
rfr_rev_capitaux_mobiliers = foyer_fiscal('rfr_rvcm', period) # Supprimée à partir de 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Etant donné que la variable rfr_rvcm n'existe plus à partir de 2018 (cf. nouvelle end_date) je pense que cette formule ne vas plus fonctionner. Il faudrait faire deux formules au sein de rfr, l'une avant 2018 et l'autre après.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claireleroy : mettre deux formules serait un peu lourd et apparemment, les variables avec un argument end à partir d'une date, si elle sont appelées dans une formule après cette date, sont mises à zéro. J'ai testé ça dans l'exemple que tu prends ici : \tests\formulas\rfr.yaml

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

autant pour moi!

fon = foyer_fiscal('fon', period)
ric_i = foyer_fiscal.members('ric', period)
rag_i = foyer_fiscal.members('rag', period)
rpns_exon_i = foyer_fiscal.members('rpns_exon', period)
rpns_pvct_i = foyer_fiscal.members('rpns_pvct', period)
revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD])
revenus_capitaux_prelevement_bareme = foyer_fiscal('revenus_capitaux_prelevement_bareme', period, options = [ADD]) # Supprimée à partir de 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idem que plus haut.

revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD])
rev_cat_rvcm = foyer_fiscal('rev_cat_rvcm', period)
rev_cat_rvcm = foyer_fiscal('rev_cat_rvcm', period) # Supprimée à partir de 2018
revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD]) # Supprimée à partir de 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idem que plus haut

revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD])
rev_cat_rvcm = foyer_fiscal('rev_cat_rvcm', period)
rev_cat_rvcm = foyer_fiscal('rev_cat_rvcm', period) # Supprimée en 2018
revenus_capitaux_prelevement_liberatoire = foyer_fiscal('revenus_capitaux_prelevement_liberatoire', period, options = [ADD]) # Supprimée en 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idem que plus haut

rni = foyer_fiscal('rni')
rpns_exon_holder = foyer_fiscal.members('rpns_exon')
rpns_pvce_holder = foyer_fiscal.members('rpns_pvce')
revenus_capitaux_prelevement_liberatoire = simulation.calculate_add('revenus_capitaux_prelevement_liberatoire')
rfr_rvcm = foyer_fiscal('rfr_rvcm') # Supprimée en 2018
revenus_capitaux_prelevement_liberatoire = simulation.calculate_add('revenus_capitaux_prelevement_liberatoire') # Supprimée en 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem que plus haut

rpns_pvce = foyer_fiscal.sum(rpns_pvce_i)


# Notes :
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ces notes alourdissent beaucoup le code je trouve. Est-ce qu'on peut les mettre dans une issue qui regrouperait toutes les hypothèses faites pour le calcul du PFU ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claireleroy : perso, je laisserais ces notes ici, car elles sont très spécifiques à une formule en particulier. Les mettre à part augmente la proba que quelqu'un se replongeant dans la formule ne lise pas ces commentaires. En revanche, je comptais en effet faire une doc à part résumant les hypothèse générales que l'on fait pour coder le PFU, notamment celles liées au fait que l'on n'a toujours pas le formulaire 2042 pour l'impôt 2019 sur revenus 2018. Qu'en penses-tu ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ça me va !


def formula_2018_01_01(foyer_fiscal, period, parameters):
'''
Cf. docstring de la formule précédente
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce que pour alléger le code on peut virer des docstring tout ce qui concerne les différences avec la formule précedente (puisque c'est visible en regardant la formule précédente justement) et garder seulement les commentaires cruciaux (de type hypothèses, incertitudes etc.) ?
Par ailleurs pour ce qui est des hypothèses concernant le PFU on pourrait faire une grande issue qui résume tout ça (cf. commentaire plus haut)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suis d'accord ! Le seul cas comme ça que j'ai gardé est celui pour rev_cat_rvcm, où la diff par rapport à la formule précédente est spécifique à la variable, et pas liée aux hypothèses générales associées au PFU.

@frtomas frtomas removed the contrib:msa Identification des sujets MSA label Aug 22, 2018
@bfabre01 bfabre01 force-pushed the taxation-capital-budget-2018 branch 2 times, most recently from 887438e to e639b73 Compare August 22, 2018 13:18
@bfabre01 bfabre01 force-pushed the taxation-capital-budget-2018 branch from 04d5f8e to 82530ee Compare August 23, 2018 11:46
@bfabre01 bfabre01 force-pushed the taxation-capital-budget-2018 branch from ca5f524 to 31839f9 Compare August 23, 2018 15:10
@bfabre01 bfabre01 merged commit 520be7e into master Aug 23, 2018
@bfabre01 bfabre01 deleted the taxation-capital-budget-2018 branch August 24, 2018 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants