openfisca / openfisca-france

French tax and benefit system for OpenFisca
https://openfisca.org/fr
259 stars 99 forks source link

Normalisation des métadonnées des paramètres #1672

Closed MattiSG closed 1 year ago

MattiSG commented 3 years ago

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.

MattiSG commented 3 years ago

Version 0 d'une proposition pour description (métadonnée de Paramètre)

Fonctionnement actuel, sans changement.


- Nom : `description` - Type : texte libre. - Objet : donner un nom lisible au paramètre. - Échelle de déclaration : Paramètre. - Convention : contenir le nom de l'ensemble des nœuds traversés avec une expansion des abréviations et les abréviations entre parenthèses. - Cas d'usage : - Désambiguer un paramètre dont le nom est une abréviation. - Rechercher et afficher un paramètre dans l'explorateur de législation. - Exemples : - `"Indicatrice d'imposition"` - `"Contribution exceptionnelle sur les hauts revenus"` - Lieu de documentation : openfisca.org/doc pour le format de données, `CONTRIBUTING.md` pour les conventions.
MattiSG commented 3 years ago

Version 1A d'une proposition pour 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 :

| Nombre d'occurrences | Texte | |----------------------|-------| | 47 | Taux | | 23 | Plafond | | 12 | Indice majoré plafond | | 8 | Maximum | | 7 | Seuil | | 6 | Cotisations et taxes des indépendants artisans-commerçants | | 5 | Seuil de non versement | | 5 | Plafond de ressources | | 5 | 'Taxes sur les salaires | | 4 | Taux pour 2 enfants | | 4 | Majoration du plafond pour les 2 premiers enfants | | 4 | Majoration du plafond à partir du 3ème enfant | | 3 | Taux pour une 3e personne | | 3 | Taux pour une 2nde personne | | 3 | Taux pour 2 adultes | | 3 | Taux pour 1 enfant | | 3 | Taux pour 1 adulte | | 3 | Taux par personne supplémentaire | | 3 | Taux de l'abattement | | 3 | Taux 22% | | 3 | Minimum | | 3 | Limite d'âge des enfants comptés à charge | | 3 | Effort à la construction | | 3 | Cotisations syndicales | | 2 | Zone 3 - couple | | 2 | Zone 3 - Majoration par personne à charge supplémentaire | | 2 | Zone 3 - Famille avec 1 personne à charge | | 2 | Zone 3 - 1 adulte | | 2 | Zone 2 - couple | | 2 | Zone 2 - Majoration par personne à charge supplémentaire | | 2 | Zone 2 - Famille avec 1 personne à charge | | 2 | Zone 2 - 1 adulte | | 2 | Zone 1 - couple | | 2 | Zone 1 - Majoration par personne à charge supplémentaire | | 2 | Zone 1 - Famille avec 1 personne à charge | | 2 | Zone 1 - 1 adulte | | 2 | Versement forfaitaire sur les salaires (1949-1967) | | 2 | Taux pour les activités de ventes | | 2 | Taux pour les activités de prestations et de services | | 2 | Taux pour 4 enfants | | 2 | Taux pour 3 enfants | | 2 | Taux par enfants supplémentaires | | 2 | Taux employé (de moins de 65 ans, en Alsace-Moselle) des cotisations de sécurité sociale (SS) des journalistes pigistes pour les assurances sociales avant 1967, sous le plafond de la sécurité sociale (PSS) | | 2 | Taux de la majoration du RSA socle pour une femme enceinte sans enfant | | 2 | Taux de la décote | | 2 | Taux de la Contribution Sociale Généralisée (CSG) sur les revenus du capital (produits de placement) | | 2 | Taux de la Contribution Sociale Généralisée (CSG) imposable sur les revenus d'activité | | 2 | Taux de la Contribution Sociale Généralisée (CSG) déductible sur les revenus du capital (produits de placement) | | 2 | Taux d'intérêt forfaitaire appliqué à l'épargne générant des revenus non imposables | | 2 | Taux biens ruraux | | 2 | Taux 30% | | 2 | Taux 25% | | 2 | Taux 2 | | 2 | Taux 18% | | 2 | Taux 15% | | 2 | Taux 1 | | 2 | Taux (WL) | | 2 | Seuil de la décote pour un couple | | 2 | Seuil de la décote pour un célibataire | | 2 | Seuil de RFR à partir duquel un foyer ayant bénéficié d'un éco-prêt à taux zéro ne peut pas bénéficier du crédit d'impôt | | 2 | Sécurité sociale/ Maladie, maternité | | 2 | Sécurité sociale/ Indemnités journalières | | 2 | Second plafond de ressources pour un enfant | | 2 | Rsa socle | | 2 | Revenus liés au patrimoine | | 2 | Retraite de base | | 2 | Retraite complémentaire | | 2 | Report des excédents 2011 | | 2 | Réduction du temps de travail de 10%, allègements Robien (1996-2005) des cotisations de Sécurité sociale (SS) | | 2 | Réduction d'impôt exceptionnelle | | 2 | Prime de solidarité active | | 2 | Premier taux | | 2 | Pourcentage du RSA socle pour une personne (pour une personne) | | 2 | Pourcentage du RSA socle pour trois personnes (pour trois et plus personnes) | | 2 | Pourcentage du RSA socle pour deux personnes (pour deux personnes) | | 2 | Plafond des dépenses | | 2 | Plafond de ressources de base pour PAJE à taux plein | | 2 | Plafond de ressources de base pour PAJE à taux partiel | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec un enfant, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 8 enfants | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 7 enfants, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 6 enfants, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 5 enfants, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 4 enfants, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 3 enfants, | | 2 | Plafond de référence pour l'échelon 3, pour une famille avec 2 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec un enfant, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 8 enfants | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 7 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 6 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 5 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 4 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 3 enfants, | | 2 | Plafond de référence pour l'échelon 2, pour une famille avec 2 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec un enfant, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 8 enfants | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 7 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 6 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 5 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 4 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 3 enfants, | | 2 | Plafond de référence pour l'échelon 1, pour une famille avec 2 enfants, | | 2 | Pente du RSA | | 2 | Participation des employeurs à la formation professionnelle continue (PEFPC), moins de 11 salariés | | 2 | Par enfant à charge | | 2 | Orphelin (de père et de mère), ou situation assimilée | | 2 | Non mariés ou non PACS | | 2 | Montant plafond par part pour les deux premières parts | | 2 | Maximum par personne | | 2 | Majoration pour biactifs et isolés, pour plafond taux plein | | 2 | Majoration pour biactifs et isolés, pour plafond taux partiel | | 2 | Majoration pour biactifs et isolés | | 2 | Majoration du seuil par demi-part supplémentaire | | 2 | Majoration du plafond pour le 1er enfant | | 2 | Majoration du plafond pour biactifs ou isolé | | 2 | Majoration du plafond par enfant supplémentaire | | 2 | Majoration du plafond par enfant | | 2 | Majoration du RSA socle pour parent isolé | | 2 | Majoration du RSA socle par enfant supplémentaire (en pourcentage du | | 2 | Loyer minimum lo | | 2 | Limite de x % du revenu | | 2 | Investissements locatifs intermédiaires | | 2 | Investissements dans les DOM-TOM dans le cadre d'une entreprise | | 2 | Invalidité, décès | | 2 | Formation professionnelle | | 2 | Forfait logement pour 3 personnes ou plus | | 2 | Forfait logement pour 2 personnes | | 2 | Forfait logement | | 2 | Forfait annuel des cotisations pour l'association pour l'emploi des cades (APEC), régimes complémentaires de retraite (secteur privé) | | 2 | Forfait Allocation de Soutien Familial | | 2 | Fofait logement pour 1 personne (en % du rsa_socle) | | 2 | Durée minimale de titre du séjour permettant de bénéficier du RSA | | 2 | Cotisations salariales pour l'Association pour la gestion de la structure financière, ou cotisation ASF (1984-2001) | | 2 | Cotisations retraite spécifiques à la fonction publique | | 2 | Cotisations et taxes des professions libérales | | 2 | Cotisations employeur de contribution au régime de garantie des salaires (AGS) | | 2 | Cotisations de sécurité sociale (SS) pour les accidents du travail et les maladies professionnelles (AT-MP) | | 2 | Cotisations de sécurité sociale (SS) des journalistes pigistes (1964-1974) pour les accidents du travail | | 2 | Cotisations au régime de l'assurance chômage | | 2 | Catégorie 1 / Autres régions - Plafonds de ressources annuelles imposables | | 2 | Case XG | | 2 | Case GU | | 2 | Barème salarié des cotisations pour l'association pour l'emploi des cades (APEC), régimes complémentaires de retraite (secteur privé) | | 2 | Allocation de base | | 2 | Âge limite inférieur | | 2 | Âge limite du benjamin pour un versement sans condition de durée | | 2 | Âge de début de la 2ème majoration | | 2 | Âge de début de la 1ere majoration | | 2 | Activité de type BNC | | 2 | Activité de type BIC | | 2 | Activité de type Achat-Revente | | 2 | Abattement maximum | | 2 | Abattement appliqué sur la valeur locative des terrains non loués | | 2 | Abattement appliqué sur la valeur locative des biens immobiliers non | | 2 | 1ère majoration pour âge | | 2 | 'Orphelin de père ou de mère (un seul parent manquant) ou situation assimilée | | 2 | 'Note 4 | | 2 | 'Note 3 | | 2 | 'Indemnité de résidence | | 2 | "Indicatrice d'imposition" | Ces valeurs ont été obtenues par l'exécution de `grep --no-filename -R 'label =' openfisca_france | cut -d '=' -f 2 | sort | uniq -c | sort `.

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.


