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

Prise en compte de la RLS dans le calcul des prestations sociales #1217

Merged
merged 13 commits into from
Nov 28, 2018

Conversation

claireleroy
Copy link
Contributor

@claireleroy claireleroy commented Nov 20, 2018

Suite à la mise en place de la réduction de loyer de solidarité (RLS), les familles qui bénéficient de cette réduction voient leur montant d'aide au logement diminuer de 98% de leur RLS.

  • La RLS et la baisse d'aides au logment associée sont simulés dans OpenFisca.
  • Mais la RLS n'est pas prise en compte dans le calcul du revenu disponible. Cette réforme fait donc baisser artificiellement le revenu disponible des ménages locataires (via la baisse des aides au logement) dans les simulations OpenFisca alors que dans la réalité elle est quasi neutre pour les ménages locataires.
  1. Pour bien prendre en compte les effets de la mise en place de la RLS, on propose de la rajouter dans la variable prestations_sociales.
  2. On propose également de préciser l'éligibilité à la RLS au sein de la formule reduction_loyer_solidarite

En effet, la RLS est réservée aux familles locataires dans le parc social (éligibles aux APL). La formule de la variable reduction_loyer_solidarite est aujourd'hui calculée pour toutes les familles dont la base ressources AL est inférieure à un certain plafond, ce qui est plus large que la varie éligibilité. Cela ne posait pas de problèmes jusqu'ici, puisque la RLS n'était utilisée que dans le calcul de la baisse des aides au logement associée (et on prenait bien en compte le fait que cette baisse ne s'appliquait qu'aux locataires HLM, cf. formule aide_logement_montant_brut_crds) mais désormais il faut s'assurer qu'elle n'est calculée que pour les familles éligibles.

  • Évolution du système socio-fiscal.
  • Périodes concernées : à partir du 01/01/2018
  • Zones impactées :
    • model/mesures.py
    • model/prestations/reduction_loyer_solidarite.py
    • tests/formulas/rls.yaml
  • Détails :
    • Ajoute la RLS au montant des prestations sociales
    • Ajoute une start date à la RLS et restreint le calcul de la RLS aux familles éligibles
    • Update les tests en ce sens

Ces changements :

  • Modifient l'API publique d'OpenFisca France (par exemple renommage ou suppression de variables).
  • Corrigent ou améliorent un calcul déjà existant.

@claireleroy
Copy link
Contributor Author

claireleroy commented Nov 20, 2018

Débat relié à cette PR à trancher : Quelle est la date de mise en place de la RLS ?

  • Janvier 2018 ?
  • Février 2018 ?
  • Juin 2018 ?

infos contradictoires sur Internet :
http://www.hlm.coop/ressources/all/10855
https://www.union-habitat.org/actualites/la-mise-en-place-de-la-reduction-de-loyer-de-solidarite-modalites-et-calendrier

Aujourd'hui dans OpenFisca la date implicite choisie semble être le 1er janvier (cf. formule aide_logement_montant_brut_crds). cc @openfisca/france-contrib-msa

@Morendil
Copy link
Contributor

Morendil commented Nov 20, 2018

@claireleroy Je n'ai pas regardé en détail ta PR, mais il n'y avait pas déjà eu une passe de faite là dessus ? OK j'ai parlé un peu vite, tu n'interviens pas sur ce que j'avais déjà vu qui était dans aides_logement.

@claireleroy
Copy link
Contributor Author

@Morendil Je n'ai rien trouvé dessus non ...

@Morendil
Copy link
Contributor

@claireleroy Je t'avoue que ce n'est pas encore totalement clair pour moi, j'essaie de reproduire l'effet que tu évoques dans un test (et ce serait peut-être pertinent de l'ajouter à la PR pour expliciter l'intention):

- name: Revenu disponible avec APL avant RLS
  absolute_error_margin: 0.1
  period: 2017-12
  input_variables:
    zone_apl: zone_1
    aide_logement_montant_brut: 100
    statut_occupation_logement: locataire_hlm
    aide_logement_base_ressources: 900
    minima_sociaux:
      2017: 5000
  output_variables:
    apl:
      2017-12: 99.5
    revenu_disponible:
      2017: 5099.5
    prestations_sociales:
      2017: 5099.5
    aides_logement:
      2017: 99.5

- name: Revenu disponible avec APL après RLS
  absolute_error_margin: 0.1
  period: 2018-01
  input_variables:
    zone_apl: zone_1
    aide_logement_montant_brut: 100
    statut_occupation_logement: locataire_hlm
    aide_logement_base_ressources: 900
    minima_sociaux:
      2018: 5000
  output_variables:
    apl: 68.45
    reduction_loyer_solidarite: 31.83
    revenu_disponible:
      2018: 5100.28
    prestations_sociales:
      2018: 5100.28
    aides_logement:
      2018: 68.45

