Closed MattiSG closed 1 year ago
description
(métadonnée de Paramètre)Fonctionnement actuel, sans changement.
description
(métadonnée de Paramètre)Renommage en label
, ajout d'une limite de caractères et d'une contrainte d'unicité dans le système socio-fiscal.
Il s'agit d'une adaptation de la proposition 2B pour label
(Variable), qui a été adoptée.
La liste des valeurs en doublon est disponible ci-dessous :
En l'état, l'immense majorité des valeurs en doublon sont des termes génériques (« taux », « plafond »…).
En l'état, la description la plus longue compte 354 caractères.
reference
(métadonnée de Paramètre)On demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire plutôt que d'un tableau. Ceci a l'inconvénient d'alourdir la déclaration et suppose de normaliser la manière de référencer les URLs (i.e. de définir les clés du dictionnaire), et a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
Toutes les déclarations faites au niveau du nœud metadata
sont déplacées vers le nœud parent (au même niveau que description
, unit
…)
Il s'agit d'une adaptation d'une série de propositions pour reference
(Variable), qui a été adoptée.
reference.href
(métadonnée de Paramètre)Plutôt qu'un nœud supplémentaire, on demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire. Ceci a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
Toutes les déclarations faites au niveau du nœud metadata
sont déplacées vers le nœud parent (au même niveau que description
, unit
…) et transformées en reference
tel que décrit dans la proposition 1A pour reference
.
Il s'agit d'une adaptation d'une série de propositions pour reference
(Variable), qui a été adoptée.
reference.title
(métadonnée de Paramètre)Plutôt qu'un nœud supplémentaire, on demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire. Ceci a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
Toutes les déclarations faites au niveau du nœud metadata
sont déplacées vers le nœud parent (au même niveau que description
, unit
…) et transformées en reference
tel que décrit dans la proposition 1A pour reference
.
Il s'agit d'une adaptation d'une série de propositions pour reference
(Variable), qui a été adoptée.
documentation
(métadonnée de Paramètre)Conserver la métadonnée telle quelle.
documentation
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée dans OpenFisca et privilégier l'usage des commentaires plutôt que d'une métadonnée dédiée pour les hypothèses d'implémentation, car celles-ci sont associées à l'implémentation (au code).
Pour le cas d'usage et exemples donnés (insérer une note dans les barèmes IPP), soit passer par une base de données externe à OpenFisca, soit générer les notes par l'extraction des commentaires, comme le permet par exemple ruamel.yaml
.
Il s'agit de la proposition 1B pour Notes (métadonnée de variable), qui a été adoptée.
Bonjour @MattiSG , je ne vois pas les champs ux_name et last_review qui ont déjà été votés au printemps ? Tu confirmes que c'est parce qu'ils sont déjà acquis ? @sandcha @DorineLam @benoit-cty @benjello
Sont encore en attente de rédaction :
date_parution_jo
unit
(et threshold_unit
, rate_unit
, amount_unit
pour les barèmes)description_en
ux_name
last_review
Hello à tous, Pour rassembler tous les éléments sur cette issue, et notamment les motivations des premières décisions, voici le lien de la toute première RFC du printemps (celle que vous avez vue à l'époque sur Slack #france-system): https://github.com/openfisca/openfisca-france/issues/1519 Le débat en cours ici est maintenant bien plus avancé, et clairement sur la forme c'était pas top, à l'époque on avait grandement besoin des compétences de @MattiSG ^^
date_parution_jo
(métadonnée de Paramètre)Renommer les occurrences de official_journal_date
en dates_journal_officiel
, en les laissant dans le nœud metadata
. Transformer les valeurs en un tableau de dates afin de gérer les références multiples.
Cela implique que l'ordre des références est signifiant. Cela semble pouvoir être garanti en chargeant le YAML avec Python. Cela implique également une charge cognitive car l'ordre de déclaration des références doit correspondre à l'index des dates_journal_officiel
. Ceci est contre-intuitif pour un dictionnaire.
date_parution_jo
(métadonnée de Paramètre)Renommer les occurrences de official_journal_date
en parutions_journal_officiel
, en les laissant dans le nœud metadata
. Le terme « date » n'a pas à apparaître dans le nom de la métadonnée puisque le type de valeur permet de l'inférer. Transformer les valeurs en un dictionnaire de dates dont les clés doivent correspondre aux clés de reference
afin de gérer les références multiples.
Cela implique la duplication des clés dans reference
et dans parutions_journal_officiel
. Un validateur automatique de l'identité entre les deux groupes de clé pourra aider.
date_parution_jo
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée dans OpenFisca, car l'information de date de publication peut être stockée dans l'intitulé de reference
et obtenue automatiquement depuis l'URL de reference
, et que la valeur ajoutée pour désambiguer n'est pas claire. En particulier, la gestion des reference
multiples ajoute une complexité significative à date_parution_jo
.
description_en
(métadonnée de Paramètre)Renommage en label_en
, ajout d'une limite de caractères et d'une contrainte d'unicité dans le système socio-fiscal.
description_en
(métadonnée de Paramètre)Gestion multilingue optionnelle des label
: la clé label
peut être un dictionnaire qui contient pour clé un code ISO de langue et pour valeur la description du paramètre dans la langue désignée. Une valeur par défaut est définie à l'échelle du système socio-fiscal, qui est attribuée en l'absence de clé explicite. Une limite de caractères et une contrainte d'unicité dans le système socio-fiscal sont ajoutées pour toutes les langues.
description_en
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée dans OpenFisca, car les cas d'usage sont trop spécifiques. Les implémenteurs peuvent constituer leur propre base de traduction en dehors d'OpenFisca, en associant le nom du Paramètre avec ses traductions dans les langues souhaitées.
last_reviewed
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée dans OpenFisca, en raison de l'impossibilité de donner du sens à une date de revue.
Les informations de relecture pourraient faire l'objet d'un traitement dans un outil tiers, qui associerait un identifiant OpenFisca à un nombre arbitraire d'auditeurs qui pourraient indiquer leur validation de l'identifiant, la date, et le numéro de version du système socio-fiscal qui a fait l'objet de la validation.
Il s'agit d'une adaptation de la proposition 1B pour last_reviewed
(Variable), qui a été adoptée.
ux_name
(métadonnée de Paramètre)On introduit une métadonnée dédiée short_label
en considérant que le besoin d'un nom non-ambigu avec un nombre connu de caractères est suffisamment répandu. On suppose qu'un contexte de présentation permettra de différencier entre deux paramètres ayant le même short_label
.
Il s'agit d'une adaptation de la proposition 1A pour ux_name
(Variable), qui a été adoptée.
unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée, et on la bascule dans le nœud metadata
dans la mesure où il n'y a à ce stade aucun impact fonctionnel à son remplissage.
Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…).
Comme aujourd'hui, les changements d'unité dans un seul paramètre ne sont pas permis : en cas de changement de monnaie, par exemple, deux paramètres distincts devront être introduits.
unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée, et on la bascule au même niveau que value
pour permettre les changements d'unité dans une seule déclaration de paramètre.
Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…).
Cette proposition permet de gérer les changements d'unité, un cas connu étant le changement de monnaie (FRF → EUR), au prix d'une forte répétition de la déclaration des unités.
unit
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée, car elle n'a toujours pas à ce stade trouvé d'usage fonctionnel. Si l'interprétation est ambigüe, il est toujours possible de l'indiquer par un commentaire dans le code ou dans la description du Paramètre. C'est d'ailleurs le plus souvent déjà le cas aujourd'hui.
threshold_unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée. Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…), et sont les mêmes que pour la métadonnée unit
.
Comme aujourd'hui, les changements d'unité dans un seul paramètre ne sont pas permis : en cas de changement de monnaie, par exemple, deux paramètres distincts devront être introduits.
threshold_unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée, et on la bascule au même niveau que value
pour permettre les changements d'unité dans une seule déclaration de paramètre. Elle est de fait renommée en unit
puisque le contexte d'interprétation (threshold
ou rate
) peut être lu dans la hiérarchie de déclaration.
Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…), et sont les mêmes que pour la métadonnée unit
.
threshold_unit
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée, car elle n'a toujours pas à ce stade trouvé d'usage fonctionnel et est peu renseignée dans la base de code actuelle. Si l'interprétation est ambigüe, il est toujours possible de l'indiquer par un commentaire dans le code ou dans la description du Paramètre. C'est d'ailleurs le plus souvent déjà le cas aujourd'hui.
rate_unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée. Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…), et sont les mêmes que pour la métadonnée unit
.
Comme aujourd'hui, les changements d'unité dans un seul paramètre ne sont pas permis : en cas de changement de monnaie, par exemple, deux paramètres distincts devront être introduits.
rate_unit
(métadonnée de Paramètre)On normalise les valeurs possibles pour cette métadonnée, et on la bascule au même niveau que value
pour permettre les changements d'unité dans une seule déclaration de paramètre. Elle est de fait renommée en unit
puisque le contexte d'interprétation (threshold
ou rate
) peut être lu dans la hiérarchie de déclaration.
Les valeurs possibles sont décrites à la fois dans Core (currency
, percentage
…) et dans France (SMIC
, PSS
…), et sont les mêmes que pour la métadonnée unit
.
rate_unit
(métadonnée de Paramètre)Similaire à la proposition 1A, mais on renomme en unit
en considérant que l'interprétation la moins ambigüe d'une « unité » pour un barème est d'abord celle de sa valeur, ce qui réduit le nombre de métadonnées à connaître.
rate_unit
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée, car elle n'a toujours pas à ce stade trouvé d'usage fonctionnel et est peu renseignée dans la base de code actuelle. Si l'interprétation est ambigüe, il est toujours possible de l'indiquer par un commentaire dans le code ou dans la description du Paramètre. C'est d'ailleurs le plus souvent déjà le cas aujourd'hui.
Sauf erreur de ma part, toutes les métadonnées à traiter sont listées ! Cela ne signifie pas que toutes les propositions possibles ont été faites, vous êtes comme toujours bienvenu‧e‧s pour en établir de nouvelles 👍
Désolé pour le délai dans la rédaction 😞 le travail nécessaire sur unit
en particulier était non négligeable et j'ai trop traîné à bloquer un créneau suffisant pour le traiter.
Comme indiqué dans #1618, dont cette PR découle, cette RFC sera ouverte jusqu'à ce que le jeu de propositions soit resté stable pendant 14 jours.
Version 1A d'une proposition pour
reference
(métadonnée de Paramètre)On demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire plutôt que d'un tableau. Ceci a l'inconvénient d'alourdir la déclaration et suppose de normaliser la manière de référencer les URLs (i.e. de définir les clés du dictionnaire), et a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la
reference
.Toutes les déclarations faites au niveau du nœud
metadata
sont déplacées vers le nœud parent (au même niveau quedescription
,unit
…)Il s'agit d'une adaptation d'une série de propositions pour
reference
(Variable), qui a été adoptée.
Hello ! N'avions-nous pas aussi parlé de la possibilité de mettre la référence (title et href) au niveau de value
? C'est déjà fait comme cela dans certains paramètres
Version 1C d'une proposition pour
date_parution_jo
(métadonnée de Paramètre)Abandonner l'ajout d'une telle métadonnée dans OpenFisca, car l'information de date de publication peut être stockée dans l'intitulé de
reference
et obtenue automatiquement depuis l'URL dereference
, et que la valeur ajoutée pour désambiguer n'est pas claire. En particulier, la gestion desreference
multiples ajoute une complexité significative àdate_parution_jo
.
Pour info, cette métadonnées a été renommée en anglais en juin, par souci de cohérence, à la suite d'une remarque sur le fait que tous les autres noms de métadonnées sont en anglais.
N'avions-nous pas aussi parlé de la possibilité de mettre la référence (title et href) au niveau de
value
? C'est déjà fait comme cela dans certains paramètres.
Merci @Sasha-Laniece pour cette remarque ! J'ai pris le temps de regarder plus en détails les données actuelles de reference
, et j'observe les éléments suivants :
https://www.ipp.eu/outils/baremes-ipp/
, ce qui ne me semble pas vraiment exploitable.ipp
ou openfisca
, ce qui est inexploitable.Les données brutes sont disponibles ci-dessous.
Le point 2 me fait hésiter : vaut-il mieux interdire les reference
à un niveau autre que value
, ce qui évitera les cas où une revalorisation spécifique est donnée à tort, ou les autoriser à la fois à la racine et dans value
, ce qui permettra des références qui donnent un contexte d'interprétation ? Une solution tierce pourrait consister à introduire une nouvelle métadonnée pour donner du contexte à la racine, et de conserver reference
pour les nœuds value
.
Je vais dans tous les cas rédiger une proposition dans le sens des références dans les nœuds value
.
reference
(métadonnée de Paramètre)On demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire plutôt que d'un tableau. Les références peuvent être renseignées à la racine du paramètre et pour chaque value
.
Ceci a l'inconvénient d'alourdir la déclaration et suppose de normaliser la manière de référencer les URLs (i.e. de définir les clés du dictionnaire), et a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
Toutes les déclarations faites au niveau du nœud metadata
sont déplacées vers le nœud le plus pertinent (à la racine si la référence était à la racine de metadata
, à la value
correspondant à la date si la référence était dans un nœud de date).
Il s'agit d'une adaptation d'une série de propositions pour reference
(Variable), qui a été adoptée.
last_review
(métadonnée de Paramètre)La last_review
est une date de relecture, indiquant que toutes les valeurs du paramètre (antérieure à cette date) sont à jour à cette date de relecture (ce n’est pas la date d’entrée en vigueur du paramètre).
Cette metadata n’a pas besoin d’être obligatoire pour être utile.
Elle concerne l’entièreté d’un paramètre (donc toutes les valeurs antérieures à la date de last_review
doivent être vérifiées avant l'apposition du premier last_review
).
Elle doit s’accompagner d’une référence législative, ce qui permet une revue pertinente lors de la validation de la PR (ou plus tard par tout utilisateur).
N'avions-nous pas aussi parlé de la possibilité de mettre la référence (title et href) au niveau de
value
? C'est déjà fait comme cela dans certains paramètres.Merci @Sasha-Laniece pour cette remarque ! J'ai pris le temps de regarder plus en détails les données actuelles de
reference
, et j'observe les éléments suivants :
- La grande majorité des références pointe vers
https://www.ipp.eu/outils/baremes-ipp/
, ce qui ne me semble pas vraiment exploitable.- Les valeurs qui sont à la racine des paramètres sont rarement utiles : dans certains cas, elles donnent un contexte d'interprétation utile (notamment liens vers Wikipédia), mais elles pointent également souvent vers une revalorisation spécifique, ce qui est trompeur.
- Un certain nombre de références sont
ipp
ouopenfisca
, ce qui est inexploitable.Les données brutes sont disponibles ci-dessous.
Le point 2 me fait hésiter : vaut-il mieux interdire les
reference
à un niveau autre quevalue
, ce qui évitera les cas où une revalorisation spécifique est donnée à tort, ou les autoriser à la fois à la racine et dansvalue
, ce qui permettra des références qui donnent un contexte d'interprétation ? Une solution tierce pourrait consister à introduire une nouvelle métadonnée pour donner du contexte à la racine, et de conserverreference
pour les nœudsvalue
.Je vais dans tous les cas rédiger une proposition dans le sens des références dans les nœuds
value
.
Hello !
Sur le point 1: effectivement pour le moment on a très peu de références, mais avec l'harmonisation cela va changer, car on introduit bien une référence par valeur. L'objectif à terme est de n'avoir plus aucune référence 'vague' comme https://www.ipp.eu/outils/baremes-ipp/
Sur le point 2 : Les références qui donnent plutôt un contexte général pourraient être gardées dans le champ notes
ou documentation
(j'ai du mal à différencier les deux), car ils ont tout deux pour but d'apporter des informations pour clarifier le paramètre et ses limites (champ d'action, éligibilité, etc...)
Sur le point 3 : cf. point 1, tu as tout à fait raison, et c'est tout notre travail d'harmonisation que de mettre les références qui vont bien
reference
(métadonnée de Paramètre)On demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire plutôt que d'un tableau. Les références doivent être renseignées, soit à la racine du paramètre, soit pour chaque value
, en fonction de ce qui est plus pertinent.
En effet, certains paramètres renvoient, à chaque actualisation, à une référence différente (ex : plafonds de ressources faisant l'objet d'un arrêté à chaque revalorisation), mais d'autres sont toujours présents dans le même texte de loi (le changement du paramètre se matérialisant par une modification de l'article de loi, et non pas par un nouveau texte à part entière). Être flexible sur l'emplacement de reference
permet de ne pas alourdir inutilement le code avec des références législatives redondantes.
Ceette proposition a l'inconvénient d'alourdir la déclaration et suppose de normaliser la manière de référencer les URLs (i.e. de définir les clés du dictionnaire), et a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
reference
(métadonnée de Paramètre)On demande systématiquement un intitulé et une URL pour chaque référence législative, par le biais d'un dictionnaire plutôt que d'un tableau. Les références doivent être renseignées, soit à la racine de l'ensemble des paramètres du fichier yaml, soit à la racine du paramètre, soit pour chaque value
, en fonction de ce qui est plus pertinent.
En effet, certains paramètres renvoient, à chaque actualisation, à une référence différente (ex : plafonds de ressources faisant l'objet d'un arrêté à chaque revalorisation), mais d'autres sont toujours présents dans le même texte de loi (le changement du paramètre se matérialisant par une modification de l'article de loi, et non pas par un nouveau texte à part entière). De plus, certains paramètres sont présents dans le même texte de loi et il serait possible de mettre une référence commune pour tous ces paramètres, ce qui implique de permettre d'avoir un fichier yaml pour différents paramètres lorsque cela est jugé pertinent. Être flexible de la sorte permet de ne pas alourdir inutilement le code avec des références législatives redondantes et avec un nombre de fichiers importants, dont plusieurs contiendraient des informations en commun.
Cette proposition a l'inconvénient d'alourdir la déclaration et suppose de normaliser la manière de référencer les URLs (i.e. de définir les clés du dictionnaire), et a l'avantage de traiter à la fois le cas d'usage pour le titre et l'URL de la reference
.
Version 1B d'une proposition pour
last_review
(métadonnée de Paramètre)La
last_review
est une date de relecture, indiquant que toutes les valeurs du paramètre (antérieure à cette date) sont à jour à cette date de relecture (ce n’est pas la date d’entrée en vigueur du paramètre).Cette metadata n’a pas besoin d’être obligatoire pour être utile.
Elle concerne l’entièreté d’un paramètre (donc toutes les valeurs antérieures à la date de
last_review
doivent être vérifiées avant l'apposition du premierlast_review
).Elle doit s’accompagner d’une référence législative, ce qui permet une revue pertinente lors de la validation de la PR (ou plus tard par tout utilisateur).
Sur le principe, je ne suis pas du tout contre l'idée d'avoir un check de la review. Mais je trouve que cette solution (une simple saisie en dur) n'est pas suffisamment fiable pour justifier son ajout. Je ne vois pas d'amélioration par rapport à la situation où on peut toujours arriver à identifier les PR associées aux différentes modifs de fichiers.
Je ne suis pas sûr de comprendre l'idée de la validation via une référence législative. Quid du cas où le paramètre a été checké mais où il n'a pas été modifié depuis depuis la dernière review ?
@MattiSG : je viens de voter et faire quelques propositions. Néanmoins, jusqu'à mi-novembre, nous préparons à l'IPP notre conférence sur l'évaluation du budget et nous n'aurons clairement pas le temps de tous nous pencher sur ce chantier. Serait-il possible de pouvoir voter jusqu'à disons fin novembre ? Désolé pour cela. Il s'agit du mois le plus chargé pour nous.
En attendant, voici mon opinion générale : je trouve que globalement, il est question ici d'ajouter de nombreux champs dans les paramètres, dont je ne suis pas sûr de la valeur ajoutée qu'ils apportent au regard de l'usage commun qui est fait actuellement d'Openfisca. Pour moi, Openfisca, en tant que simulateur mutualisé, peut tout à fait se limiter à avoir, pour chaque paramètre, seulement une mention de la référence législative. La plupart des champs discutés ici (date parution JO, short-label, unit, etc.) apportent peu au simulateur, si ce n'est des champs à entretenir.
Après, si on veut qu'OpenFisca soit, en plus d'un simulateur, un explorateur de législation exploité par l'ensemble des équipes, là on est dans une nouvelle utilisation commune. Mais il ne me semble pas que nous ayons une stratégie commune assez claire sur ce point pour pouvoir ajouter de nombreux champs qui à court terme, seraient peu utilisés par la communauté. Bien sûr, on pense à l'harmonisation avec les barèmes, mais malgré les discussions et le travail qu'il y a eu déjà sur ce point, je ne suis au final pas au clair sur la nature de l'output final que l'on peut/veut atteindre.
Merci @Sasha-Laniece pour la proposition 1B pour last_review
! 🙂
Dans la mesure où cette proposition s'appuie sur une référence législative à fournir pour en permettre la vérification, je ne suis pas sûr de bien l'usage par rapport au fait de fournir ladite référence directement au niveau de la valeur qu'elle vient démontrer. Pour être concret : quelle serait la différence entre
values:
2020-04-01:
value: 0.3
reference:
Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/
et
values:
2020-04-01:
value: 0.3
reference:
Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/
metadata:
last_review:
2020-05-22:
reference:
Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/
? 🙂
Merci @Sasha-Laniece pour la proposition 1B pour
last_review
! 🙂Dans la mesure où cette proposition s'appuie sur une référence législative à fournir pour en permettre la vérification, je ne suis pas sûr de bien l'usage par rapport au fait de fournir ladite référence directement au niveau de la valeur qu'elle vient démontrer. Pour être concret : quelle serait la différence entre
values: 2020-04-01: value: 0.3 reference: Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/
et
values: 2020-04-01: value: 0.3 reference: Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/ metadata: last_review: 2020-05-22: reference: Article 144 du CGI: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/
? 🙂
Hello @MattiSG ! Effectivement cela peut parfois sembler un peu redondant, mais il y a une subtilité. Le plus souvent, la référence associée à la valeur n'est pas le texte de loi où l'on trouve la valeur, mais le décret qui annonce sa modification. Cela ne permet donc pas au reviewer de vérifier la valeur en cours. On aurait alors un formalisme ainsi:
values:
2018-03-08:
value: 0.13
reference:
Décret 2017-1891 du 30/12/2017, art. 1 : https://www.legifrance.gouv.fr/eli/decret/2017/12/30/CPAS1732212D/jo/texte
metadata:
last_review:
2021-11-17:
reference:
Article D242-3 du Code de la Sécurité Sociale : https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000036679615/2021-11-17/
Cela permettrait aussi de traiter les cas où l'on n'a pas de référence à la date de changement de valeur (introuvable ou non trouvée), mais seulement une référence actuelle:
values:
1998-01-01:
value: 0.005
metadata:
last_review:
2021-10-06
reference: Articles 19 de l'Ordonnance n° 96-50 : https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000041466982/2021-10-06
@sandcha
last_value_still_valid_on
(métadonnée de Paramètre)last_review
)_Bonjour à tous, au vu des retours de @MattiSG ci-dessus et de discussions en interne, nous voulons faire une proposition de last_review
plus simple que la version 1B.
Pour des raisons de clarté, nous proposons un autre nom : last_value_still_valid_on
Cette metadata concerne la dernière valeur d’un paramètre. Il s’agit donc de ne vérifier qu’une seule valeur de la série : la dernière en vigueur. Ainsi, sa date est forcément postérieure à la dernière valeur du paramètre (et ceci peut facilement être vérifié en CI). Elle est optionnelle et permet ainsi la capitalisation progressive de cette information dans la base de paramètres.
Pour permettre la revue d’un tel champ, nous voudrions établir comme bonne pratique de fournir dans la MR la référence législative correspondante à date. Nous ne la mettons pas dans le champ pour ne pas alourdir le code (et éviter les redondances si le même url est déjà dans les références). Si l’url est une information nouvelle, le contributeur peut décider de l’ajouter dans les références.
Relevé de décision de la discussion synchrone du 23/11/2021 avec @bfabre01 @eraviart @Sasha-Laniece @sandcha @clallemand @pzuldp :
last_value_still_valid_on
annule et remplace les propositions sur last_review
.Je laisse d'autres personnes compléter si besoin 🙂
À la suite de la discussion synchrone du 23/11/2021, voici un point d'étape sur la RFC, les zones de consensus et celles de dissensus.
description
Consensus clair sur 1A :
Renommage en label, ajout d'une limite de caractères et d'une contrainte d'unicité dans le système socio-fiscal.
date_parution_jo
Consensus pour la suppression.
ux_name
Soutien fort pour l'ajout, notamment par mimétisme avec les Variables. Les cas d'usage ayant été explicités ce matin, @bfabre01, souhaites-tu mettre à jour ton vote ? 🙂
reference
/ reference.href
/ reference.title
Consensus clair sur le passage à un dictionnaire dans reference
, sur le modèle des Variables.
Reste à arbitrer les niveaux auxquels une déclaration de reference
est valide :
value
.value
ou n'importe quel nœud parent dans l'arbre du paramètre.unit
(et threshold_unit
et rate_unit
pour les barèmes)Soutien pour le maintien, avec déplacement dans le nœud metadata
et en normalisant les valeurs possibles.
Point principal de surprise pour moi : un dissensus sur le renommage de rate_unit
en unit
(proposition 1C). @sandcha peux-tu nous expliquer ta position sur le sujet ? 🙂
documentation
Pas de consensus clair. Le cas d'usage principal connu semble être pour l'IPP, mais les upvotes pour la conservation semblent provenir d'autres contributeurices. Merci de mettre à jour vos votes si vous soutenez la conservation sur la base d'hypothèses de besoin de l'IPP plutôt que sur vos propres besoins 😉 Si vous êtes neutres (i.e. ne voulez pas bloquer le maintien pour ne pas impacter négativement l'« harmonisation » mais n'avez pas d'usage propre), je vous recommande d'exprimer cette neutralité avec 👀 plutôt qu'avec 👍.
description_en
Pas de consensus clair. Le cas d'usage principal connu semble être pour l'IPP, mais les upvotes pour la conservation semblent provenir d'autres contributeurices. Merci de mettre à jour vos votes si vous soutenez la conservation sur la base d'hypothèses de besoin de l'IPP plutôt que sur vos propres besoins 😉 Si vous êtes neutres (i.e. ne voulez pas bloquer le maintien pour ne pas impacter négativement l'« harmonisation » mais n'avez pas d'usage propre), je vous recommande d'exprimer cette neutralité avec 👀 plutôt qu'avec 👍.
last_review
Ces propositions ne sont plus soutenues par leurs auteurs, qui souhaitent les remplacer par last_value_still_valid_on
. @Sasha-Laniece @DorineLam @benoit-cty pouvez-vous mettre à jour vos votes svp ? 🙂
last_value_still_valid_on
Cette proposition est récente, la discussion reste à mener.
Trois pistes ont été évoquées en discussion synchrone pour avancer sur la normalisation des métadonnées des paramètres :
last_value_still_valid_on
, les niveaux de déclaration de reference
, le maintien de documentation
et le maintien de description_en
.Pour ma part, vu l'énergie déjà investie, le temps déjà écoulé, le besoin de clarté pour la création d'outils (validateurs et réutilisations), et la nécessité de trouver un fonctionnement qui puisse être répliqué pour d'autres contributeurices, je suis clairement en faveur de finaliser cette RFC afin de pouvoir avancer sur tous les autres points qui en découleront, et qui sont nombreux.
Je propose donc de :
last_value_still_valid_on
si un consensus clair ne se dégage pas à travers les votes. Les échanges asynchrones sont bienvenus, et je peux aussi faciliter une telle discussion synchrone si le besoin s'en fait sentir 🙂 En l'état, chaque implémenteur / réutilisateur est libre de commencer à baser son travail sur les points consensuels ou d'attendre la clôture de la RFC pour avoir plus de certitude.
Comme @sandcha l'a fait remarquer, toutes les propositions listées ici n'indiquent pas si la métadonnée qu'elles représentent doit obligatoirement être remplie ou non.
Dans tous les cas, on distinguera le traitement du flux (les nouvelles contributions) du traitement du stock (la base de données existante). Vu le taux de remplissage du stock, il me semble irréaliste de demander un remplissage systématique même pour les métadonnées « obligatoires ». Je propose que l'on utilise la définition ci-dessous de « obligatoire ».
Rendre une métadonnée obligatoire implique de :
Cela devrait mener à une hausse progressive mais systématique du taux de remplissage de ces métadonnées.
reference
: obligatoireunit
, threshold_unit
, rate_unit
: optionnellast_value_still_valid_on
: optionneldocumentation
: au mieux de ma compréhension, par définition optionneldate_parution_jo
: au mieux de ma compréhension, par définition obligatoiredescription
: indéterminédescription_en
: indéterminéshort_label
: indéterminéAfin de conserver un mode de prise de décision unique, je prévois de créer pour chaque proposition dont le statut d'obligation est indéterminé une variante la rendant obligatoire, et les votes pourront se répartir en fonction. Toute personne ayant une compréhension différente de la mienne de ce qui est « par définition » optionnel ou obligatoire est bienvenue pour créer des variantes précisant ce statut 👍
Merci à tou‧te‧s pour votre participation à ce processus un peu long mais profondément utile pour la pérennité de nos efforts communs ☺️
description
(métadonnée de Paramètre)Renommage en label
, ajout d'une limite de caractères et d'une contrainte d'unicité dans le système socio-fiscal, présence obligatoire.
Il s'agit de la proposition 1A, avec pour seul changement la présence obligatoire.
Le taux de remplissage actuel de cette métadonnée est de 60,7%.
description_en
(métadonnée de Paramètre)Renommage en label_en
, ajout d'une limite de caractères, d'une contrainte d'unicité dans le système socio-fiscal et d'une obligation de présence.
Il s'agit de la proposition 1A, avec pour seul changement la présence obligatoire.
Le taux de remplissage actuel de cette métadonnée est d'environ 19%.
ux_name
(métadonnée de Paramètre)On introduit une métadonnée obligatoire dédiée short_label
en considérant que le besoin d'un nom non-ambigu avec un nombre connu de caractères est suffisamment répandu. On suppose qu'un contexte de présentation permettra de différencier entre deux paramètres ayant le même short_label
.
Il s'agit de la proposition 1A, avec pour seul changement la présence obligatoire.
Le taux de remplissage actuel de cette métadonnée est d'environ 20,6%.
Hello ! Petite remarque suite au récap ci-dessus, je crois qu'il y a eu une lecture un peu rapide pour date_parution_jo
: il n'y a pas de consensus pour la suppression. Pour l'instant (avant la 2e serie de votes), on est à 2 contre 1.
De plus, puisqu'il a été convenu que notre objectif final est d'harmoniser, nous n'avons pas encore défini si nous pouvions supprimer ce champ définitivement, et si ce n'est pas le cas, quelles seraient les modalités mises en place pour le remplacer (pipeline?) sans arrêter net cet effort de convergence.
En réponse au commentaire de point d'étape cc @MattiSG :
Point principal de surprise pour moi : un dissensus sur le renommage de rate_unit en unit (proposition 1C). @sandcha peux-tu nous expliquer ta position sur le sujet ? 🙂
On évoque le renommage de la clef rate_unit
en unit
dans le contexte d'un barème et il me semble que cela introduit un risque de confusion pour deux raisons :
les barèmes couvrent un mécanisme de calcul et on peut se demander si unit
n'est pas l'unité du résultat de l'application du barème là où rate_unit
est explicite,
il y a aussi des barèmes à montant qui ont un amount_unit
et je comprends que si on supprime rate_
à rate_unit
, on supprimera par cohérence aussi amount_
à amount_unit
. Or ce mot me semble faciliter la compréhension de l'unité. En son absence, il faut déduire cette information du type
du barème.
Les amount scales ont été évoqués ici puis omis dans la RFC mais il me semble que ce qui vaut pour les "rate scales" vaut pour les "amount scales".
Ce dernier message me fait réaliser que le champ type
des barèmes manque à l'appel. Il permet de distinguer entre les barèmes simples/marginaux + à taux/à montants [la doc est exhaustive à ce sujet]. Je ne crois pas que ce champ pose question à ce jour mais c'est une information nécessaire à l'identification des barèmes marginaux donc nous ne voudrions pas la perdre.
RFC : normalisation des métadonnées des paramètres
Objet
Cette RFC vise à établir une liste des métadonnées à utiliser dans OpenFisca France pour les paramètres.
Contexte, Nécessité, Processus…
Cette issue est le résultat d'un éclatement de #1618 opéré afin de faciliter la lecture. Tout le contexte, ainsi que le catalogue des métadonnées à traiter, est donc donné dans https://github.com/openfisca/openfisca-france/issues/1618#issue-958097828. Il s'agit ici de continuer la conversation, uniquement sur les paramètres, en s'appuyant sur les résultats déjà obtenus pour les variables.