- Nom : ```diff - `description` + `label` ``` - Type : ```diff - texte libre. + langage naturel limité à 420 caractères, sur une seule ligne, sans espace en début ni fin, unique dans le système socio-fiscal. ``` - Objet : donner un nom lisible au paramètre. - Échelle de déclaration : Paramètre. - Convention : contenir le nom de l'ensemble des nœuds traversés avec une expansion des abréviations et les abréviations entre parenthèses. - Cas d'usage : - Désambiguer un paramètre dont le nom est une abréviation. - Rechercher et afficher un paramètre dans l'explorateur de législation. - Exemples : - `"Indicatrice d'imposition"` - `"Contribution exceptionnelle sur les hauts revenus"` - Lieu de documentation : openfisca.org/doc pour le format de données, `CONTRIBUTING.md` pour les conventions.
MattiSG commented 3 years ago

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 que description, unit…)

Il s'agit d'une adaptation d'une série de propositions pour reference (Variable), qui a été adoptée.


- Nom : `reference` - Type : ```diff - texte libre, ou tableau de texte libre. + tableau associatif dont les clés sont des noms de textes légaux et les valeurs sont des URLs publiquement accessibles ou des chaînes vides. ``` - Objet : référence légale, identifier la loi de laquelle provient le paramètre. - Échelle de déclaration : Paramètre. - Cas d'usage : - Vérifier la validité d'une formule en consultant son origine légale. - Afficher l'intitulé de la source légale dans l'explorateur de législation. - Exemples : ```diff - https://www.pole-emploi.fr/candidat/mes-droits-aux-aides-et-allocati/allocations-et-aides--les-repons/aides-financieres-aux-jeunes-dip.html + "Site Pôle Emploi": "https://www.pole-emploi.fr/candidat/mes-droits-aux-aides-et-allocati/allocations-et-aides--les-repons/aides-financieres-aux-jeunes-dip.html" ``` ```diff - - "Décret n°2020-519 du 5 mai 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/" - - "Décret n°2020-769 du 24 juin 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042032514" - - "Décret n°2020-1453 du 27 novembre 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042574431" + Décret n°2020-519 du 5 mai 2020: "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/" + Décret n°2020-769 du 24 juin 2020: "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042032514" + Décret n°2020-1453 du 27 novembre 2020: "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042574431" ```
MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour documentation (métadonnée de Paramètre)

Conserver la métadonnée telle quelle.


