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

Msa fiabilisation rsa #1098

Merged
merged 12 commits into from
Sep 20, 2018
Merged

Msa fiabilisation rsa #1098

merged 12 commits into from
Sep 20, 2018

Conversation

mtifarine
Copy link
Contributor

@mtifarine mtifarine commented Aug 27, 2018

  • Évolution du système socio-fiscal.
  • Périodes concernées : toutes.
  • Zones impactées :
    • prestations/minima_sociaux/rsa.
    • parameters/prestations/prestations_familiales/af/bmaf
    • parameters/prestations/minima_sociaux/rsa/age_min_rsa_jeune
    • parameters/prestations/minima_sociaux/rsa/age_max_rsa_jeune
    • parameters/prestations/minima_sociaux/rsa/rsa_jeune
  • Détails :
    • Fiabilisation du calcul du revenu de solidarité active (RSA) au 1er avril 2018.

@mtifarine mtifarine added the contrib:msa Identification des sujets MSA label Aug 27, 2018
@guillett guillett requested review from frtomas and removed request for guillett and Anna-Livia August 29, 2018 16:25
@guillett
Copy link
Member

Je viens de supprimer la demande de revue à @Anna-Livia et moi-même. J'ai mis @frtomas.

Je propose comme convenu par téléphone que vous fassiez une revue entre vous puis demandiez une revue à la communauté.

C'est ok pour vous ?

class rsa_condition_heures_travail_remplie(Variable):
value_type = bool
entity = Famille
label = u"Éligible à la RSA si la perssone est moins de vingt-cinq ans et avoir travaillé deux ans sur les 3 dernières années"
Copy link
Contributor

Choose a reason for hiding this comment

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

Attention au label : "Éligible au RSA si la personne a moins de vingt-cinq ans et a travaillé deux ans sur les trois dernières années"

'paje_base',
]
prestations_autres = [
'rsa_forfait_asf',
Copy link
Contributor

Choose a reason for hiding this comment

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

Existe-t-il une référence qui explique le passage de rsa_forfait_asf des prestations_calculees aux prestations_autres ?

@@ -9,6 +9,13 @@
from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf


class rsa_condition_heures_travail_remplie(Variable):
value_type = bool
entity = Famille
Copy link
Contributor

Choose a reason for hiding this comment

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

Il me semble que cette donnée aurait plus de sens à porter sur un individu plutôt que sur toute la famille.


etudiant_i = famille.members('etudiant', period)

rsa_condition_heures_travail_remplie = famille("rsa_condition_heures_travail_remplie", period)
Copy link
Contributor

Choose a reason for hiding this comment

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

Avec le changement de cette donnée de famille à individu évoqué précédement :
rsa_condition_heures_travail_remplie_i = famille.members("rsa_condition_heures_travail_remplie", period)


rsa_condition_heures_travail_remplie = famille("rsa_condition_heures_travail_remplie", period)
# rsa_nb_enfants est à valeur pour une famille, il faut le projeter sur les individus avant de faire une opération avec age_i
condition_age_i = famille.project(rsa_nb_enfants > 0) + (age_i > rsa.age_pac) + rsa_condition_heures_travail_remplie
Copy link
Contributor

Choose a reason for hiding this comment

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

Existe-t-il une référence concernant une condition d'heures travaillées pour la perception du RSA ?

Peut être passer par une deuxième variable distincte, rsa_condition_heures_travail_remplie ne correspond pas vraiment à une condition_age_i.
Quelque chose comme :

condition_age_i = famille.project(rsa_nb_enfants > 0) + (age_i > rsa.age_pac)
condition_age_et_heures_travail_i = condition_age_i + rsa_condition_heures_travail_remplie_i

 return (
            famille.any(condition_age_et_heures_travail_i * not_(etudiant_i), role = Famille.PARENT)
            * condition_nationalite
            * rsa_eligibilite_tns
            )

@frtomas frtomas requested a review from guillett August 31, 2018 07:56
@frtomas
Copy link
Contributor

frtomas commented Aug 31, 2018

@guillett il manque toujours une référence pour laquelle nous sommes en attente de réponse, mais en dehors de ça, le reste me semble bon.
Je te laisse regarder et nous dire s'il y a des points que j'aurai omis.

Copy link
Member

@guillett guillett left a comment

Choose a reason for hiding this comment

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

J'ai fait une première passe.

@@ -0,0 +1,7 @@
description: Limite d'âge pour bénéficier du revenu de solidarité active Jeune
Copy link
Member

Choose a reason for hiding this comment

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

Limite d'âge ne permet pas de savoir si c'est un minimum ou un maximum.

Âge maximal pour [...] me parait donc plus explicite.

@@ -0,0 +1,7 @@
description: Limite d'âge pour bénéficier du revenu de solidarité active Jeune
Copy link
Member

Choose a reason for hiding this comment

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

Limite d'âge ne permet pas de savoir si c'est un minimum ou un maximum.

Âge minimal pour [...] me parait donc plus explicite.

condition_nationalite_i = famille.members('rsa_condition_nationalite', period)
condition_nationalite = famille.any(condition_nationalite_i, role = Famille.PARENT)

rmi = parameters(period).prestations.minima_sociaux.rmi
Copy link
Member

Choose a reason for hiding this comment

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

Cette variable ne semble pas utilisée.

@@ -769,6 +819,30 @@ def formula(famille, period, parameters):
* rsa_eligibilite_tns
)

