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

Ajoute une première implémentation des bourses sur critères sociaux #1484

Merged
merged 1 commit into from
Apr 9, 2021

Conversation

guillett
Copy link
Member

@guillett guillett commented Mar 5, 2021

  • Évolution du système socio-fiscal.
  • Périodes concernées : à partir du 08/08/2020.
  • Zones impactées : prestations/bourses_superieur.
  • Détails :
    • Ajoute une première implémentation des bourses sur critères sociaux

Ces changements (effacez les lignes ne correspondant pas à votre cas) :

  • Ajoutent une fonctionnalité (par exemple ajout d'une variable).

Pour le moment pas de prise en compte de la nationalité, l'hypothèse est que les personnes sont de nationalité française.

@sandcha
Copy link
Contributor

sandcha commented Mar 22, 2021

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 @guillett ! 🙌
Voici un premier retour sur la forme.

Comment on lines 110 to 111
metadata:
type: single_amount
Copy link
Contributor

Choose a reason for hiding this comment

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

Remonter cette information en haut de fichier pour les humains que nous sommes ?

Comment on lines 145 to 152
try:
from haversine import haversine_vector, Unit
distances = haversine_vector(depcom_coords, domicile_familial_coords, Unit.KILOMETERS)
return [distance if distance != float('nan') else -1 for distance in distances]
except ModuleNotFoundError:
return -1
else:
raise
Copy link
Contributor

Choose a reason for hiding this comment

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

La distance calculée n'est-elle pas une valeur d'entrée au modèle ? Supprimer ce calcul hors du champs de la règlementation modélisée ?

De plus, il apporte une complexité au modèle alors que la circulaire n'a que deux seuils :

  • de 30 à 249 kilomètres : 1 point ;
  • de 250 kilomètres et plus : 2 points.

Copy link
Member Author

Choose a reason for hiding this comment

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

Je ne comprends pas ta suggestion, sortir d'OpenFisca le calcul de la distance ? Pour moi, c'était important au contraire de voir dans quelle mesure OpenFisca permet de calculer ce nouveau type de problème / éléments de logique.

Copy link
Contributor

Choose a reason for hiding this comment

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

Oui, c'est bien ça dans le sens où OpenFisca a pour objet de représenter la règlementation et qu'ici le calcul de la distance n'est pas spécifié dans la réglementation modélisée.

Le problème du calcul de distance me semble aussi intéressant mais cet exemple ne semble pas approprié pour figurer dans /model puisque nous sortons du périmètre de ce que nous dit le texte et que nous manquons d'information. 🤔 @benjello @MattiSG auront peut-être un avis complémentaire.

Copy link
Member Author

Choose a reason for hiding this comment

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

Pour moi OpenFisca permet de cacher/prendre à sa charge de la complexité. C'est pour cette raison qu'il me parait opportun que ce calcul soit faisable par OpenFisca. Il est toujours possible d'indiquer une valeur à cette variable pour ne pas déléguer le calcul à OpenFisca.

Copy link
Member

@benjello benjello Mar 25, 2021

Choose a reason for hiding this comment

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

Je suis pour le plus plutôt que le moins. Surtout si c'est bien balisé comme ici et que cela facilite la vie des contributeurs, au moins temporairement.

openfisca_france/model/prestations/bourses_superieur.py Outdated Show resolved Hide resolved
from openfisca_france.model.base import FoyerFiscal, Individu, Variable, MONTH
from openfisca_france.france_taxbenefitsystem import COUNTRY_DIR

# https://www.education.gouv.fr/bo/20/Hebdo25/ESRS2013435C.htm
Copy link
Contributor

Choose a reason for hiding this comment

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

Joindre ce lien aux références des variables concernées afin qu'il soit plus facilement découvrante et puisse apparaître dans l'API web/les interfaces ?

openfisca_france/model/prestations/bourses_superieur.py Outdated Show resolved Hide resolved
openfisca_france/model/prestations/bourses_superieur.py Outdated Show resolved Hide resolved
openfisca_france/model/prestations/bourses_superieur.py Outdated Show resolved Hide resolved
return (age <= 28) + (handicap)


class bourse_criteres_sociaux_base_ressource(Variable):
Copy link
Contributor

Choose a reason for hiding this comment

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

Ressources multiples (et propager le nommage) :

Suggested change
class bourse_criteres_sociaux_base_ressource(Variable):
class bourse_criteres_sociaux_base_ressources(Variable):

@guillett
Copy link
Member Author

guillett commented Apr 2, 2021

@sandcha merci beaucoup pour tes relectures. Comme discuté, j'ai supprimé le calcul de la distance d'OpenFisca (:crying_cat_face: ) pourrais-tu faire une nouvelle passe et me dire s'il reste des choses bloquantes pour un merge ? Merci !!

@guillett guillett force-pushed the bourse_criteres_sociaux branch 2 times, most recently from 823015f to 0650c71 Compare April 6, 2021 08:13
@sandcha
Copy link
Contributor

sandcha commented Apr 6, 2021

Merci pour les dernières mises à jour !
@MattiSG, c'est la PR évoquée en visio (exceptions dans les formules, calcul des distances logement-fac/école). Elle est de nouveau prête à revue et en lien avec la question suivante que tu as posée sur l'aide jeune diplômé ancien boursier (qui copie-colle la variable bourse_criteres_sociaux de cette PR-ci).

@MattiSG
Copy link
Member

MattiSG commented Apr 6, 2021

en lien avec la question suivante que tu as posée sur l'aide jeune diplômé ancien boursier (qui copie-colle la variable bourse_criteres_sociaux de cette PR-ci).

Je vois en effet qu'il y a énormément de duplication d'une PR à l'autre. Je ne sais vraiment pas comment traiter cela, car je ne sais pas où faire mes retours sans les dupliquer partout, du coup 😕

@guillett
Copy link
Member Author

guillett commented Apr 7, 2021

Effectivement, il y a beaucoup de PR ouvertes avec des interdépendances.

De mon côté, pour éviter de dupliquer du code, j'ai empilé les PRs (toujours avec master en base) et avec pour conséquence des PR ouvertes avec le même contenu.

Si j'ai bien compris ton approche Sandra, tu as préféré copier-coller les variables des PRs ouvertes dans ta PE pour y faire référence.

Screenshot_2021-04-07 mindmap-mesaides

cf. https://whimsical.com/mindmap-mesaides-MP4sGq37oVtEUEQYTG4KLh@7YNFXnKbZAJWv7aMPxyM4

Mon approche permet, plus facilement, de créer une version qui contient les PRs ouvertes et qui permet de préparer le terrain côté simulateur.

Désolé Matti pour ne pas avoir explicité sans avant.

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 beaucoup @guillett ! 🤩
Testé et pas d'erreur détectée sur le périmètre modélisé.

Je propose néanmoins de rassembler deux variables. Il m'aurait également semblé utile d'avoir une variable sur la notion d'éligibilité tout critères compris. Enfin, les remarques comprennent aussi quelques propositions de mise en cohérence sur les valeurs par défauts et descriptions/libellés.

"Circulaire ESRS2013435C - Annexe 3 - Conditions de ressources et points de charge / 1 - Conditions de ressources",
"https://www.education.gouv.fr/bo/20/Hebdo25/ESRS2013435C.htm"
]
label = "Échelon de la bourse sur critères sociaux de l'enseignement supérieur perçue (de 0 à 7)"
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
label = "Échelon de la bourse sur critères sociaux de l'enseignement supérieur perçue (de 0 à 7)"
label = "Montant de la bourse sur critères sociaux (BCS) de l'enseignement supérieur perçue"