- Type : texte libre. - Objet : explications générales, extension des acronymes, références législatives plus larges que des valeurs spécifiques. - Échelle de déclaration : nœud `metadata` d'un Paramètre. - Cas d'usage : - Ajouter une note en bas de chaque fichier Excel des barèmes IPP. - Exemples : - ` À partir de 2014, des seuils spécifiques (célibataire, couple) sont employés pour le calcul de la décote.` - ``` Notes : (i) La taxe d'apprentissage est créée par la Loi de finances du 13 juillet 1925. La loi 77-704 du 05/07/1977créé une cotisation supplémentaire de 0,2% pour financer la formation en alternance; elle doit être versée de manière exceptionnelle en 1977. Elle a été maintenue par la LFR pour 1978. En 1990, la contribution supplémentaire de 0,10% est remplacée par une cotisation pérenne de 0,10% pour la formation en alternance. (ii) Une incertitude subsiste sur le taux applicable en Alsace-Lorraine entre 1973 et 1978 inclus. (iii) "La date d'effet correspond à la période de versement de la taxe. La taxe d'apprentissage et la CSA sont dues en N aux taux en vigueur en N sur les rémunérations versées en N."" (iv) A l'heure actuelle (taxe payable en 2016, sur les rémunérations de 2015): La taxe d'apprentissage et la CDA sont payées par toutes les entreprises assujetties à l'IR ou à l'IS; celles employant des apprentis en sont exonérées. La CSA est due par les entreprises qui emploient moins d'un nombre-cible de "jeunes" et de travailleurs en alternance. Le taux de CSA applicable varie à la fois avec la taille de l'entreprise et avec le pourcentage de salariés en alternance dans l'effectif annuel moyen de l'entreprise. Nous reportons ici uniquement le taux pour les entreprises de moins de 2000 salariés, dont les alternants, VIE et contrats CIFRE représentent moins de 1 % de l'effectif total de l'entreprise. Les autres taux sont, en 2019, de (art. 1609 quinvicies du CGI) : 0,6 % (0,312 % en Alsace-Moselle) si le nombre de salariés titulaires d'un contrat de professionnalisation ou d’apprentissage et de jeunes accomplissant un VIE ou bénéficiant d'une CIFRE est inférieur à 1 % de l'effectif annuel moyen et si l'effectif total est supérieur à 2000 salariés ; 0,2 % (0,104 % en Alsace-Moselle) si le nombre de salariés et de jeunes appartenant aux catégories susvisées est compris entre 1 et 2 % de l’effectif annuel moyen ; 0,1 % (0,052 % en Alsace-Moselle) si le nombre de salariés et de jeunes appartenant aux catégories susvisées est compris entre 2 et 3 % de l’effectif annuel moyen ; 0,05 % (0,026 % en Alsace-Moselle) si le nombre de salariés et de jeunes appartenant aux catégories susvisées est compris entre 3 et 5 % de l’effectif annuel moyen. Sources : Taxe d'apprentissage : CGI, art. 224 et s. et art. 140 A et s. de l'annexe I ; pour l'Alsace-Moselle, art. 1599 ter J. CSA : CGI, art. 230 H puis (à partir de 2014, cf. Décret 2014-549, JO 2014-05-29) 1609 quinvicies ```
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.

Sasha-Laniece commented 3 years ago

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

MattiSG commented 3 years ago

Sont encore en attente de rédaction :

Sasha-Laniece commented 3 years ago

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 ^^

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.


- Nom : ```diff - official_journal_date - date_parution_jo + dates_journal_officiel ``` - Type : ```diff - date + tableau de dates ``` - Objet : ```diff - date de publication au JO (et non date d'effet) du ou des textes de loi référencés dans `reference:title` et `reference:href`. + dates de publication au JO (et non date d'effet) des textes de loi de la `reference`. ``` - Échelle de déclaration : nœud `metadata` d'un Paramètre. - Cas d'usage : - Identifier la loi de laquelle provient le paramètre. - Exemples : ```diff - 2019-01-01: 2018-09-06 + dates_journal_officiel: [ 2018-09-06 ] - 2014-01-01: 2013-12-29; 2012-03-15 + dates_journal_officiel: [ 2013-12-29, 2012-03-15 ] ``` - Lieu de documentation : CONTRIBUTING.md (pas de normalisation dans Core).
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.


- Nom : ```diff - official_journal_date - date_parution_jo + parutions_journal_officiel ``` - Type : ```diff - date + dictionnaire dont les clés sont les mêmes que celles de la `reference`, et les valeurs sont des dates ``` - Objet : ```diff - date de publication au JO (et non date d'effet) du ou des textes de loi référencés dans `reference:title` et `reference:href`. + dates de publication au JO (et non date d'effet) des textes de loi de la `reference`. ``` - Échelle de déclaration : nœud `metadata` d'un Paramètre. - Cas d'usage : - Identifier la loi de laquelle provient le paramètre. - Exemples : ```diff - 2019-01-01: 2018-09-06 + parutions_journal_officiel: + Décret du 6 septembre 2018: 2018-09-06 - 2014-01-01: 2013-12-29; 2012-03-15 + parutions_journal_officiel: + Circulaire ministérielle du 29 décembre 2013: 2013-12-29 + Loi Mirlade: 2012-03-15 ``` - Lieu de documentation : CONTRIBUTING.md (pas de normalisation dans Core).
MattiSG commented 3 years ago

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 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.


- Nom : ```diff - description_en + label_en ``` - Type : ```diff - texte libre (anglais) + langage naturel en anglais limité à 420 caractères, sur une seule ligne, sans espace en début ni fin ``` - Objet : nom du paramètre en anglais. - Échelle de déclaration : nœud `metadata` d'un Paramètre. - Cas d'usage : - Générer la version anglaise du site de l'IPP. - Exemples : - `Apprenticeship tax (tax for the financing of apprenticeship)` - `Other payroll and workforce taxes` - Lieu de documentation : CONTRIBUTING.md (pas de normalisation dans Core).
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.


- Nom : ```diff - description_en + label ``` - Type : ```diff - texte libre (anglais) + dictionnaire dont les clé sont des codes ISO régionaux, et les valeurs sont des chaînes de caractère en langage naturel dans la langue indiquée par la clé, limitées à 420 caractères, sur une seule ligne, sans espace en début ni fin ``` - Objet : ```diff - nom du paramètre en anglais. + nom du paramètre dans une autre langue. ``` - Échelle de déclaration : ```diff - nœud `metadata` d'un Paramètre + Paramètre ``` - Cas d'usage : - Générer la version anglaise du site de l'IPP. - Exemples : ```diff - Apprenticeship tax (tax for the financing of apprenticeship) + label: + fr: Taxe d'apprentissage + en: Apprenticeship tax (tax for the financing of apprenticeship) ``` ```diff - Other payroll and workforce taxes + label: + fr: Taxes et participations + en: Other payroll and workforce taxes ``` - Lieu de documentation : Core.
MattiSG commented 3 years ago

Version 1C d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.

- Nom : ```diff - ux_name + short_label ``` - Type : ```diff - texte libre avec un nombre court de caractères. + langage naturel limité à 70 caractères, sur une seule ligne, sans espace en début ni fin. ``` - Objet : nom court du paramètre, autorisant les abréviations les plus connues. - Échelle de déclaration : ```diff - nœud `metadata` d'un Paramètre + Paramètre ``` - Cas d'usage : - Afficher un nom reconnaissable par une personne non experte du modèle OpenFisca dans un espace d'affichage connu d'avance. - Faciliter la construction d'interfaces graphiques en ayant une contrainte connue de taille d'affichage. - Exemples : - `Taxes et participations` - `Fonds national d'aide au logement (FNAL)` - Lieu de documentation : openfisca.org/doc (les cas d'usage mentionnés nécessitent d'exposer cette information dans l'API web, il faudra donc modifier Core). Afin de supporter des langues différentes, le nombre et le type de caractères autorisés pourra faire l'objet d'une spécification par pays. La limite sera donc documentée dans CONTRIBUTING.md. Les conventions de rédaction (quels acronymes étendre…) seront documentées dans le CONTRIBUTING.md.
MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.


- Nom : `unit` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - Paramètre + nœud `metadata` d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : ```diff - unit: currency + metadata: + unit: currency ``` ```diff - unit: /1 + metadata: + unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.