Ce test échoue sur master, ce qui est attendu car les 31.83 euros de RLS ne sont pas intégrés dans le revenu disponible. Peux-tu me confirmer que j'ai bien compris l'intention de tes modifications ?

Par contre quand j'exécute le même test sur ta PR, il échoue (alors qu'il devrait passer) avec un revenu disponible de 5405,43€ - c'est peut-être purement lié avec les périodes de définition des différentes variables : le résultat obtenu s'explique si la RLS est bien à 31.83 pour chaque mois de l'année. Mais on ne devrait pas l'obtenir pour les mois où locataire_hlm n'est pas renseigné, je m'y perds un peu.

En tout cas, si on fait ce check sur locataire_hlm dans reduction_loyer_solidarite il est alors redondant dans aide_logement_montant_brut_crds et tu pourrais simplifier cette dernière formule.

Copy link
Contributor

@Morendil Morendil left a comment

Choose a reason for hiding this comment

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

  • Ajouter un test plus explicite pour cadrer l'effet sur revenu_disponible
  • Simplifier aide_logement_montant_brut_crds en supprimant la condition locataire_hlmdéjà vérifiée dans reduction_loyer_solidarite

@Morendil
Copy link
Contributor

@claireleroy Il faudrait tenir compte de #1223 aussi

@claireleroy
Copy link
Contributor Author

@Morendil

Peux-tu me confirmer que j'ai bien compris l'intention de tes modifications ?

Oui ce sont bien mes intentions ! Par rapport au fait que le test ne passe pas, je ne vois pas trop là tout de suite. Je vais m'y pencher un peu.

Par ailleurs je me demandais quelle était la pratique à adopter sur les tests : est-ce qu'il faut écrire un test par PR ? Si oui, j'ai l'impression que ça rentre en contradiction avec la critique du fait qu'il y'ait "trop" de tests sur France..

En tout cas, si on fait ce check sur locataire_hlm dans reduction_loyer_solidarite il est alors redondant dans aide_logement_montant_brut_crds et tu pourrais simplifier cette dernière formule.

Tout à fait d'accord ! Je fais ça!

@Morendil
Copy link
Contributor

est-ce qu'il faut écrire un test par PR ? Si oui, j'ai l'impression que ça rentre en contradiction avec la critique du fait qu'il y'ait "trop" de tests sur France..

Rien de si dogmatique :)

Les tests fonctionnels sur France sont trop nombreux, trop lourds, pas assez pertinents… et en même temps une situation décrite sous la forme de test est une excellente base pour partager des éléments factuels sur le comportement d'OpenFisca. On peut décider ensuite de garder ce test ou non, suivant l'intérêt qu'il présente pour la non-régression.

Ce qui nous manque sans doute et qui explique la prolifération des tests fonctionnels c'est une couche de tests unitaires qui nous permettrait, une fois qu'on a identifié une erreur d'un mécanisme sous-jacent, d'exprimer l'anomalie à ce niveau-là. Mais ici on est bien sur un cas de "test de formule", ce n'est pas un bug de Core ou d'un helper.


montant = famille('reduction_loyer_solidarite_montant', period)
return (ressources < plafond) * montant
return (ressources < plafond) * montant * (statut_occupation_logement == TypesStatutOccupationLogement.locataire_hlm)
Copy link
Contributor

Choose a reason for hiding this comment

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

Plutôt utiliser la variable logement_conventionne ici (conformément à #1223)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@Morendil yes mais du coup il faut que je rebase non ?

@@ -1,6 +1,7 @@
- name: Zone 2 isolé
period: 2018-01
input_variables:
statut_occupation_logement: locataire_hlm
Copy link
Contributor

Choose a reason for hiding this comment

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

Idem ici, logement_conventionne: true

@claireleroy
Copy link
Contributor Author

@Morendil Par rapport aux changements demandés :

  • j'ai simplifié la formule des aides au logement comme indiqué (j'utiliserais la variable logement_conventionne après rebase)
  • j'ai ajouté un test qui mets en lumière le changement introduit par cette PR (il marche quand on indique bien que le statut d'occupation du logement est non renseigné après janvier)
    Est-ce que ça te parait bon ?

@Morendil
Copy link
Contributor

@claireleroy Je regarde aujourd'hui ou demain

@Morendil Morendil force-pushed the ajout-RLS-dans-revenu-disponible branch from ef55119 to 3c6fa84 Compare November 28, 2018 16:57
@Morendil Morendil merged commit c0d36e9 into master Nov 28, 2018
@Morendil Morendil deleted the ajout-RLS-dans-revenu-disponible branch November 28, 2018 18:31
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.

2 participants