-
Notifications
You must be signed in to change notification settings - Fork 101
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
Correction et mise à jour de la taxation des revenus du capital dans l'IRPP #1034
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelques remarques cosmétiques
@@ -252,6 +286,87 @@ class epargne_revenus_imposables(Variable): | |||
definition_period = MONTH | |||
|
|||
|
|||
class rev_cap_bar(Variable): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comme ce sont des concepts intrinsèquemetn liés à l'impôt peut-être qu'il vaut mieux les garder dans l'IR plutôt que dans les revenus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enfait justement cette variable n'est jamais utilisée pour le calcul de l'IRPP. C'est une variable un peu fictive des revenus du capital bruts hors abattements qui est utilisée dans le calcul du revenu disponible, dans certaines bases ressources et dans le calcul de la CSG.
Etant donné qu'il faudrait alléger le fichier ir.py
(surchargé de variables et calculs pas directement liés à l'IR), ces deux variables me semblent mieux placées dans financier.py
non ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bonne remarque !
Peut-être à mettre dans mesures
alors.
Mais bon capital/financier
me convient aussi.
return (f2dc + f2ch + f2ts + f2go * majGO + f2tr + f2fu - avf) / 12 | ||
|
||
|
||
class rev_cap_lib(Variable): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Idem plus haut
# Bouvard: j'ai changé là mais pas dans le code, il faut chercher les f1uv | ||
# et les mettre en f1tvm comme pour salaire_imposable | ||
# Il faut aussi le faire en amont dans les tables | ||
################################################### |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moins de #####/
Proposition (faire edit)
Plan
1. Gains taxés comme des salaires
2. Autres plus-values (exonérées, au barème, ...)
3. Abattements sur plus-values
4. Plus-values taxées forfaitairement
5. Autres variables
CHANGELOG.md
Outdated
- Ajout de nouvelles cases de l'impôt (2013-2017) relatives aux plus-values ou aux revenus financiers | ||
- Réorganise le fichier plus_value.py afin de le rendre plus lisible | ||
- Corrige le calcul du RFR (afin de prendre en compte les revenus financiers et les plus-values qui sont éxonérés ou imposés forfaitairement) | ||
- Corrige et mets à jour le calcul des RVCM et plus-value taxés au barème, et de ceux taxés forfaitairement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Qu'est ce que c'est que les RCVM ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est les "Revenus des Capitaux et Valeurs Mobilières" je le rajoute dans le Changelog !
value_type = int | ||
unit = 'currency' | ||
entity = FoyerFiscal | ||
label = u"Pertes en capital sur prêts participatifs" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelle est la différence entre f2tu
et f2tv
?
avf = foyer_fiscal('avf', year) | ||
f2da = foyer_fiscal('f2da', year) | ||
f2ee = foyer_fiscal('f2ee', year) | ||
finpfl = parameters(period).impot_revenu.autre.finpfl # TODO remove ad check case |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il y a t'il des noms de variable plus explicites pour finpfl
et majGo
et avf
(avoirs_credits_fiscaux
) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui tu as raison :
- pour
finpfl
je propose de carrément virer ce paramètre - pour
majGO
je proposemajoration_revenus_reputes_distribues
? avoirs_credits_fiscaux
me parait très bien !
finpfl = parameters(period).impot_revenu.autre.finpfl # TODO remove ad check case | ||
majGO = parameters(period).impot_revenu.rvcm.majGO | ||
|
||
# year = period.start.year |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pourquoi garder ces éléments commentés ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui c'est vrai, c'est juste que je ne savais pas qui a mis ça et si ça servirait à quelqu'un mais tu as raison je vire :)
# return f2dc + f2gr + f2ch + f2ts + f2go + f2tr + f2fu - avf | ||
# elif year > 2011: | ||
# return f2dc + f2gr + f2ch + f2ts + f2go + f2tr + f2fu - avf + (f2da + f2ee) | ||
return (f2dc + f2gr + f2ch + f2ts + f2go * majGO + f2tr + f2fu - avf + (f2da + f2ee) * finpfl) / 12 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Que penserais-tu de quelque chose comme:
revenu_capital_au_bareme_annuel = (
f2dc + f2gr + f2ch + f2ts + f2tr + f2fu
+ f2go * majGO
+ (f2da + f2ee) * finpfl
- avf
)
return revenu_capital_au_bareme_annuel / 12
# Bouvard: j'ai changé là mais pas dans le code, il faut chercher les f1uv | ||
# et les mettre en f1tvm comme pour salaire_imposable | ||
# Il faut aussi le faire en amont dans les tables | ||
## PLAN : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙌 J'aime beaucoup le plan ^^ 🙌
|
||
# TODO: vérifier avant 2012 | ||
end = '2009-12-31' | ||
definition_period = YEAR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut ajouter une ligne vide à la fin du fichier :)
2002-01-01: | ||
value: 0.19 | ||
taux_pv_bspce2: | ||
description: Cessions de bons de souscription de parts de créateur d'entreprise (BSPCE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelle est la différence entre taux_pv_bspce1
et taux_pv_bspce2
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les BSPCE sont taxés soit à 19% soit à 30%, "si, à la date de cession des titres, vous exercez votre activité dans la société depuis moins de trois ans ou si, n’étant plus salarié de la société à la même date, vous y avez exercé votre activité pendant moins de trois ans."
Si tu as une suggestion de nom de paramètres plus explicites je suis preneuse :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Proposition :
tx_plus_values_bspce:
description: Taux général de taxation des cessions de bons de souscription de parts de créateur d'entreprise (BSPCE). (Un taux spécial est applicable sous conditions, cf tx_plus_values_bspce_conditionnel)
reference: openfisca
unit: /1
values:
2012-01-01:
value: 0.30
tx_plus_values_bspce_conditionnel:
description: Taux spécial de taxation des cessions de bons de souscription de parts de créateur d'entreprise (BSPCE). Ce taux est applicable si, à la date de cession des titres, vous exercez votre activité dans la société depuis moins de trois ans ou si, n’étant plus salarié de la société à la même date, vous y avez exercé votre activité pendant moins de trois ans.
reference: openfisca
unit: /1
values:
2018-01-01:
value: 0.19
values: | ||
2002-01-01: | ||
value: 0.30 | ||
taux_pv_report1: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelle est la différence entre taux_pv_report1
et taux_pv_report2
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les plus-values dont le report a expiré sont taxées soit à 24% soit à 19% si "(plus-value de cession de
titres réalisée par un créateur d’entreprise remplissant les conditions
prévues par l’article 200 A, 2bis, du CGI dans sa rédaction
applicable en 2012)."
Idem, si tu as un nom plus explicite je veux bien.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Proposition :
plus_values_report_conditionnel:
description: Taux forfaitaire spécial appliqué sous conditions (article 200 A, 2bis, du CGI) aux plus-values en report d'imposition et dont le report a expiré.
reference: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006069577&idArticle=LEGIARTI000026946928&dateTexte=&categorieLien=id
unit: /1
values:
2016-01-01:
value: 0.19
plus_values_report:
description: Taux forfaitaire général appliqué aux plus-values en report d'imposition et dont le report a expiré. Un taux spécial est applicable sous conditions(cf plus_values_report_conditionnel)
reference: openfisca
unit: /1
values:
2016-01-01:
value: 0.24
unit: /1 | ||
values: | ||
2016-01-01: | ||
value: 0.24 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut ajouter une ligne à la fin du fichier
Que pensez-vous de virer le paramètre
|
values: | ||
2002-01-01: | ||
value: 0.30 | ||
taux_pv_report1: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Proposition :
plus_values_report_conditionnel:
description: Taux forfaitaire spécial appliqué sous conditions (article 200 A, 2bis, du CGI) aux plus-values en report d'imposition et dont le report a expiré.
reference: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006069577&idArticle=LEGIARTI000026946928&dateTexte=&categorieLien=id
unit: /1
values:
2016-01-01:
value: 0.19
plus_values_report:
description: Taux forfaitaire général appliqué aux plus-values en report d'imposition et dont le report a expiré. Un taux spécial est applicable sous conditions(cf plus_values_report_conditionnel)
reference: openfisca
unit: /1
values:
2016-01-01:
value: 0.24
2002-01-01: | ||
value: 0.19 | ||
taux_pv_bspce2: | ||
description: Cessions de bons de souscription de parts de créateur d'entreprise (BSPCE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Proposition :
tx_plus_values_bspce:
description: Taux général de taxation des cessions de bons de souscription de parts de créateur d'entreprise (BSPCE). (Un taux spécial est applicable sous conditions, cf tx_plus_values_bspce_conditionnel)
reference: openfisca
unit: /1
values:
2012-01-01:
value: 0.30
tx_plus_values_bspce_conditionnel:
description: Taux spécial de taxation des cessions de bons de souscription de parts de créateur d'entreprise (BSPCE). Ce taux est applicable si, à la date de cession des titres, vous exercez votre activité dans la société depuis moins de trois ans ou si, n’étant plus salarié de la société à la même date, vous y avez exercé votre activité pendant moins de trois ans.
reference: openfisca
unit: /1
values:
2018-01-01:
value: 0.19
h12 = 0 | ||
TOT2 = max_(0, rev - h12) | ||
# i121= -min_(0,rev - h12) | ||
return rvcm_net |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
proposition
return max_(0, rvcm_apres_abattement - f2ca - deficit_rcm)
plus_values.taux4 * f3vf) | ||
|
||
return round_(out) | ||
return round_( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut mettre les opérateurs en début de ligne :)
''' | ||
impôt avant imputation de l'irpp | ||
''' | ||
iaidrdi = foyer_fiscal('iaidrdi', period) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il y a t'il une meilleur terminologie pour iaidrdi
, cont_rev_loc
ou teicaa
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est vrai que ce ne sont pas des noms très explicite .. après c'est un problème plus général du code de l'impôt dans Openfisca et cette PR ne traite que de la partie revenus des capitaux. Du coup, je préfère laisser ça pour plus tard.
prelevement_liberatoire = parameters(period).impot_revenu.rvcm.prelevement_liberatoire | ||
|
||
out = -(prelevement_liberatoire.action * f2da + prelevement_liberatoire.autre * f2ee) * not_(finpfl) \ | ||
out = -(prelevement_liberatoire.action * f2da + prelevement_liberatoire.autre * f2ee) \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Peut-on remplacer out
par quelque chose de plus explicite ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelques propositions supplémentaires d'éléments à modifier
…duree_detention")
… le calcul du RFR
…pérateurs en début de ligne)
c83c0eb
to
16668ab
Compare
Cette PR verrifie le calcul de l'impôt sur le revenu relatif au revenus du capital (RVCM et plus-values) depuis 2013 et, le cas échéant, le corrige ou le mets à jour et essaie de le simplifier pour le rendre plus clair.
NB : pour la taxation des plus-values, il reste encore un peu de travail à faire (prise en compte des moins-values, des abattements, taxation au système du quotient ..).
model/prelevements_obligatoires/impot_revenu/ir.py
.model/revenus/capital/financier.py
model/revenus/capital/plus_value.py
parameters/impot_revenu/plus_values.yaml
plus_value.py
afin de le rendre plus lisibleCes changements :