def formula_2018_01_01(famille, period, parameters):
rsa_nb_enfants = famille('rsa_nb_enfants', period)
Copy link
Member

Choose a reason for hiding this comment

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

Pourquoi cette nouvelle formule est appliquée à partir du 1/1/18 ?

Copy link
Member

Choose a reason for hiding this comment

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

Est-ce vraiment nouveau au 1/1/18 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oui c'est vrai, cette formule est appliquée à partir de 1/1/2010 selon la référence "https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006074069&idArticle=LEGIARTI000021636574&dateTexte=&categorieLien=cid"
pour l'éligibilité au RSA_Jeune

@@ -637,10 +673,24 @@ def formula_2016_10(famille, mois_courant, parameters, mois_demande):

return montant

def formula_2018_01_01(famille, mois_courant, parameters, mois_demande):
Copy link
Member

Choose a reason for hiding this comment

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

Cette formule ne change rien par rapport à la formule précédente. Cet ajout est-il légitime ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

le changement dans cette nouvelle formule est dans la période du calcul de la rsa_deforfait_logement ('mois_courant' et pas mois_demande')

Copy link
Member

Choose a reason for hiding this comment

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

Ok, merci désolé pour le bruit.

Copy link
Member

Choose a reason for hiding this comment

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

Cette évolution doit-elle se faire au 1/1/18 ? ou bien venir corriger la formule actuelle ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Lorsque j'ai corrigé la formule actuelle, les tests du fichier rsa_2017.py sont échoué.

Copy link
Member

Choose a reason for hiding this comment

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

@frtomas @JenniferTelep il faut que vous voyez ensemble les bases juridiques de ces modifications.

Si nécessaire, il faudra modifier les tests RSA 2017.

@mtifarine
Copy link
Contributor Author

@guillett j'ai corrigé les formules existantes "rsa_base_ressources_prestations_familiales" et "rsa_fictif" et aussi les tests 2017 "rsa_2017.ymal" selon les références fournies par @JenniferTelep

@mtifarine mtifarine requested a review from guillett September 4, 2018 13:46
@mtifarine mtifarine requested a review from Anna-Livia September 7, 2018 12:46
@@ -231,6 +238,7 @@ class rsa_base_ressources_prestations_familiales(Variable):
value_type = float
entity = Famille
label = u"Prestations familiales inclues dans la base ressource RSA/RMI"
reference = u"https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=DA7C73D70BE5D3C7BE36D690E75FDC83.tplgfr38s_3?idArticle=LEGIARTI000020526199&cidTexte=LEGITEXT000006074069&categorieLien=id&dateTexte=20161231"
Copy link
Member

Choose a reason for hiding this comment

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

Top !

@@ -9,6 +9,13 @@
from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf


class rsa_condition_heures_travail_remplie(Variable):
Copy link
Member

Choose a reason for hiding this comment

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

Pour mieux refléter le contenu de cette variable elle pourrait être renommée en rsa_jeune_condition_heures_travail_remplie.


cf_non_majore_avant_cumul = famille('cf_non_majore_avant_cumul', mois_demande)
cf = famille('cf', mois_demande)
# La période de calcul du 'cf_non_majore_avant_cumul' correspond au mois_courant et pas au mois_demande.
Copy link
Member

Choose a reason for hiding this comment

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

Ce commentaire est n'apporte pas plus d'informations que la ligne qui le suit. Je pense qu'on peut le supprimer.

af_base = famille('af_base', mois_demande)
af = famille('af', mois_demande)
af_base = famille('af_base', mois_courant)
# La période de calcul du 'af' correspond au mois_courant et pas au mois_demande.
Copy link
Member

Choose a reason for hiding this comment

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

Ce commentaire est n'apporte pas plus d'informations que la ligne qui le suit. Je pense qu'on peut le supprimer.

@@ -290,30 +298,28 @@ def formula_2014_04_01(famille, period):

return result


def formula_2017_01_01(famille, mois_demande, parameters, mois_courant):
Copy link
Member

Choose a reason for hiding this comment

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

Les modifications faites dans cette formule (ie. à partir de 1/1/2017) ne devraient elles pas être faites au moins à partir du 15/1/2009 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@guillett mais la il existe déjà une autre formule 2014_04_01?!

J'ai ajouté une référence législative en commentaire au début de la formule 2017_01_01

Copy link
Contributor Author

@mtifarine mtifarine Sep 14, 2018

Choose a reason for hiding this comment

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

@guillett @JenniferTelep @jmdallais d’après le retour de l'expert, il y a deux périodes de prise en compte des prestations avant et après janvier 2017:
• A partir du 1er janvier 2017, les prestations sont prises en compte sur les 3 derniers mois précédant l'examen ou le réexamen périodique du droit au RSA, soit le trimestre de référence (cf. article R262-7 du code de l'action sociale et des familles après janvier 2017 :
"https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=821E7B02C2E9018855EF67F6E70FE58A.tplgfr28s_3?idArticle=LEGIARTI000020526199&cidTexte=LEGITEXT000006074069&categorieLien=id&dateTexte=20161231"
• Les prestations avant janvier 2017 étaient prises en compte pour le mois en cours, soit le trimestre de droit (article R262-7 en vigueur du 1er juin 2009 au 31 décembre 2016:
"https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=762C36DAF3970B2FE048DF7E43CCEA11.tplgfr28s_3?idArticle=LEGIARTI000020526199&cidTexte=LEGITEXT000006074069&categorieLien=id&dateTexte=20161231"

'paje_base',
]
prestations_autres = [
'rsa_forfait_asf',
Copy link
Member

Choose a reason for hiding this comment

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

La liste des prestations devrait être triée par ordre alphabétique.

* condition_nationalite
* rsa_eligibilite_tns
)

def formula_2010_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 comprends pas le besoin de créer une nouvelle formule. Peux-tu ajouter une référence législative en commentaire au début de fonction ?

rsa_fictif:
2016-12: 1145 - 156 - 500 - 130 # 359
2016-11: 1145 - 156 - 500 # 489
2016-10: 916 - 156 - 500 # 260
Copy link
Member

Choose a reason for hiding this comment

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

Est-il possible d'expliciter à quoi correspond les 3 ou 4 composantes des calculs ?

@jmdallais
Copy link

jmdallais commented Sep 14, 2018

@guillett , concernant tes questions sur les prestations prises en compte pour le calcul du RSA, pouvons nous créer une issue pour tracer le problème et toi valider cette PR stp ? Planning PNDS oblige.
Merci de ton retour.

Pour info. : @JenniferTelep , @ThibaultCCMSA @Lashchuk, @frtomas @mtifarine

* condition_nationalite
* rsa_eligibilite_tns
)