- Nom : `unit` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - Paramètre + nœud de date de valeur d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : ```diff - unit: currency + values: + 2019-01-01: + unit: currency ``` ```diff - unit: /1 + values: + 2019-01-01: + unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1C d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.


- Nom : `threshold_unit` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - Paramètre + nœud `metadata` d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : - `threshold_unit: currency` ```diff - threshold_unit: /1 + threshold_unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.


- Nom : ```diff - threshold_unit + unit ``` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - nœud metadata d'un Paramètre + nœud de date de valeur d'un threshold de barème d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : ```diff - metadata: - threshold_unit: SMIC + threshold: + 1967-10-01: + unit: SMIC ``` ```diff - metadata: - threshold_unit: /1 + threshold: + 1984-04-01: + unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1C d'une proposition pour 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.

MattiSG commented 3 years ago

Version 1A d'une proposition pour 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.


- Nom : `rate_unit` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - Paramètre + nœud `metadata` d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : - `rate_unit: currency` ```diff - rate_unit: /1 + rate_unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1B d'une proposition pour 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.


- Nom : ```diff - rate_unit + unit ``` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - nœud metadata d'un Paramètre + nœud de date de valeur d'un rate de barème d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : ```diff - metadata: - rate_unit: SMIC + rate: + 1967-10-01: + unit: SMIC ``` ```diff - metadata: - rate_unit: /1 + rate: + 1984-04-01: + unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1C d'une proposition pour 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.


- Nom : ```diff - rate_unit + unit ``` - Type : ```diff - texte libre + enum ``` - Objet : décrire l'unité dans laquelle doit être interprétée la valeur déclarée. - Échelle de déclaration : ```diff - Paramètre + nœud `metadata` d'un Paramètre ``` - Cas d'usage : - Afficher l'unité dans l'explorateur de législation. - Éviter d'indiquer l'unité en texte libre dans le champ `description`. - Exemples : ```diff - rate_unit: currency + unit: currency ``` ```diff - rate_unit: /1 + unit: percentage ``` - Lieu de documentation : openfisca.org/doc pour l'usage et la liste des types de base. Afin de supporter des unités spécifiques (valeur du SMIC, montant du plafond de la sécurité sociale…), les types spécifiques à la France seront déclarés dans OF-France.
MattiSG commented 3 years ago

Version 1D d'une proposition pour 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.

MattiSG commented 3 years ago

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.

Sasha-Laniece commented 3 years ago

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 que description, 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

Sasha-Laniece commented 3 years ago

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 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.

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.

MattiSG commented 3 years ago

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 :

  1. La grande majorité des références pointe vers https://www.ipp.eu/outils/baremes-ipp/, ce qui ne me semble pas vraiment exploitable.
  2. 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.
  3. Un certain nombre de références sont ipp ou openfisca, ce qui est inexploitable.

Les données brutes sont disponibles ci-dessous.

