Les 1 et 2 avril se tenait dans les locaux parisiens de la fondation Mozilla le hackathon #CodeImpot, organisé par Etalab en partenariat avec la Direction générale des finances publiques. L’événement rassemblait des profils et des compétences variés autour de l’ouverture du code source du calculateur des impôts. Trois ministres sont venus saluer cette initiative et après deux longues journées de travail, neuf projets ont été présentés lors des restitutions ouvertes au public. Certains, très prometteurs, laissent imaginer des réalisations dans les prochains mois.
Une ouverture majeure et inédite saluée par le gouvernement
Le code source du calculateur des impôts, mis à disposition sur forum.openfisca.fr le vendredi 1er avril, est utilisé dans plusieurs applications de la Direction générale des finances publiques (DGFiP). Il s’agit du simulateur d’impôt, de la télé-déclaration et de la production des avis d’imposition de 37 millions de français. Développé dans un langage spécifique, le langage M, ce code source a été transformé par Etalab en arbre syntaxique puis compilé en Python.
C’est la première ouverture de code source d’une administration en France. Le Ministre des Finances et des Comptes publics accompagné du Secrétaire d’Etat chargé du Budget et de la Secrétaire d’Etat chargée du Numérique étaient présents en ouverture du hackathon pour célébrer cette innovation. Michel Sapin (discours) a mis en avant l’importance de l’impôt sur le revenu, principal instrument de réduction des inégalités et de redistribution, qui doit être rendu lisible pour tous. Christian Eckert (discours) a souligné les efforts de transparence de l’administration fiscale, qui met à disposition plus de 280 jeux de données sur data.gouv.fr. Axelle Lemaire (discours) quant à elle a inscrit la démarche de #CodeImpot dans la continuité de la transparence des algorithmes, défendue dans le projet de loi pour une République numérique qu’elle porte actuellement au Sénat. Les membres du gouvernement ont rappelé l’article 14 de la Déclaration des droits de l’homme et du citoyen « Tous les Citoyens ont le droit de constater, par eux-mêmes ou par leurs représentants, la nécessité de la contribution publique, de la consentir librement, d’en suivre l’emploi, et d’en déterminer la quotité, l’assiette, le recouvrement et la durée. »
Des participants aux objectifs variés venus collaborer autour du code
La mobilisation autour du hackathon a été très forte, avec plus de 150 inscrits, l’événement était complet plusieurs semaines à l’avance. Parmi les inscrits : des agents de l’Etat, dont une dizaine de la DGFiP venus partager leurs compétences et leur expertise unique ; des start-ups de la French Tech et des professionnels de l’informatique à la recherche de nouveaux usages innovants ; des chercheurs en économie et des fiscalistes venus enrichir leurs études et tester des nouveaux outils de simulation ; des membres de l’équipe d’OpenFisca et des citoyens mobilisés et désireux de mettre leur savoir-faire technique au service du bien commun.
Neufs projets présentés après deux jours de travail dont : des projets de pédagogie pour comprendre l’impôt…
Le projet « Code to code » a réfléchi aux moyens de faire le lien entre le texte de loi et le code source du calculateur. Avec pour objectif de rendre le code accessible aux citoyens et aux décideurs, l’équipe a imaginé un outil de traduction contributive du Code Général des Impôts au code source en M et inversement.
.
.
Le projet « Alignement des sources d’informations » a développé un outil pour sourcer les noms des variables utilisées dans le calcul des impôts. Le nom d’une variable dans le code source renvoie à son nom dans OpenFisca, dans la loi, dans le Bulletin Officiel des Finances Publiques, dans service-public.fr et dans Wikipedia. L’outil dispose d’un aspect collaboratif qui permet à tous d’enrichir la base de données.
.
…des projets autour d’OpenFisca
Le projet « Simulation d’un revenu de base » a cherché à évaluer l’impact économique de l’instauration d’un revenu de base financé par la contribution sociale généralisée. Ils ont ainsi cherché à reprendre des simulations effectuées dans le moteur ouvert de simulation du système socio-fiscal OpenFisca. Des simulations d’un revenu fixe par enfant -remplaçant les allocations familiales et les autres aides- avaient déjà été tentées lors de précédents hackathons.
.
Le projet « Yet Open Undecided Software Engineering Cocktail For Openfisca » a réfléchi à la mise au point d’outils et de pratiques pour faciliter la création d’extension et la maintenance du développement du code source d’OpenFisca. L’objectif à terme et de faciliter l’intégration d’OpenFisca à des outils opérationnels.
.
.
…des projets de services innovants
Le groupe « Comprendre mon impôt » a travaillé à renforcer la lisibilité de l’impôt sur le revenu pour les citoyens et à favoriser leur consentement à l’impôt. Leur solution est une interface proposant des visualisations simples, qui préfigure peut être une application grand public. Les utilisateurs peuvent par exemple observer qu’une augmentation de leur salaire n’induit pas une augmentation brutale de leur imposition, même en cas de changement de tranche fiscale.
.
.
Le groupe « Impôt.cible » a conçu un outil de crowdsourcing des déclarations permettant aux individus de comparer leur situation fiscale à celles d’autres citoyens aux situations équivalentes. Cet outil permettrait de démocratiser les bonnes pratiques fiscales en s’inspirant de celles de citoyens aux revenus proches.
.
.
Le groupe « Déclaration commune » a travaillé à distance à l’optimisation de la déclaration commune des foyers, dont le bénéfice varie selon la situation économique et le nombre d’enfants. Ce projet utilise l’API web développée par Etalab à partir du code source.
.
.
…des projets d’amélioration techniques
Le groupe « Performance », composé d’experts chevronnés en data sciences et en informatique, a utilisé des méthodes de calcul vectoriel pour optimiser la simulation de l’impôt en langage Python. Utilisant tous les moyens possibles pour accélérer le processus (optimisation du code, répartition du calcul sur plusieurs machines, etc.) l’équipe a réduit par 1 000 le temps de calcul d’une simulation, passant de 3 semaines en langage M, à 23 minutes en langage Python. Au dernier test avant les restitutions, la vitesse avait atteint 26 000 foyers calculés par seconde avec un potentiel d’amélioration encore très fort. La DGFiP réfléchit actuellement à l’intégration de ce projet dans ces pratiques.
.
Le groupe « Traduction en JavaScript » a compilé le code source du calculateur dans le langage de programmation JavaScript. Avec cette traduction, le calculateur impôt peut être utilisé sur n’importe quelle interface, web, mobile, appli, le tout sans connexion internet. Une démo a été mise en ligne pour permettre des expérimentations.
.
.
Un projet qui pourrait être répliqué ailleurs
L’ouverture de ce code source, première mondiale, a suscité beaucoup d’attentes. Grâce à la forte mobilisation de tous les participants, des agents de la DGFiP, dont l’expertise a été essentielle au bon déroulement de #CodeImpot, et des équipes d’Etalab et d’OpenFisca, des réalisations intéressantes ont pu en découler. Les prochains mois permettront de poursuivre certains de ces travaux avec la DGFiP. D’autres administrations pourraient s’en inspirer et engager des démarches similaires d’ouverture de codes sources et simulateurs.
Retrouvez les réactions sur #CodeImpot.
Le reportage de MesFinancesTV sur le hackathon
[:en]
On April 1 and 2, a hackathon organised by Etalab and the french tax administration (DGFiP) took place at the parisian headquarters of the Mozilla Foundation. Participants came from very different backgrounds and with various skills to work on the opening of France’s income tax software’s source code. Three minister praised this initiative and after two long days of work, nine projects were presented at the closing ceremony, open to the public. Some, very promising, already hint at achievements in the coming months.
A major opening praised by the government
The source code of the tax income software available at forum.openfisca.fr since April 1st, is used in many of the tax administration’s missions including tax simulation, electronic tax filling and production of tax assesment notices of 37 million Frenchmen. Developped in a specific language, the M language, it has been compiled into an abstract syntax tree and compiled in Python.
It’s the first time a French administration opens a source code. The finance minister, his budget minister and the digital affairs minister all attended the official launch to celebrate this innovation. Michel Sapin highlighted the importance of the income tax, the most important tool in wealth redistribution, that has to be understood by all. Christian Eckert lauded the tax administration’s transparency effort with more than 280 datasets available at data.gouv.fr. Axelle Lemaire emphazised how #CodeImpot fit the global narrative of algorithm transparency in her Digital Republic draft law currently examined in the Senate. They also referred to Article 14 of the 1789 Declaration of the Rights of Man and of the Citizen: « Each citizen has the right to ascertain, by himself or through his representatives, the need for a public tax, to consent to it freely, to know the uses to which it is put, and of determining the proportion, basis, collection, and duration. »
Participants with different goals collaborating on the code
With more than 150 participants, the hackathon was fully booked several weeks ahead. Among the people that showed up were a dozen of civil servants fom the tax administration with unique exertise and technical skills, start-ups affiliated with French Tech and IT professionnals looking for innovative services, economy researchers and tax experts looking to improve their reasearch using simulation models, members of the OpenFisca team and curious citizens interested in sharing their knowledge and skills.
After two days of work, nine projects were presented including : pedagogical projects…
The « Code to code »project looked at ways to link the tax code and the source code together. Their goal was to make it understandable to citizens and decision-makers, they imagined a crowdsourced translation tool to translate the tax code into the M code and vice versa.
.
.
The « Sources of information alignement » project came up with a tool to make different representations of the same notions in different sources correspond.. With each variable in the source code is associated a variable in OpenFisca, a legal description, a definition in the tax administration’s official ballot the Bulletin Officiel des Finances Publiques and in Wikipedia. The tool has a collaborative element, allowing anyone with relevant information to add data.
.
…projects using OpenFisca
The « Simulation of a base income» tried to evaluate the economic impact of a base income paid for by the general social contribution. They tried to use models existing in OpenFisca, the open source socio-economic simulator. For example, they used simulations of a base revenue for each child, replacing familly benefits.
.
.
The « Yet Open Undecided Software Engineering Cocktail For Openfisca » project reflected on tools and pratices needed to be put in place to facilitate new extensions and development maintenance. The long-term objectif is to integrate OpenFisca into operationnal decision-making tools.
.
.
…innovative services
The « Understand my income tax » group worked towards a more readable tax income for citizens, to encourage consent to tax. Their solution is a graphic interface with clear datavisualisations. This might hint at an app for the general public.
.
.
The « Impôt.cible » group designed a crowdsourcing app for tax fillig allowing individuals to compare their fiscal situation with neighboring citizens. This tool can democratize good fiscal practices and help get inspiration from people with similar income levels.
.
.
The « Joint Filing » group worked remotely to optimise joint tax filing. Its benefice varies depending on the number of children and each adult’s revenue. This project was developped using Etalab’s web API for the tax sotware source code. .
.
.
…technical improvements projects.
The « Performance » group composed of data scientists and IT experts used vectorized calculation methods to optimize the income tax simulation in Python language. Using all possible means to speed up the process (code optimisation, sharing the calculation between different computers, etc.) the team successfully reduced by 1 000 the the time needed to simulate all of France’s income tax, down from 3 weeks using the M language, to 23 minutes in Python. The last tests before the presentation reached a speed of 26,000 cases per second, with major improvements still possible. A very interesting project the tax administration will take into account and look to adapt to its existing tools.
.
The « JavaScript Translation » group compiled the calculator’s source code in JavaScript. With this translation, the calculator can be used on any interface, web, mobile, app, without internet access. A démo is now live to allow new tests.
.
.
An inspiring event that could lead to further developments
The tax administration’s workers were essential to this source code opening event, bringing technical expertise and knowledge of the field. The hackathon shed a new light on their daily work and allowed them to exchange with citizens and other experts. In the following months, the tax administration will examin the possible follow-ups to those projects. Furthermore, other administrations could engage in similar efforts.
[:]