Acronyme rencontré sur service-public.

metadata:
type: single_amount
reference:
- Arrêté du 22 juillet 2020 relatif aux taux des bourses d'enseignement supérieur du ministère de l'enseignement supérieur, de la recherche et de l'innovation pour l'année universitaire 2020-2021
Copy link
Contributor

Choose a reason for hiding this comment

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

Présenter le texte sur deux lignes ?

Suggested change
- Arrêté du 22 juillet 2020 relatif aux taux des bourses d'enseignement supérieur du ministère de l'enseignement supérieur, de la recherche et de l'innovation pour l'année universitaire 2020-2021
- Arrêté du 22 juillet 2020 relatif aux taux des bourses d'enseignement supérieur \
du ministère de l'enseignement supérieur, de la recherche et de l'innovation pour l'année universitaire 2020-2021

- https://www.legifrance.gouv.fr/eli/arrete/2020/7/22/ESRS2015874A/jo/texte
brackets:
- threshold:
2020-06-08:
Copy link
Contributor

Choose a reason for hiding this comment

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

D'où est-ce provient la date d'entrée en application des paramètres ? 🤔
C'est que lien légifrance ci-dessus est en date du 22 juillet 2020.

Copy link
Member Author

Choose a reason for hiding this comment

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

J'avais repris la date de la circulaire je vais corriger.