| Nombre d'occurrences | Valeur | |-----|-------------------------| | 988 | `https://www.ipp.eu/outils/baremes-ipp/` | | 80 | ` https://www.ipp.eu/outils/baremes-ipp/` | | 53 | ` https://www.ipp.eu/outils/baremes-ipp/` | | 39 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/27/LOGL1831321A/jo/texte` | | 31 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000039160329&dateTexte=20191008` | | 27 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/2/27/TERL1801551A/jo/article_1` | | 24 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_14` | | 24 | ` https://www.legifrance.gouv.fr/eli/arrete/2015/10/16/AFSS1524789A/jo/article_2` | | 21 | ` https://www.legifrance.gouv.fr/eli/arrete/2016/12/22/LHAL1629455A/jo/texte` | | 15 | `ipp` | | 15 | ` https://www.agirc-arrco.fr/fileadmin/agircarrco/documents/conventions_accords/2017/ANI_Retraite_17nov2017_01012019.pdf` | | 13 | ` openfisca` | | 12 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378448/2021-01-02` | | 12 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/9/30/LOGL2020748A/jo/article_1` | | 12 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/31/LOGL1934007A/jo/article_1` | | 12 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/2/27/TERL1801551A/jo/article_2` | | 12 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_1` | | 11 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000039160739/2019-10-08` | | 10 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/12/14/SSAS2032692A/jo/article_3` | | 10 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/21/SSAS1835267A/jo/article_3` | | 9 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/1/3/LOGL1934006A/jo/article_1` | | 9 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/20/SSAS1934813A/jo/article_3` | | 8 | ` https://www.legifrance.gouv.fr/eli/decret/2018/3/30/SSAS1805864D/jo/article_1` | | 8 | ` https://www.legifrance.gouv.fr/eli/decret/2018/12/27/2018-1316/jo/texte` | | 8 | ` https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=1B336613D677A8012B5EC663496EFF09.tplgfr31s_3?idArticle=LEGIARTI000035672548&cidTexte=LEGITEXT000005630325&dateTexte=20180829` | | 8 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000031088328/2015-09-01` | | 7 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_11` | | 5 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/20/SSAS1934813A/jo/article_1` | | 5 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/21/SSAS1835267A/jo/article_1` | | 5 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/12/27/SSAS1736592A/jo/article_3` | | 5 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/12/27/SSAS1736592A/jo/article_1` | | 4 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do;3?idArticle=LEGIARTI000026876425&cidTexte=LEGITEXT000006069577` | | 4 | ` https://www.visale.fr/vos-questions/faq-locataires/locataire-de-30-ans-ou-moins-suis-je-eligible/#13` | | 4 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/9/25/LOGL2020835A/jo/article_1` | | 4 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/9/27/LOGL1925404A/jo/article_43` | | 4 | ` https://www.legifrance.gouv.fr/eli/arrete/2015/10/16/AFSS1524789A/jo/article_1` | | 4 | ` https://www.agirc-arrco.fr/fileadmin/agircarrco/documents/circulaires/agirc_arrco/2017/201710dt_parametres_Agirc-Arrco.pdf` | | 4 | ` https://www.senat.fr/questions/base/2018/qSEQ180504798.html` | | 3 | `https://www.service-public.fr/particuliers/vosdroits/F986` | | 3 | `https://www.ipp.eu/outils/baremes-ipp/ (hors parser des barèmes)` | | 3 | `art. 1414 A du CGI` | | 3 | `Barèmes IPP - https://www.ipp.eu/wp-content/uploads/2017/07/baremes-ipp-impot-revenu-income-tax.xlsx` | | 3 | ` https://www.ancv.com/actualites/le-magazine/depart-1825-un-nouveau-programme-pour-les-jeunes-de-18-25-ans` | | 3 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01` | | 3 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000039160757/2019-10-08` | | 3 | ` https://www.legifrance.gouv.fr/eli/decret/2017/5/5/MENE1711101D/jo/texte` | | 3 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/12/14/SSAS2032692A/jo/article_1` | | 3 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_5` | | 3 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/12/29/TERL1732837A/jo/texte` | | 3 | ` https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=A255A658F13C8E33683829D842D23613.tplgfr38s_1?cidTexte=JORFTEXT000031632853&idArticle=LEGIARTI000031634884&dateTexte=20151217&categorieLien=cid#LEGIARTI000031634884` | | 3 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_11` | | 2 | `https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=B79D0775D8C0BB04C981DA5E02789A79.tplgfr29s_2?idArticle=LEGIARTI000006832000&cidTexte=JORFTEXT000000486568&categorieLien=id&dateTexte=20081231` | | 2 | `https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=52312F95C78DFC864FEE6DDC3A2F6A8D.tplgfr38s_1?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000020562591&dateTexte=20190221&categorieLien=cid#LEGIARTI000020562591` | | 2 | `https://www.ipp.eu/baremes-ipp/impot-sur-le-revenu/calcul_revenus_imposables/charg_deduc/` | | 2 | `3. du II de l'art. 1411 du CGI` | | 2 | `1° du 3. du I. de l'art. 1641 du CGI` | | 2 | ` https://www.service-public.fr/particuliers/vosdroits/F20348` | | 2 | ` https://www.etudiant.gouv.fr/fr/bourses-erasmus-et-aide-la-mobilite-internationale-ami-67` | | 2 | ` https://www.legifrance.gouv.fr/eli/decret/2018/12/21/2018-1197/jo/texte` | | 2 | ` https://www.legifrance.gouv.fr/eli/decret/2017/5/4/AFSA1707122D/jo/article_1` | | 2 | ` https://www.legifrance.gouv.fr/eli/decret/2017/12/30/CPAS1732212D/jo/texte` | | 2 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/12/14/SSAS2032692A/jo/article_4` | | 2 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/23/SSAS1936646A/jo/article_1` | | 2 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/27/LOGL1831318A/jo/texte` | | 2 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/12/27/SSAS1736592A/jo/article_2` | | 2 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000031781118&cidTexte=LEGITEXT000006072050&dateTexte=20180420&fastPos=1&fastReqId=505933634&oldAction=rechCodeArticle` | | 2 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000031694502&cidTexte=LEGITEXT000006073189&dateTexte=20181012&oldAction=rechCodeArticle&fastReqId=1024869826&nbResultRech=1` | | 2 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006074069&idArticle=LEGIARTI000021636574&dateTexte=&categorieLien=cid` | | 2 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=?idArticle=LEGIARTI000006737355&cidTexte=LEGITEXT000006073189&categorieLien=id&dateTexte=20001231` | | 2 | ` https://www.education.gouv.fr/bo/2007/13/MENS0700649C.htm` | | 2 | ` https://www.education.gouv.fr/bo/20/Hebdo25/ESRS2013435C.htm` | | 2 | ` https://www.actionlogement.fr/l-aide-mobili-jeune` | | 2 | ` https://solidarites-sante.gouv.fr/fichiers/bo/2019/19-04/ste_20190004_0000_0066.pdf` | | 2 | ` https://legi.toutelaloi.fr/LEGI/GetArticleByID?reference=LEGIARTI000006791742` | | 2 | ` http://circulaires.legifrance.gouv.fr/pdf/2019/03/cir_44460.pdf` | | 2 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/2/27/TERL1801552A/jo/article_1` | | 2 | ` https://www.culture.gouv.fr/Nous-connaitre/Decouvrir-le-ministere/Histoire-du-ministere/Ressources-documentaires/Discours-de-ministres/Discours-de-ministres-depuis-1998/Frederic-Mitterrand-2009-2012/Communiques-2009-2012/Frederic-Mitterrand-etend-la-gratuite-des-musees-et-des-monuments-nationaux-a-tous-les-jeunes-qui-resident-dans-l-Union-Europeenne-quelle-que-soit` | | 2 | ` https://depart1825.com/annonce-president-vacances/` | | 2 | ` https://www.lemonde.fr/campus/article/2018/06/11/logement-le-systeme-de-caution-visale-etendu-a-tous-les-etudiants_5312871_4401467.html # également https://www.fage.org/idees/idees-social/idees-social-crous-aide-logement/idees-social-garantie-locative-visale.htm pour la date, et https://www.crous-paris.fr/logement/les-aides-au-logement/visale-caution-locative pour le montant (pas encore actualisé à la date d'écriture)` | | 1 | `openfisca` | | 1 | `https://www.visale.fr/wp-content/uploads/2020/04/Visale-Ressources-Locataire_2020.pdf#page7` | | 1 | `https://www.service-public.fr/particuliers/vosdroits/F12484` | | 1 | `https://www.service-public.fr/particuliers/actualites/A14726` | | 1 | `https://www.legifrance.gouv.fr/loda/id/JORFTEXT000042170743/` | | 1 | `https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000043518876` | | 1 | `https://www.legifrance.gouv.fr/eli/decret/2019/1/3/MTRD1835610D/jo/texte` | | 1 | `https://www.legifrance.gouv.fr/eli/decret/2018/2/27/2018-136/jo/article_1` | | 1 | `https://www.legifrance.gouv.fr/eli/decret/2016/10/12/LHAL1606833D/jo/texte` | | 1 | `https://www.legifrance.gouv.fr/eli/arrete/2007/11/8/MLVU0759263A/jo/article_2` | | 1 | `https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000005745247` | | 1 | `https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000037249831&cidTexte=LEGITEXT000006073189` | | 1 | `https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006074096&idArticle=LEGIARTI000006899011` | | 1 | `https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000006739693&dateTexte=&categorieLien=cid` | | 1 | `https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=F095CE10E4FB989CF7E5FFC2249F170A.tplgfr28s_2?idArticle=LEGIARTI000006739703&cidTexte=LEGITEXT000006073189&categorieLien=id&dateTexte=` | | 1 | `https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=7392B9902E4B974EAE8783FAF2D69849.tplgfr30s_1?idArticle=LEGIARTI000006750376&cidTexte=LEGITEXT000006073189&dateTexte=20180823` | | 1 | `https://www.ipp.eu/outils/baremes-ipp/ - http://bofip.impots.gouv.fr/bofip/7804-PGP.html?identifiant=BOI-IR-CHR-20170711` | | 1 | `https://www.ipp.eu/baremes-ipp/prestations-sociales/0/3/prestations_generales/af_cond/` | | 1 | `https://www.ipp.eu/baremes-ipp/prestations-sociales/0/2/` | | 1 | `https://www.ipp.eu/baremes-ipp/chomage/allocations_assurance_chomage/alloc_base/` | | 1 | `https://www.etudiant.gouv.fr/fr/bourses-erasmus-et-aide-la-mobilite-internationale-ami-67` | | 1 | `https://www.bpifrance.fr/Toutes-nos-solutions/Garanties-et-assurances/Garanties-aux-banques/Garantie-des-prets-etudiants` | | 1 | `https://framagit.org/french-tax-and-benefit-tables/baremes-ipp-yaml/-/blob/master/parameters/prestations_sociales/prestations_etat_de_sante/perte_autonomie_personnes_agees/apa_mtp.yaml` | | 1 | `https://fr.wikipedia.org/wiki/Majorité_civile_en_France#Historique` | | 1 | `https://fr.wikipedia.org/wiki/Île-de-France` | | 1 | `https://fr.wikipedia.org/wiki/Espace_économique_européen#Évolution` | | 1 | `https://fr.wikipedia.org/wiki/Élargissement_de_l%27Union_européenne#Chronologie` | | 1 | `http://www.bo-pole-emploi.org/bulletinsofficiels/instruction-pe-n2011-205-du-9-de.html?type=dossiers/2011/bope-n2011-112-du-9-decembre-201` | | 1 | `art. 1641 du CGI` | | 1 | `art. 1414 du CGI` | | 1 | `art. 1414 C du CGI` | | 1 | `II de l'art. 1417 du CGI` | | 1 | `I. de l'art. 1414 A du CGI` | | 1 | `I de l'art. 1417 du CGI` | | 1 | `Décret n° 2016-1818 du 22 décembre 2016 portant relèvement du salaire minimum` | | 1 | `2. du II bis de l'art. 1417 du CGI` | | 1 | `1. du II bis de l'art. 1417 du CGI` | | 1 | `'https://www.service-public.fr/particuliers/vosdroits/F986'` | | 1 | `"https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000030308553&categorieLien=id"` | | 1 | `"https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000029234400&cidTexte=LEGITEXT000006071191&dateTexte=20170901"` | | 1 | `"https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006074069&idArticle=LEGIARTI000021636574&dateTexte=&categorieLien=cid"` | | 1 | `"https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000006743072&dateTexte=&categorieLien=cid"` | | 1 | `"https://www.legifrance.gouv.fr/affichCode.do?idSectionTA=LEGISCTA000006173455&cidTexte=LEGITEXT000006073189"` | | 1 | ` https://www.visale.fr/vos-questions/faq-locataires/locataire-de-30-ans-ou-moins-suis-je-eligible/#5` | | 1 | ` https://www.visale.fr/vos-questions/faq-locataires/locataire-de-30-ans-ou-moins-suis-je-eligible/#1` | | 1 | ` https://www.service-public.fr/particuliers/vosdroits/F19778` | | 1 | ` https://www.pole-emploi.fr/candidat/mes-droits-aux-aides-et-allocati/allocations-et-aides--les-repons/aides-financieres-aux-jeunes-dip.html` | | 1 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006069577&idArticle=LEGIARTI000026946928&dateTexte=&categorieLien=id` | | 1 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=CE740B6D375E31370F15EEF5F40ADFF8.tplgfr27s_2?idArticle=LEGIARTI000037526716&cidTexte=LEGITEXT000006069577&categorieLien=id&dateTexte=` | | 1 | ` https://www.ipp.eu/baremes-ipp/prestations-sociales/0/3/prestations_generales/af_cond/` | | 1 | ` https://www.ipp.eu/baremes-ipp/impot-sur-le-revenu/bareme_ir_depuis_1945/bareme_ir/` | | 1 | ` https://www.actionlogement.fr/l-aide-mobili-jeune` | | 1 | ` I de l'article 1417 du code général des impôts - https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=E596249E4FBBDB2A6D14A1D46EEB9451.tplgfr25s_3?idArticle=LEGIARTI000036443079&cidTexte=LEGITEXT000006069577&categorieLien=id&dateTexte=20200101` | | 1 | ` Article L221-15 du code monétaire et financier - https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006072026&idArticle=LEGIARTI000006651936&dateTexte=&categorieLien=cid` | | 1 | ` Article 3 du règlement n° 86-13 du 14 mai 1986` | | 1 | ` 'Article L5131-3 du code du travail - https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=DED54A598193DDE1DF59E0AE16BDE87D.tplgfr21s_3?idArticle=LEGIARTI000033023861&cidTexte=LEGITEXT000006072050&dateTexte=20190131'` | | 1 | ` ` | | 1 | ` https://www.service-public.fr/particuliers/vosdroits/F986` | | 1 | ` https://www.service-public.fr/particuliers/vosdroits/F12242` | | 1 | ` https://www.service-public.fr/particuliers/actualites/A14726` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=circulaire_cnav_2014_028_09042014` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=circulaire_cnav_2013_29_18042013` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=circulaire_cnav_2012_35_17042012` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=CR_CN_2011030_14042011` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=CR_CN_2010043_23042010` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=CR_CN_2009031_16042009` | | 1 | ` https://www.legislation.cnav.fr/Pages/texte.aspx?Nom=CR_CN_2008045_12082008` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2021_14_01042021.pdf` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2020_20_03042020.pdf` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2019_15_05042019.pdf` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2018_10_05042018.pdf` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2017_13_04042017.pdf` | | 1 | ` https://www.legislation.cnav.fr/Documents/circulaire_cnav_2016_21_04042016.pdf` | | 1 | ` https://www.legifrance.gouv.fr/loda/id/LEGIARTI000039160751/2019-10-02` | | 1 | ` https://www.legifrance.gouv.fr/loda/id/LEGIARTI000030316244/2015-03-06` | | 1 | ` https://www.legifrance.gouv.fr/loda/id/LEGIARTI000006245493/2005-09-30` | | 1 | ` https://www.legifrance.gouv.fr/loda/id/JORFTEXT000041835204` | | 1 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378442` | | 1 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000037260758/2018-07-30` | | 1 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000006272709` | | 1 | ` https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041835196` | | 1 | ` https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000039207638` | | 1 | ` https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000041835215` | | 1 | ` https://www.legifrance.gouv.fr/jorf/article_jo/JORFARTI000039663227` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2021/5/20/2021-628/jo/article_3` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2020/12/16/MTRX2028779D/jo/texte` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2019/5/2/2019-400/jo/texte` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2019/5/16/MTRD1908040D/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2019/2/1/2019-66/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2019/12/18/MTRX1933646D/jo/texte` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2018/5/3/SSAA1805966D/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2018/5/3/SSAA1805962D/jo/texte` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2018/10/31/SSAA1822428D/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2018/10/31/SSAA1822428D/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2018/10/3/SSAA1822062D/jo/texte` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2017/5/4/AFSA1710709D/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2015/12/21/AFSA1521306D/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/decret/2013/6/26/ETSD1304539D/jo/texte/fr` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/12/14/SSAS2032692A/jo/article_5` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2020/12/14/SSAS2032692A/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/3/20/SSAS1908400A/jo/article_1` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/20/SSAS1934813A/jo/article_4` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2019/12/20/SSAS1934813A/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/21/SSAS1835267A/jo/article_4` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2018/12/21/SSAS1835267A/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/eli/arrete/2007/11/8/MLVU0759263A/jo/article_2` | | 1 | ` https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=?idArticle=LEGIARTI000006832026&cidTexte=LEGITEXT000006074213&dateTexte=20180725` | | 1 | ` https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=?idArticle=LEGIARTI000006832022&cidTexte=JORFTEXT000000838203&categorieLien=id&dateTexte=20010730` | | 1 | ` https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=166E72095FB02DDEDC8F8437A49B1301.tplgfr43s_1?cidTexte=JORFTEXT000036299559&idArticle=JORFARTI000036299573&dateTexte=20171229&categorieLien=cid#JORFARTI000036299573` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000026565447&dateTexte=20181118` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000034678220&categorieLien=id` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000032711723&categorieLien=id` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000030171179&categorieLien=id` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000029337211&categorieLien=id` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do;jsessionid=F0C7F140213C6E7F350E4D08F8ABCC7E.tplgfr21s_3?cidTexte=LEGITEXT000034780395&dateTexte=20170505&categorieLien=cid#LEGITEXT000034780395` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do;jsessionid=6266F81B53CA2E899FB2ED7741308B21.tplgfr43s_2?idSectionTA=LEGISCTA000006108548&cidTexte=JORFTEXT000000838203&dateTexte=20160122` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=FF934DF3E1CA8D754FF66512241B3F48.tpdjo17v_1?cidTexte=JORFTEXT000000776880&categorieLien=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=294A4B307D26FF213FE38A04660E9011.tpdjo12v_3?cidTexte=JORFTEXT000000399330&categorieLien=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=2058ACFBAB20C3272E650B02EDE7E528.tpdjo17v_1?cidTexte=LEGITEXT000017770723&dateTexte=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=2058ACFBAB20C3272E650B02EDE7E528.tpdjo17v_1?cidTexte=LEGITEXT000006053088&dateTexte=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=2058ACFBAB20C3272E650B02EDE7E528.tpdjo17v_1?cidTexte=LEGITEXT000005945891&dateTexte=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=2058ACFBAB20C3272E650B02EDE7E528.tpdjo17v_1?cidTexte=JORFTEXT000000820419&categorieLien=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichTexte.do%3bjsessionid=2058ACFBAB20C3272E650B02EDE7E528.tpdjo17v_1?cidTexte=JORFTEXT000000611637&categorieLien=vig` | | 1 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000006754198` | | 1 | ` https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=481E3574E9A301CED3336AF168A5EF33.tplgfr44s_1?idArticle=LEGIARTI000035671411&cidTexte=LEGITEXT000006073189&categorieLien=id&dateTexte=` | | 1 | ` https://www.education.gouv.fr/bo/2006/15/MENS0600981C.htm` | | 1 | ` https://www.education.gouv.fr/bo/2003/18/MENS0300894C.htm` | | 1 | ` https://www.education.gouv.fr/bo/19/Hebdo26/ESRS1916927C.htm` | | 1 | ` https://www.bpifrance.fr/Toutes-nos-solutions/Garanties-et-assurances/Garanties-aux-banques/Garantie-des-prets-etudiants` | | 1 | ` https://solidarites-sante.gouv.fr/fichiers/bo/2020/20-02/ste_20200002_0000_0046.pdf` | | 1 | ` http://circulaires.legifrance.gouv.fr/pdf/2019/03/cir_44472.pdf` | | 1 | ` http://circulaires.legifrance.gouv.fr/pdf/2018/03/cir_43190.pdf` | | 1 | ` Ordonnance de Blois` | | 1 | ` Loi n°74-631` | | 1 | ` Décret n° 2018-836 - https://www.legifrance.gouv.fr/eli/decret/2018/10/3/SSAA1822062D/jo/texte` | | 1 | ` Décret du 20 septembre 1792 de la première république` | | 1 | ` 'Journal officiel, 6 décembre 1956, p. 11649, https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000000655884'` | | 1 | ` https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042541955` | | 1 | ` https://www.ancv.com/sites/default/files/20140905_depart_1825.pdf` | | 1 | ` https://programme-depart-1825.com` | | 1 | ` https://github.com/openfisca/openfisca-france/issues/1179` | Ces données ont été obtenues avec `grep --no-filename -R 'reference:' openfisca_france | sort | uniq -c | sort -r` et l'élimination des valeurs ne contenant que `reference: ` (ce qui arrive notamment lorsque les références sont fournies dans des nœuds enfants).

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.