# u"https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006074069&idArticle=LEGIARTI000021636574&dateTexte=&categorieLien=cid"
def formula_2010_01_01(famille, period, parameters):
Copy link
Contributor

Choose a reason for hiding this comment

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

Cette formule est textuellement très proche de la formule antérieure, à deux lignes et une condition près. Il me semble qu'il serait possible d'éviter cette duplication, par exemple en introduisant un paramètre législatif qui prendrait la valeur "vrai" à partir de 2010.

Copy link
Contributor Author

@mtifarine mtifarine Sep 14, 2018

Choose a reason for hiding this comment

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

@Morendil Oui c'est fait, j'ai ajouté le paramètre rsa_jeune.yaml qui est à "vrai" a partir de 2010.
@jmdallais, @guillett @JenniferTelep , @ThibaultCCMSA, @frtomas

@guillett
Copy link
Member

J'étais hors les murs jeudi et vendredi avec une connectivité limitée. Merci beaucoup @Morendil pour le suivi.

@openfisca/france-msa les PRs pour être mergées doivent créer de la valeur et limiter génération de dette technique.

Vous ne devriez pas mettre vos mises en production en dépendance avec les intégrations dans master.

@guillett
Copy link
Member

Cela étant dit, on va faire faire en sorte que cette PR soit mergée rapidement.

