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

Supprime extra_param du calcul du RSA #1284

Merged
merged 8 commits into from
Mar 19, 2019
Merged

Conversation

bfabre01
Copy link

@bfabre01 bfabre01 commented Mar 8, 2019

  • Évolution du système socio-fiscal non rétrocompatible
  • Périodes concernées : à partir de 2017.
  • Zones impactées : prestations/minima_sociaux/rsa.py.
  • Détails :
    • Supprime extra_param du calcul du RSA. Le RSA est calculé au titre d'un mois donné (correspondant à l'argument period), en fonction des paramètres en vigueur durant ce mois-ci, et en fonction des ressources de period.last_3_months. On supprime la variable rsa_fictif, qui devient redondante.
    • Implique la suppression de la distinction des revenus d'activités moyennés et non-moyennés dans la base ressources : suppression des variables indemnite_fin_contrat_net, primes_salaires_net et salaire_net_hors_revenus_exceptionnels.
    • Autres variables impactées : rsa_base_ressources, rsa_base_ressources_minima_sociaux, rsa_base_ressources_prestations_familiales, rsa_enfant_a_charge, rsa_revenu_activite_individu, rsa_montant.

Guide de migration

  • Remplacer la variable rsa_fictif par rsa_montant.
  • Remplacer salaire_net_hors_revenus_exceptionnels par salaire_net
  • Utiliser les versions brutes de indemnite_fin_contrat et primes_salaires qui sont reflétées en net dans salaire_imposable

Cf. #1282

class rsa_montant(Variable):
value_type = float
label = u"Revenu de solidarité active, avant prise en compte de la non-calculabilité."
reference = u"https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=C0E3FD6701B46D63786815D26ADEAD58.tplgfr35s_2?idArticle=LEGIARTI000033979143&cidTexte=LEGITEXT000006074069&dateTexte=20180830"
entity = Famille
definition_period = MONTH

def formula_2017_01_01(famille, period, parameters):
Copy link
Member

Choose a reason for hiding this comment

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

Je ne pense que cela doit être supprimé. En effet la version 2009_06 semble contenir le RSA activité qu'il faut désormais exclure.

Copy link
Author

Choose a reason for hiding this comment

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

Non, c'est bon normalement je pense, car le paramètre P.pente dans la formule vaut zéro à partir de 2016 (création de la PPA et suppression du rsa activité). D'ailleurs, la formule supprimée commence en 2017, après la suppression du rsa activité.

@bfabre01 bfabre01 force-pushed the supprime-extra-param-rsa branch 2 times, most recently from ce60925 to fc51843 Compare March 12, 2019 13:29
@bfabre01
Copy link
Author

@guillett : c'es bon les tests passent. J'ai dû en adapter quelques uns, car le calcul change un peu (cf. le descriptif de la PR). Peux-tu stp relire rapidement cette PR ? On aimerait bien merger vite et importer au CASD dans la foulée. Merci !

@bfabre01
Copy link
Author

@guillet @Morendil : pour info, on aimerait merger cette semaine. On vous laisse regarder d'ici là. Sinon, on merge vendredi. Je ne pense pas (ou n'espère pas ;-) ) que la review soit très longue. Merci ! En cc @claireleroy @benjello @aguillouzouic

@bfabre01 bfabre01 force-pushed the supprime-extra-param-rsa branch from fc51843 to 6d12f73 Compare March 15, 2019 13:44
@Morendil
Copy link
Contributor

@bfabre01 Si c'est un breaking, il faut l'indiquer dans le titre, et pas le décrire comme "Amélioration technique"… D'autant plus que ces variables sont utilisées ailleurs, par exemple openfisca/tutorial ce qui implique une action de la part de @adrienpacifico; et comme vu précédemment Mes Aides devra vérifier l'effet sur le RSA. L'idéal c'est d'ajouter une section "Guide de migration" pour indiquer ce qu'il faut faire lorsqu'on dépendait de ces variables.

Je ne comprends pas d'ailleurs pourquoi salaire_net_hors_revenus_exceptionnels est supprimée alors qu'elle n'est pas concernée par la présence de exta_params, et la suppression de la totalité de la formule de rsa_revenu_activite_individu pour 2017 me semble aussi excessive.

@bfabre01
Copy link
Author

bfabre01 commented Mar 15, 2019