MattiSG commented 3 years ago

Version 1B 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. 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.


- Nom : `reference` - Type : ```diff - texte libre, ou tableau de texte libre. + tableau associatif dont les clés sont des noms de textes légaux et les valeurs sont des URLs publiquement accessibles ou des chaînes vides. ``` - Objet : référence légale, identifier la loi de laquelle provient le paramètre. - Échelle de déclaration : Paramètre ou valeur de Paramètre. - Cas d'usage : - Vérifier la validité d'une formule en consultant son origine légale. - Afficher l'intitulé de la source légale dans l'explorateur de législation. - Exemples : ```diff - https://www.pole-emploi.fr/candidat/mes-droits-aux-aides-et-allocati/allocations-et-aides--les-repons/aides-financieres-aux-jeunes-dip.html + "Site Pôle Emploi": "https://www.pole-emploi.fr/candidat/mes-droits-aux-aides-et-allocati/allocations-et-aides--les-repons/aides-financieres-aux-jeunes-dip.html" ``` ```diff - reference: - - "Décret n°2020-519 du 5 mai 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/" - - "Décret n°2020-769 du 24 juin 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042032514" - - "Décret n°2020-1453 du 27 novembre 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042574431" - base: - values: - 2020-05-01: 150 - 2020-06-01: null - 2020-10-01: 150 + base: + values: + 2020-05-01: + value: 150 + reference: + Décret n°2020-519 du 5 mai 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/ + 2020-06-01: + value: null + reference: + Décret n°2020-769 du 24 juin 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042032514 + 2020-10-01: + value: 150 + reference: + Décret n°2020-1453 du 27 novembre 2020: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042574431 ```
Sasha-Laniece commented 3 years ago

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 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).


- Nom : `last_review` - Type : dictionnaire contenant une seule entrée, dont la clé est une `date` et la valeur est un dictionnaire contenant une clé `title` et une clé `href`. - Objet : Indique la dernière date vérifiée, à laquelle ce paramètre est à jour. - Échelle de déclaration : Paramètre - Cas d'usage : - Vérifier la validité d'une formule en consultant son origine légale. - Afficher l'intitulé de la source légale dans l'explorateur de législation. - Exemple : ```diff + last_review: + 2020-05-01: + title: Article 144 du CGI + reference: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000041849630/ ```
Sasha-Laniece commented 3 years ago

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 :

  1. La grande majorité des références pointe vers https://www.ipp.eu/outils/baremes-ipp/, ce qui ne me semble pas vraiment exploitable.
  2. 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.
  3. Un certain nombre de références sont 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.

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

bfabre01 commented 3 years ago

Version 1C 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. 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.

```diff description: Abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation - 1ère part + reference: + I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 unit: currency values: 2017-01-01: value: 5461.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 2018-01-01: value: 5516.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 2019-01-01: value: 5604.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 2020-01-01: value: null - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 ```
bfabre01 commented 3 years ago

Version 1D 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. 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.


Drop` premiere_part.yaml` ```diff - description: Abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation - 1ère part - unit: currency - values: - 2017-01-01: - value: 5461.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2018-01-01: - value: 5516.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2019-01-01: - value: 5604.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2020-01-01: - value: null - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 ``` Drop` quatre_premieres_demi_parts_supp.yaml` ```diff - description: Majoration pour les quatre premières demi-parts supplémntaires de l'abattement du revenu fiscal de - référence pour le plafonnement de la taxe d'habitation - unit: currency - values: - 2017-01-01: - value: 1580.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2018-01-01: - value: 1596.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2019-01-01: - value: 1622.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2020-01-01: - value: null - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 ``` Drop` autres_demi_parts_supp.yaml` ```diff - description: Majoration pour les autres demi-parts supplémntaires de l'abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation - unit: currency - values: - 2017-01-01: - value: 2793.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2018-01-01: - value: 2821.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2019-01-01: - value: 2866.0 - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 - 2020-01-01: - value: null - reference: - I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 ``` Création d'un fichier yaml unique: ```diff +description: Abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation + reference: + I. de l'art. 1414 A du CGI: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037100266 + premiere_part: + description: Abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation - 1ère part + unit: currency + values: + 2017-01-01: + value: 5461.0 + 2018-01-01: + value: 5516.0 + 2019-01-01: + value: 5604.0 + 2020-01-01: + value: null +quatre_premieres_demi_parts_supp: + description: Majoration pour les quatre premières demi-parts supplémntaires de l'abattement du revenu fiscal de +référence pour le plafonnement de la taxe d'habitation + unit: currency + values: + 2017-01-01: + value: 1580.0 + 2018-01-01: + value: 1596.0 + 2019-01-01: + value: 1622.0 + 2020-01-01: + value: null +autres_demi_parts_supp: + description: Majoration pour les autres demi-parts supplémntaires de l'abattement du revenu fiscal de référence pour le plafonnement de la taxe d'habitation + unit: currency + values: + 2017-01-01: + value: 2793.0 + 2018-01-01: + value: 2821.0 + 2019-01-01: + value: 2866.0 + 2020-01-01: + value: null ```
bfabre01 commented 3 years ago

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 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).

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 ?

bfabre01 commented 3 years ago

@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.

bfabre01 commented 3 years ago

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.

MattiSG commented 3 years ago

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/

? 🙂

Sasha-Laniece commented 2 years ago

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

Sasha-Laniece commented 2 years ago

Version 1A d'une proposition pour last_value_still_valid_on (métadonnée de Paramètre)

_( ou Version 1C d'une proposition pour 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.


- Nom : `last_value_still_valid_on` - Type : dictionnaire contenant une seule entrée, dont la valeur est une `date`. - Objet : Indique la dernière date à laquelle on a vérifié que la dernière valeur du paramètre est celle qui est encore en cours. - Échelle de déclaration : Paramètre - Cas d'usage : - Indiquer qu’un paramètre est à jour, même si sa valeur n’a pas changée depuis X années. - Exemple : ```diff values : 1978-01-01 : value : 0.005 metadata: + last_value_still_valid_on: 2021-10-17 ```
MattiSG commented 2 years ago

Relevé de décision de la discussion synchrone du 23/11/2021 avec @bfabre01 @eraviart @Sasha-Laniece @sandcha @clallemand @pzuldp :

Je laisse d'autres personnes compléter si besoin 🙂

MattiSG commented 2 years ago

Point d'étape

À 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.

État des propositions

Consensus émergent

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 ? 🙂

Consensus sur une approche, spécificités à arbitrer

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 :

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 ? 🙂

Consensus limité

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.

Suite

Trois pistes ont été évoquées en discussion synchrone pour avancer sur la normalisation des métadonnées des paramètres :

  1. @bfabre01 : Finaliser la RFC telle quelle.
  2. @Sasha-Laniece : L'éclater en ouvrant une RFC sur les propositions sur lesquelles un consensus n'a pas encore été clairement obtenu. En l'état, cela donnerait last_value_still_valid_on, les niveaux de déclaration de reference, le maintien de documentation et le maintien de description_en.
  3. @eraviart : Laisser le champ libre à l'expérimentation et revenir sur ce sujet dans quelques mois, une fois l'« harmonisation » terminée.

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 :

  1. Retrouver les délais d'expiration prévus initialement, soit 14 jours à partir du moment où le jeu de propositions est stable (i.e. pas de nouvelle proposition). En l'état, cette RFC serait donc close le jeudi 2 décembre.
  2. D'ici-là, que chaque contributeurice mette à jour ses votes si la discussion synchrone l'a fait changer d'avis.
  3. De continuer la discussion sur 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.

Niveau d'obligation

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 :

  1. Changer les règles d'acceptation des PR ajoutant des paramètres (on n'accepte que les ajouts de paramètres qui ont ces métadonnées renseignées). Cette validation peut être faite automatiquement en CI.
  2. Pour des raisons techniques de mise en œuvre de la validation automatique, et afin d'améliorer progressivement la base, les PR qui modifient des paramètres doivent également renseigner toutes les métadonnées obligatoires.
  3. Toute PR ajoutant des métadonnées obligatoires sans autre changement fonctionnel sont bienvenues.

Cela devrait mener à une hausse progressive mais systématique du taux de remplissage de ces métadonnées.

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 ☺️

MattiSG commented 2 years ago

Version 2A d'une proposition pour 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%.

Cette valeur est obtenue par : ```sh curl 'https://api.fr.openfisca.org/latest/parameters' > parameters-fr.json node ``` ```js const params = Object.entries(require('./parameters-fr.json')).map(pair => pair[1]) params.filter(entry => entry.description).length / params.length ```
MattiSG commented 2 years ago

Version 2A d'une proposition pour 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%.

Cette valeur est obtenue par : ```sh grep --no-filename -R 'description_en' openfisca_france/parameters/ | wc -l # 410, nombre total = 2155 ```
MattiSG commented 2 years ago

Version 2A d'une proposition pour 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%.

Cette valeur est obtenue par : ```sh grep --no-filename -R 'ux_name' openfisca_france/parameters/ | wc -l # 444, nombre total = 2155 ```
Sasha-Laniece commented 2 years ago

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.

sandcha commented 2 years ago

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 :