@jmdallais
Copy link

@guillett , cette dette technique est déjà dans OF, elle n'a pas été générée par les travaux de fiabilisation qui, si l'on fait abstraction de ce cas précis, ont créé de la valeur. Me trompe-je ?
Quant aux MEP PNDS en adhérence avec les travaux OF, l'idée est bien de limiter les dépendances, mais il arrive que ce soit impossible. Et à ce jour, tel est le cas.
@Lashchuk , @ThibaultCCMSA , @JenniferTelep , @frtomas

@guillett
Copy link
Member

@jmdallais merci pour ton commentaire. L'équilibre entre création de valeur et création de dette technique est toujours relativement précaire mais je te rejoints les travaux apportent de la valeur à OpenFisca-France. Merci à tous pour ces contributions.

@mtifarine mtifarine requested a review from guillett September 19, 2018 09:15
@guillett guillett dismissed their stale review September 20, 2018 08:32

Ma revue n'est plus pertinente car des modifications ont été faites ultérieurement.

@guillett guillett requested review from frtomas and removed request for guillett September 20, 2018 08:32
@guillett
Copy link
Member

Je ne suis pas en capacité de faire la revue de cette PR. @frtomas peux-tu faire une revue et « Approve changes » une fois que tu en es satisfait ?

@openfisca/france-admin avez-vous le temps pour faire des revues complémentaires ?

@guillett guillett removed the request for review from Anna-Livia September 20, 2018 08:34
Copy link
Member

@benjello benjello left a comment

Choose a reason for hiding this comment

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

Changement mineur sur un commentaire.
Rajouter un peu de contexte dans le changelog ou la docstring de 2017 pour expliquer le changement mois_demande -> mois_courant.

J'approuve les changements pour ne pas bloquer la PR mais svp prenez en compte mes petites remarques.

@@ -290,30 +298,25 @@ def formula_2014_04_01(famille, period):

return result

# u"https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=BAC96F4D0B5DD1B24170D2B57E1A0AE7.tplgfr38s_3?idArticle=LEGIARTI000033979130&cidTexte=LEGITEXT000006074069&categorieLien=id&dateTexte="
Copy link
Member

Choose a reason for hiding this comment

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

Si cela concerne la formule ci dessous la mettre sous def formula. Voir carrément rédiger une docstring

@mtifarine mtifarine force-pushed the msa_fiabilisation_rsa branch from 20bc2e1 to 6d1d965 Compare September 20, 2018 14:18
@frtomas frtomas merged commit c3d36e9 into master Sep 20, 2018
@Morendil Morendil deleted the msa_fiabilisation_rsa branch October 14, 2018 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contrib:msa Identification des sujets MSA kind:evolution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants