fpagnoux / baremes-ipp-yaml

Barèmes IPP au format YAML OpenFisca
2 stars 0 forks source link

Questions et remarques sur le format des paramètres #1

Open Morendil opened 6 years ago

Morendil commented 6 years ago

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/chomage/allocations_assurance_chomage/afd.yaml#L5

Pourquoi mettre les clés entre guillemets ? Jusqu'ici la norme était de ne pas en avoir.

Morendil commented 6 years ago

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/chomage/allocations_assurance_chomage/afd.yaml#L43

Pourquoi spécifier l'ordre ? Que risque-t-on s'il n'est pas conforme à l'ordre textuel dans le fichier ?

Morendil commented 6 years ago

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/chomage/allocations_assurance_chomage/afd.yaml#L60-L61

Je ne comprends pas pourquoi les dates ne se correspondent pas…

Morendil commented 6 years ago

Je ne comprends pas pourquoi les dates ne se correspondent pas…

Ah si je crois comprendre. Les dates qui servent de clé sont les mêmes que les dates associées aux valeurs des paramètres, c'est ça ? En fait si on veut reconstituer un paramètre pour une date donnée il faut parcourir tout l'objet et collecter séparément reference, date_parution_jo etc. pour la date concernée. Ca me semble contraignant et error-prone.

Par exemple ici https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/chomage/allocations_assurance_chomage/alloc_base.yaml#L204-L215

Les metadata concernent plusieurs variables, comment peut-on reconstituer celle à laquelle le champ "référence" se rattache ?

Morendil commented 6 years ago

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/chomage/allocations_assurance_chomage/alloc_base.yaml#L320-L321

Supprimer ces sauts de lignes ?

Morendil commented 6 years ago

Une inquiétude un peu globale, ce format me semble optimisé pour le process automatisé qui l'a produit, a quel point rend-il difficile le travail futur des personnes qui créeront des paramètres à la main en lisant des textes de loi ?

Morendil commented 6 years ago

Autre inquiétude, certaines formules dépendent (par exemple via le fancy indexing) de structures particulières pour les paramètres, j'ai en tête par exemple les aides logement que j'ai récemment retouchées, or ici je trouve une structure qui change en profondeur:

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/prestations_sociales/allocations_logement/al_param_accapl.yaml#L75-L93

Comment allons-nous évaluer l'effort à fournir pour mettre à jour les formules pour l'exploitation des nouveaux noms et des nouvelles structures ?

Morendil commented 6 years ago

Je constate que certains paramètres que nous utilisons sont manquants par exemple ceux de la réduction Pinel qu'on a travaillé récemment, comment abordons-nous ce volet ? On retravaille nos paramètres actuels pour les intégrer à ce format en vue d'une publication sur le site IPP ? On les laisse en l'état, mais alors il faut les ignorer ?

fpagnoux commented 5 years ago

Pourquoi mettre les clés entre guillemets ? Jusqu'ici la norme était de ne pas en avoir.

Ajoutés automatiquement par le la lib qui dump les yaml, mais il doit y probablement moyen de configurer ça.

fpagnoux commented 5 years ago

Pourquoi spécifier l'ordre ? Que risque-t-on s'il n'est pas conforme à l'ordre textuel dans le fichier ?

L'IPP a besoin de conserver l'ordre des sous-paramètres d'un noeud pour des questions de visualisation, d'où cette métadonnée. Il n'y a pas de "risque" particulier à avoir un ordre différent de l'ordre textuel, simplement pour les visualisations de l'IPP c'est celui du order qui sera retenu.

Il serait intéressant de pouvoir se baser sur l'ordre textuel mais:

Est-ce que renommer cette propriété en ipp_order pour bien marquer que c'est un champs du ressort de l'IPP te semble plus acceptable?

fpagnoux commented 5 years ago

Ah si je crois comprendre. Les dates qui servent de clé sont les mêmes que les dates associées aux valeurs des paramètres, c'est ça ? En fait si on veut reconstituer un paramètre pour une date donnée il faut parcourir tout l'objet et collecter séparément reference, date_parution_jo etc. pour la date concernée. Ca me semble contraignant et error-prone.

Dans de nombreuses feuilles de barèmes de l'IPP, les références sont donnés non pas pour un seul paramètre mais pour une "grappe" de paramètres. Quand on parse ça au format OpenFisca, on a deux choix:

Les metadata concernent plusieurs variables, comment peut-on reconstituer celle à laquelle le champ "référence" se rattache ?

A priori, la métadata concernent toutes les variables du noeud.

fpagnoux commented 5 years ago

Supprimer ces sauts de lignes ?

Je peux essayer, mais il n'est pas évident de distinguer algorithmiquement un saut de ligne "légitime" d'un saut de ligne non pertinent. Est-ce que tu as repéré beaucoup d'occurences du problème?

fpagnoux commented 5 years ago

Une inquiétude un peu globale, ce format me semble optimisé pour le process automatisé qui l'a produit, a quel point rend-il difficile le travail futur des personnes qui créeront des paramètres à la main en lisant des textes de loi ?

Je crois que @benjello et l'IPP vont se pencher sur cette question de leur point de vue de contributeur dans les prochaines sermaines, mais oui, il y a bien une question de fond sur la l'intégration de cet export avec les paramètres plus "manuels".

fpagnoux commented 5 years ago

Comment allons-nous évaluer l'effort à fournir pour mettre à jour les formules pour l'exploitation des nouveaux noms et des nouvelles structures ?

Question ouverte, mais il sera aussi possible de modifier la structure des paramètres pour l'adapter aux formules. L'objectif de l'IPP est de sortir d'Excel à court terme, ce qui signifie que l'on ne sera pas contraint pas le maintien du processus automatique XLSX->YAML.

fpagnoux commented 5 years ago

Je constate que certains paramètres que nous utilisons sont manquants par exemple ceux de la réduction Pinel qu'on a travaillé récemment, comment abordons-nous ce volet ? On retravaille nos paramètres actuels pour les intégrer à ce format en vue d'une publication sur le site IPP ? On les laisse en l'état, mais alors il faut les ignorer ?

Oui, c'est une des questions que je me pose. À discuter avec @benjello et l'IPP. Je ne pense pas que l'IPP soit contre plus de paramètres. Sur le format, pas forcément: les outils de l'IPP qui sont consomment ces paramètres sont (ou seront si des bugs sont découverts) a priori capable de gérer n'importe quel noeud de paramètre à condition qu'il soit valide pour OpenFisca.

benjello commented 5 years ago

@Morendil : je suis à ta disposition pour en discuter en visio éventuellement avec @fpagnoux ou tout autre personne intéressée par le sujet. Et surtout je suis preneur de tous les conseils et tous les coups de main ;-) Le but est d'avoir une source unique au format openfisca qui soit éditable par les contributeurs et que l'on puisse les diffuser sur le site de l'IPP et les utiliser dans openfisca. Donc tout à fait prêt à converger au maximum.

Morendil commented 5 years ago

https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/prelevements_sociaux/cotisations_regime_assurance_chomage/chomage.yaml#L4

Devrait être tranche_a par cohérence avec tranche_b et le nom.

Morendil commented 5 years ago

Je continue avec un focus sur les cotisations chômage:

Ici: https://github.com/fpagnoux/baremes-ipp-yaml/blob/3c7ba504693ae9b7499f3de41698a45ef35f8205/openfisca_baremes_ipp/parameters/prelevements_sociaux/cotisations_regime_assurance_chomage/chomage.yaml#L140

Il me semble que par rapport à l'existant, qui contient directement l'URL du texte, c'est une régression.

A priori, la métadata concernent toutes les variables du noeud.

Dans le fichier que je cite en exemple, c'est peut-être intelligible pour une machine, mais pas du tout pour un humain. Le champ metadata se situe dans le fichier entre salaries et employeurs, tu as des sauts de lignes dans les clés "date de parution au JO", si tu cherches visuellement à scanner où se trouve la valeur qui correspond à la référence du 1984-04-01 ça me semble très délicat.

Autre problème sur ce même fichier, l'existant est un barème avec des rate/threshold, mais ils ont disparu du nouveau format, ce qui implique de réécrire la formule à peu près from scratch.

Quel est le chemin de migration vers le nouveau format lorsque l'existant consiste en un barème ?

Morendil commented 5 years ago

Il n'est pas évident de distinguer algorithmiquement un saut de ligne "légitime" d'un saut de ligne non pertinent. Est-ce que tu as repéré beaucoup d'occurences du problème?

A mon sens aucune des valeurs textuelles ne devrait contenir de saut de ligne, c'est de la mise en forme qui présuppose un media (tableur) et nous allons changer de media (vers du Web). Je compte 224 occurrences de "|-" (qui signale des champs YAML formatés, donc des sauts de lignes multiples) et 131 occurrences de "\" (saut de ligne isolé).

Quels seraient pour toi les sauts de ligne légitimes ?

benjello commented 5 years ago

@Morendil : lors d'une première tentative de convergence on était passé par ce script

benjello commented 5 years ago

@Morendil : oui on veut aussi garder les liens quand ils existent.

Morendil commented 5 years ago

Il y a peut-être plusieurs discussions qui se téléscopent ici, je me rends compte que je me soucie notamment d'évaluer le reste du travail à faire (c'est peut-être le sujet d'un atelier de planification dédié) et ça va au-delà des remarques sur le format.

fpagnoux commented 5 years ago

Le champ metadata se situe dans le fichier entre salaries et employeurs

Good point. Il faudrait sans doute toujours mettre les métadonnées après les valeurs.

fpagnoux commented 5 years ago

Quels seraient pour toi les sauts de ligne légitimes ?

En dehors du champs multiligne "documentation", effectivement, ça n'a pas vraiment de sense 👍

fpagnoux commented 5 years ago

Quel est le chemin de migration vers le nouveau format lorsque l'existant consiste en un barème ?

Adapter les nouveaux fichiers YAML pour y faire apparaître les barèmes, de manière automatisée ou manuelle.

benjello commented 5 years ago

@fpagnoux : ne peut-on pas reformater les dates pour retirer les guillemets simples comme le suggère @Morendil ?

fpagnoux commented 5 years ago

Je viens de finir une passe de nettoyage des YAML:

Il est sans doute possible de se débarasser des champs order dans les fichiers YAML de paramètres (à part dans les index.yaml) si https://github.com/openfisca/openfisca-core/pull/787 est acceptée sur Core.