@Morendil : on supprime salaire_net_hors_revenus_exceptionnels car sans l'extra_param, cette variable n'a plus d'intérêt. Son utilisation était que si l'on demande le RSA au mois M, on fait la moyenne du RSA des mois M-1 à M-3, en prenant pour chacun de ces trois mois les ressources mensuelles moyennes sur ces mêmes trois mois, sauf pour certaines ressources, qui ne sont pas moyennées, mais attribués au mois où les revenus ont été perçus. Ces ressources non-moyennés sont les primes et les indemnité de fin de contrat. La variable salaire_net_hors_revenus_exceptionnels retire du salaire net ces revenus exceptionnels.
Sans l'extra_param, cette fonctinnalité de revenus non-moyennés n'existe plus. Donc, il n'y a plus d'intérêt à définir salaire_net_hors_revenus_exceptionnels.
Quant à la formule 2017 de rsa_revenu_activite_individu, elle n'est différente de la formule précédente que dans la prise en compte de ces revenus non-moyennés. Donc, en enlevant cette fonctionnalité, cette formule n'a plus d'intérêt.

Concernant le guide de migration : maintenant, on calcule le RSA du mois M en prenant les paramètres RSA en vigueur au mois M, et en prenant comme ressources la moyenne des trois mois précédents. Le changelog mentionne déjà ce changement. Je peux éventuellement détailler un peu plus.

Après, concernant les changements par rapport à la version actuelle avec extra_param, ils sont forcément un peu flous, car cette fonctionnalité est très peu documentée, et le code est un peu un casse-tête. Mais les changements sont vraiment mineurs. J'ai actualisé les tests .yaml avec, pour chaque cas où il y a un changement, le détail des formules que l'on doit obtenir (et non pas le seul chiffre). Je pense que c'est déjà pas mal.

@Morendil
Copy link
Contributor

sans l'extra_param, cette variable n'a plus d'intérêt

Comment expliques-tu qu'elle ait été utilisée dans un notebook?

@Morendil
Copy link
Contributor

Quant à la formule 2017 de rsa_revenu_activite_individu, elle n'est différente de la formule précédente que dans la prise en compte de ces revenus non-moyennés.

Au temps pour moi, ça se tient mais ça ne sautait pas aux yeux.

@Morendil
Copy link
Contributor

J'ai actualisé les tests .yaml avec, pour chaque cas où il y a un changement, le détail des formules que l'on doit obtenir (et non pas le seul chiffre). Je pense que c'est déjà pas mal.

Oui tout à fait, et merci pour ça :) Je suis aussi rassuré par le fait de ne pas voir de modifs dans les tests de situation Mes Aides.

@bfabre01
Copy link
Author

Je viens juste de signaler le changement majeur dans le changelog. Pour l'explication des changements, je voulais plus détailler, mais il n'y a pas vraiment matière. Je pense que tout y est.

CHANGELOG.md Outdated
* Périodes concernées : à partir de 2017.
* Zones impactées : `prestations/minima_sociaux/rsa.py`.
* Détails :
- Supprime `extra_param` du calcul du RSA. Le RSA est calculé au titre d'un mois donné (correspondant à l'argument `period`), en fonction des paramètres en vigueur durant ce mois-ci, et en fonction des ressources de period.last_3_months`. On supprime la variable `rsa_fictif`, qui devient redondante.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Supprime `extra_param` du calcul du RSA. Le RSA est calculé au titre d'un mois donné (correspondant à l'argument `period`), en fonction des paramètres en vigueur durant ce mois-ci, et en fonction des ressources de period.last_3_months`. On supprime la variable `rsa_fictif`, qui devient redondante.
- Supprime `extra_param` du calcul du RSA. Le RSA est calculé au titre d'un mois donné (correspondant à l'argument `period`), en fonction des paramètres en vigueur durant ce mois-ci, et en fonction des ressources de `period.last_3_months`. On supprime la variable `rsa_fictif`, qui devient redondante.

@Morendil
Copy link
Contributor

Pour info Legislation Explorer est également affecté, on utilise rsa_fictif… dans les tests unitaires 😓

@Morendil
Copy link
Contributor

@bfabre01 Merci pour le correctif du Changelog, et je viens de merger celui de @guillett 😅

@Morendil Morendil force-pushed the supprime-extra-param-rsa branch from 8597c39 to 6d12f73 Compare March 18, 2019 16:23
@Morendil Morendil force-pushed the supprime-extra-param-rsa branch from 6d12f73 to 09f0961 Compare March 18, 2019 16:25
Copy link
Contributor

@sandcha sandcha left a comment

Choose a reason for hiding this comment

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

Merci @bfabre01 pour la suppression de cet extra_param !
Et merci @Morendil pour le guide de migration !

Autres variables sur lesquelles cette PR intervient pour propager la mise à jour :
rsa_base_ressources
rsa_base_ressources_minima_sociaux
rsa_base_ressources_prestations_familiales
rsa_enfant_a_charge
rsa_revenu_activite_individu
rsa_montant

@bfabre01
Copy link
Author

Super, merci @sandcha et @Morendil pour vos retours ! Je merge.

@bfabre01
Copy link
Author