reference = [
"Circulaire ESRS2013435C - Annexe 7 - Taux et cumul de la bourse d'enseignement supérieur sur critères sociaux / 1 - Les taux de bourse d'enseignement supérieur sur critères sociaux"
]
label = "Ressources prise en compte pour la bourse sur critères sociaux de l'enseignement supérieur"
Copy link
Contributor

Choose a reason for hiding this comment

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

Au libellé, on imagine traiter la base de ressources alors que ce n'est pas fait dans cette variable. Proposition :

Suggested change
label = "Ressources prise en compte pour la bourse sur critères sociaux de l'enseignement supérieur"
label = "Échelon de la bourse sur critères sociaux de l'enseignement supérieur"

legislation = parameters(period)

nbh_travaillees = 151
smic_mensuel_brut = legislation.cotsoc.gen.smic_h_b * nbh_travaillees
Copy link
Contributor

Choose a reason for hiding this comment

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

smic_mensuel_net comme indiqué dans le bulletin officiel ?

Copy link
Member Author

Choose a reason for hiding this comment

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

C'est une première étape, je n'ai pas fait l'approximation classique de passage du brut au net mais je vais l'ajouter (sans être un grand fan)

*8.11/10.25 😱

Comment on lines 163 to 166

seuil_ressources = legislation.bourses_enseignement_superieur.criteres_sociaux.seuil_ressources_etudiant_autonome * smic_mensuel_brut

eligible_couple = en_couple * (seuil_ressources <= ressources)
Copy link
Contributor

Choose a reason for hiding this comment

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

Rapprocher les éléments contribuant à la même éligibilité ?

Suggested change
seuil_ressources = legislation.bourses_enseignement_superieur.criteres_sociaux.seuil_ressources_etudiant_autonome * smic_mensuel_brut
eligible_couple = en_couple * (seuil_ressources <= ressources)
seuil_ressources = legislation.bourses_enseignement_superieur.criteres_sociaux.seuil_ressources_etudiant_autonome * smic_mensuel_brut
eligible_couple = en_couple * (seuil_ressources <= ressources)

Et bien vu pour propre_declaration_fiscale ^^

openfisca_france/model/prestations/bourses_superieur.py Outdated Show resolved Hide resolved
entity = Individu
value_type = int
reference = [
"Circulaire ESRS2013435C - Annexe 7 - Taux et cumul de la bourse d'enseignement supérieur sur critères sociaux / 1 - Les taux de bourse d'enseignement supérieur sur critères sociaux"
Copy link
Contributor

Choose a reason for hiding this comment

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

La référence indique peu d'information concernant le mécanisme de calcul. Ajouter la référence des plafonds pour éclairer sur le sujet ?

Suggested change
"Circulaire ESRS2013435C - Annexe 7 - Taux et cumul de la bourse d'enseignement supérieur sur critères sociaux / 1 - Les taux de bourse d'enseignement supérieur sur critères sociaux"
"Circulaire ESRS2013435C - Annexe 7 - Taux et cumul de la bourse d'enseignement supérieur sur critères sociaux / 1 - Les taux de bourse d'enseignement supérieur sur critères sociaux",
"https://www.legifrance.gouv.fr/eli/arrete/2020/7/22/ESRS2016543A/jo/texte"

@guillett guillett force-pushed the bourse_criteres_sociaux branch 4 times, most recently from d15e4fe to 089f28a Compare April 9, 2021 12:16
@guillett guillett merged commit 2acfb01 into master Apr 9, 2021
@guillett guillett deleted the bourse_criteres_sociaux branch October 20, 2021 09:39
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.

4 participants