@sandcha : je viens d'ajouter la liste de variables que tu évoques dans le changelog.

@bfabre01 bfabre01 merged commit e5c95f7 into master Mar 19, 2019
@bfabre01 bfabre01 deleted the supprime-extra-param-rsa branch March 19, 2019 13:06
@fpagnoux
Copy link
Member

Heureux de voir les extra_params disparaître!

Par contre si je me souviens bien, ils étaient utilisés pour modéliser le mode de calcul un peu... complexe du RSA introduit en 2016 (ou 17?), et j'ai l'impression qu'après cette PR les nouvelles formules ignorent totalement ce mécanisme ("RSA fictif", "effets figés").

C'est potentiellement risqué, car à l'époque nos interlocuteurs de la DSS présentait ce mécanisme comme une des innovations du nouveau RSA, et les tests qui ont été modifiés dans cette PR avaient été co-écrits avec eux (cc @guillett).

@guillett
Copy link
Member

Tu as raison, il va falloir regarder ça de plus près. Je pense qu'il fallait faire un choix entre le calcul fiable de RSA et la suppression des extra_params. Selon moi, cette PR va dans le bon sens.
C'est une bonne occasion de faire une nouvelle passe de fiabilisation du RSA.

* Zones impactées : `prestations/minima_sociaux/rsa.py`.
* Détails :
- Supprime `extra_param` du calcul du RSA. Le RSA est calculé au titre d'un mois donné (correspondant à l'argument `period`), en fonction des paramètres en vigueur durant ce mois-ci, et en fonction des ressources de `period.last_3_months`. On supprime la variable `rsa_fictif`, qui devient redondante.
- Implique la suppression de la distinction des revenus d'activités moyennés et non-moyennés dans la base ressources : suppression des variables `indemnite_fin_contrat_net`, `primes_salaires_net` et `salaire_net_hors_revenus_exceptionnels`.
Copy link
Member

Choose a reason for hiding this comment

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

Je ne comprends pas l'implication. Pourquoi avoir supprimé les variables indemnite_fin_contrat_net, primes_salaires_net et pas ajouté une implémentation à partir des version brutes ?

Copy link
Author

Choose a reason for hiding this comment

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

@guillett: j'ai supprimé ces deux variables car leur distinction du salaire net n'a plus d'intérêt dans cette nouvelle version. Ces deux sources de revenu diffèrent des autres pour le calcul du RSA. De mémoire (cette PR date un peu), le RSA versé est égal à la moyenne des "RSA mensuels" des trois derniers mois. Pour un mois donné, le "RSA mensuel" prend comme ressources les ressources moyennes des trois derniers mois, sauf pour ces deux types de revenus où on les alloue au mois où ils ont été perçus. En supprimant l'extra_param, on enlève cette fonctionnalité. Donc, plus besoin de distinguer ces deux types de ressources du reste. Mais elles sont quand même comptabilisées dans le RSA : avant, on prenait salaire_net_hors_revenus_exceptionnels pour les ressources moyennées, et indemnite_fin_contrat_net et primes_salaires_net pour les ressources non moyennées. Maintenant, on considère seulement salaire_net, qui comprend indemnite_fin_contrat et primes_salaires (d'ailleurs, indemnite_fin_contrat et primes_salaires n'étaient pas liées avec indemnite_fin_contrat_net et primes_salaires_net).


- Remplacer la variable `rsa` par `rsa_fictif`
- Remplacer `salaire_net_hors_revenus_exceptionnels` par `salaire_net`
- Utiliser les versions brutes de `indemnite_fin_contrat` et `primes_salaires` qui sont reflétées en net dans `salaire_imposable`
Copy link
Member

Choose a reason for hiding this comment

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

Aussi, je ne comprends pas la suggestion d'utiliser les versions brutes. Ça veut dire quoi qu'elles « sont reflétées en net ».

Copy link
Author

Choose a reason for hiding this comment

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

J'avoue, je ne comprends plus trop ma formulation... Mais en tout cas, c'est forcément une implication directe avec le contenu de ma réponse précédente.

@benjello
Copy link
Member

@bfabre01 @guillett @Morendil : dans le guide de migrationne faut-il pas remplacer

Remplacer la variable rsa par rsa_fictif

par

Remplacer la variable rsa_fictif par rsa

?

Merci.
cc @claireleroy

@bfabre01
Copy link
Author

@benjello : oui en effet, il faut inverser. Je mettrais même
remplacer rsa_fictif par rsa_montant.
Car la variable rsa existait déjà avant, et contient le rsa non calculable.
De toute façon, il n'y a pas vraiment d'équivalent à rsa_fictif maintenant... Il s'agissait plus d'une variable intermédiaire qui a été supprimée. Donc, cette substitution n'est pas à faire de manière automatique.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants