Le fisc ouvrira le code source de son calculateur d’impôts le 1er avril

Le fisc ouvrira le code source de son calculateur d’impôts le 1er avril

Bercy meaucoup

Avatar de l'auteur
Xavier Berne

Publié dans

Droit

09/03/2016 4 minutes
63

Le fisc ouvrira le code source de son calculateur d’impôts le 1er avril

Le citoyen qui réclamait depuis près de deux ans que le fisc lui communique le code source de son logiciel de calcul de l’impôt sur les revenus a finalement obtenu gain de cause devant la justice. Le ministère des Finances a décidé de mettre en ligne ce fichier à compter du 1er avril.

Espérons qu’il ne s’agisse pas d’un poisson d’avril ! La mission Etalab, l’organisme gouvernemental en charge de l’ouverture des données publiques, a annoncé aujourd’hui que la Direction générale des finances publiques (DGFiP) allait – enfin – mettre à la disposition de tous le code source de son calculateur d’impôts : « Acte de transparence et de gouvernement ouvert, cette ouverture permettra d’expliciter les modalités de calcul des impôts, dans l’esprit de l’article 2 du projet de loi numérique. Elle est aussi un gage d’innovation car de nouveaux usages pourraient en découler, à l’image du micro-simulateur ouvert OpenFisca, que ce code enrichira. »

Ce que l’exécutif oublie de dire, c’est que la libération de ce fichier fait suite à un bras de fer d’un an et huit mois entre Bercy et un citoyen qui réclamait la communication de ce document administratif – sur la base de la loi « CADA » de 1978... L’intéressé a d’ailleurs raconté son parcours d’obstacles dans un récent billet (voir ici). Le dénouement fut heureux, puisque la DGFiP a décidé fin janvier de lui transmettre le fameux code source. Quelques jours plus tard, le 18 février, la justice administrative confirmait symboliquement que la décision implicite de rejet opposée jusqu’ici par le fisc était illégale. Le ministère des Finances et des comptes publics fut officiellement enjoint à communiquer « le code source en cause, dans sa version la plus récente », sous deux mois.

Un code source qui sera ouvert lors d’un hackathon #CodeImpot

La mission Etalab indique que « ce code source sera présenté dans sa version 2014 », c’est-à-dire celle « qui a permis de calculer le montant d’imposition de 37 millions de foyers fiscaux » (uniquement des personnes). « Développé par la DGFiP dans un langage dédié, le langage M », ce fichier sera en outre transformé en vue d’un hackathon « en arbre syntaxique abstrait qui sert de base à une compilation en langage Python ». Ces deux déclinaisons seront mises à la disposition du public lors de cet événement de deux jours, qui aura lieu le vendredi 1er et le samedi 2 avril à la fondation Mozilla (16 bis Boulevard Montmartre, à Paris).

Ce cas assez emblématique pourrait dorénavant faire tache d’huile, incitant d’autres citoyens à réclamer l’ouverture de code source de logiciels développés par l’administration. Ce mouvement devrait d’ailleurs être amplifié par le projet de loi numérique d’Axelle Lemaire. Suite aux débats à l’Assemblée nationale, le texte vient tout d’abord confirmer la jurisprudence de la Commission d’accès aux documents administratifs en gravant dans le marbre que les « codes sources » doivent être considérés comme des fichiers communicables par principe au citoyen, sur demande. Deuxièmement, les députés ont souhaité – contre l’avis du gouvernement – que les administrations soient tenues de mettre systématiquement en ligne « les règles définissant les principaux traitements algorithmiques » utilisés afin de prendre des décisions individuelles (prestations sociales, impôts, affectations...). Restera maintenant à voir si ces dispositions sont maintenues en l’état jusqu’à l’adoption définitive du projet de loi Lemaire.

Écrit par Xavier Berne

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Un code source qui sera ouvert lors d’un hackathon #CodeImpot

Fermer

Commentaires (63)


Ils ont le sens de l’humour, le 1er avril….


heuu ça sent la carpe d’avril ça&nbsp;<img data-src=" />




« Développé par la DGFiP dans un langage dédié, le langage M », ce fichier sera en outre transformé en vue d’un hackathon « en arbre syntaxique abstrait qui sert de base à une compilation en langage Python ».





Même dans le code on sent la lourdeur de l’administration française… pourquoi faire simple quand on peut faire compliquer.


On pourra faire un fork ?


pensais que c’était un langage créer pour l’occasion, mais non, c’est un langage fait pour de la modélisation en utilisant du texte :



The Microsoft code name “M” Modeling Language, hereinafter referred to as M, is a language for modeling domains using text. A domain is any collection of related concepts or objects. Modeling domain consists of selecting certain characteristics to include in the model and implicitly excluding others deemed irrelevant. Modeling using text has some advantages and disadvantages over modeling using other media such as diagrams or clay. A goal of the M language is to exploit these advantages and mitigate the disadvantages.



Comme quoi, on en apprends tous les jours


if \(revenu &gt;= 1 ; then

ir\_annuel = \)
salaire_mensuel ;

fi



<img data-src=" />



Ne me remerciez pas, je laisse le code sous GPL v2… <img data-src=" />


Est-ce qu’il y a un rapport avec le fait que cette année la feuille d’imposition (enfin, le pdf) sera immédiatement disponible après avoir remplis la déclaration, au lieu de plusieurs mois après ? Il est tentant de voir un lien de cause à effet.


le sous titre&nbsp;<img data-src=" />


D’un langage propriétaire, ils mettent à disposition leur code dans un format compilable via un langage standard.

<img data-src=" />


Ah ben en fait c’est pas propriétaire (merci @jaffalibre). Mais visiblement, pas très connu <img data-src=" />


+1

&nbsp;


Espérons qu’ils ne découvrent pas un bug majeur montrant des erreurs de calcul…








domFreedom a écrit :



if $revenu &gt;= 1 ; then



 ir\_annuel = $salaire\_mensuel ;     



fi



<img data-src=" />





Quand on est informaticien et célibataire, c’est vite : ir_annuel ~= 2 * $salaire_mensuel (net)







divide a écrit :



Est-ce qu’il y a un rapport avec le fait que cette année la feuille d’imposition (enfin, le pdf) sera immédiatement disponible après avoir remplis la déclaration, au lieu de plusieurs mois après ? Il est tentant de voir un lien de cause à effet.





Je ne vois pas le rapport.

Par ailleurs, j’ai toujours payé l’impôt correspondant au calcul du simulateur, aucune surprise de ce côté-là.









jaffalibre a écrit :



pensais que c’était un langage créer pour l’occasion, mais non, c’est un langage fait pour de la modélisation en utilisant du texte :



The Microsoft code name “M” Modeling Language, hereinafter referred to as M, is a language for modeling domains using text. A domain is any collection of related concepts or objects. Modeling domain consists of selecting certain characteristics to include in the model and implicitly excluding others deemed irrelevant. Modeling using text has some advantages and disadvantages over modeling using other media such as diagrams or clay. A goal of the M language is to exploit these advantages and mitigate the disadvantages.



Comme quoi, on en apprends tous les jours





Ok donc pour les modèles de données ils utiliseraient ce “M”, mais alors quelle langage est utilisé pour les algo ? L’interface ?







fwak a écrit :



D’un langage propriétaire, ils mettent à disposition leur code dans un format compilable via un langage standard.

<img data-src=" />





Oui il y a un truc qui m’échape. Ou alors c’est pour transformer les descriptions “M” en models.py Django ? <img data-src=" />



j’espere qu’il y aura un commentaire



//fonction dédiée pour Mr





//fonction pour entuber des gens qui savent pas regarder les détails





//personne ne comprends ce bout de code donc ne pas toucher (it’s magic)


pas besoin d’IHM, pense qu’il dois y avoir des sorties standard qui dois écrire dans un fichier texte qui sera reparser par une autre applis derriere qui remplira la fiche final (enfin je vois ca comme ca, les mec qui ont pondu les algo ne savent pas coder dans des langage objet et ils ont choisis cette option qui est la plus naturel pour eux car langage proche d’un algo fait par des mathématicien)



edit: l’algo en lui même est écrit en M apparament tu peux aussi faire des calculs


Franchement le sous-titre, fallait oser, mais ça passe! ^^ <img data-src=" />


Moi je dis bravo à ce citoyen tenace. Il a réussit.


#JeSuisCarbalas<img data-src=" />



<img data-src=" />


y’en a qui vont avoir un coup de stress dans les prochains jours <img data-src=" />


J’ai bossé dans un truc proche, en quelque sorte pour l’administration française. Et ils utilisaient Jrules, un moteur de règles. Donc on écrivait les règles en français, par dessus un modèle JAVA. En théorie, oui, ceux qui n’y connaissent rien en dev peuvent modifier les règles avec ce système et nous on devrait modifier uniquement le côté java et la surcouche de trad java/français. Mais en réalité ce n’était jamais le cas. Donc on faisait tout, on générait des “paquets de règles jrules” (ruleset si ma mémoire est bonne). Après t’as plus qu’à brancher ce ruleset à ton serveur, t’envoie tes paramètres en entrée et tu récupère les autre en sortie (enfin je simplifie).

Donc c’est très lourd pour faire des contrôles donnés (entre dev l’ihm, le côté serveur, les paquets de règles etc). Par contre, quand vous avez des règles très complexes, ça devient vraiment pratique. On peut créer les règles en graph/tableau/phrases etc, vraiment très lisible, même si il y a du turnover dans ceux qui doivent gérer la maintenance.


Le rapport que je vois, c’est la publication du code source -&gt; le citoyen peut contrôler directement comment est calculé son impôt à partir des chiffres qu’il déclare, et du coup autant publier directement l’avis d’imposition immédiatement après la déclaration, puisque le citoyen connait la formule, autant lui donner directement le résultat définitif. Auparavant on lui donnait une estimation de l’impôt à payer, qui n’avait pas de valeur autre qu’indicative, maintenant on lui donne directement l’impôt définitif sans changement possible par l’administration fiscale.


Ça peut leu couter cher cette année car si il y a des erreurs de calcule et il va surement y en avoir. Les règles sont particulièrement nombreuses et parfois compliqués et je ne connais pas un informaticien qui code sans Bug ;)

Si les erreurs sont à l’avantage de l’administration ils devront rembourser les gens en plus de passer pour des escrocs.&nbsp; Si les erreurs sont à l’avantage des gens, ils pourront surement rien faire cette année et passeront pour des cons. Mais au moins l’année prochaine çà rapportera de l’argent.

C’est juste un mauvais moment à passer et ça rend l’imposition beaucoup plus transparente.

&nbsp;

&nbsp;


cet argument n’était plus valable à partir des impots 2016 sur les revenus 2015, publication du code source ou pas :https://www.nextinpact.com/news/98953-impot-2016-avis-dimposition-immediatement-…



avec l’avis d’impot disponible tout de suite après la déclaration, le chiffre donné après la déclaration est forcément le chiffre définitif.


Je ne connais pas le soft, mais après recherche je pense que c’est plutôt ce langage là :&nbsphttps://en.wikipedia.org/wiki/MUMPS


oui, c’est vrai, c’est pas impossible que ça tourne au vinaigre pour le fisc, ce truc <img data-src=" />


Lois de finance 2026, autoriser la fusion de la branche #3255 avec la&nbsp; branche principale du moteur d’imposition.


Ben… c’est justement ce que je dis, la déclaration d ‘impot 2016 sur les revenus 2015 semble coïncider pile poil avec le moment ou l’etat publie le code source du calcul de l’impot. Les deux arrivent en avril 2015.



&nbsp;Les années précédentes le contribuable n’avait ni le code source, ni l’avis d’imposition définitif immédiatement après la déclaration. Du coup je ne vois pas trop ce que tu penses contredire :)


désolé, j’ai loupé ton commentaire précédent, et vu seulement celui auquel j’ai répondu en fait <img data-src=" />



et du coup, je n’avais pas percuté que tu avais déjà fait le lien <img data-src=" />


La prochaine étape est d’avoir accès aux données anonymisées. On pourra

alors voir dans quelles proportions les règles s’appliquent et combien

elle coutent ou rapportent. Le type de population impacté etc…

&nbsp;








Corendiel a écrit :



La prochaine étape est d’avoir accès aux données anonymisées. On pourra



alors voir dans quelles proportions les règles s'appliquent et combien       

elle coutent ou rapportent. Le type de population impacté etc...

&nbsp;







Tu as accès à la liste des personnes imposées par commune auprès des ddfp ;)









jaffalibre a écrit :



//personne ne comprends ce bout de code donc ne pas toucher (it’s magic)







Ca sent le vécu <img data-src=" /> <img data-src=" />



ddfip ;)



Tu as :

DG-Fip

DR-Fip

DD-Fip



:)

&nbsp;








OlivierJ a écrit :



Quand on est informaticien et célibataire, c’est vite : ir_annuel ~= 2 * \(salaire\_mensuel (net)



&nbsp;

Il faut être un peu marseillais, aussi... Ou alors il faudrait préciser ce que t'entends par "informaticien" et également donner la valeur de \)
salaire_mensuel(net), histoire que tout le monde comprenne bien de quoi on parle.



À partir du moment où tu rentres dans la tranche à 40%, ça grimpe vite, donc le x2 n’est pas déconnant !



Disons que si tu touches 50k€ brut, soit 40k net (3300€ mensuel), ça donne 36k après abbatement des 10%. Tu prends à la louche 9k à 30%, soit 2700€ rien que sur cette tranche. Sur les précédentes, tu as 2400€ d’impôt. Soit un total de 5100€, environ 1,5 fois le salaire mensuel net…


Pour relativiser :

Paliers au Québec

Salaire moyen

Donc pour 50K\( Brut : 37% d'impôts sur le revenu. Pas mal plus que x2 mois.

En plus, ce n'est pas progressif : quand on franchi un palier, c'est le total brut qui est imposé, pas la partie qui franchi le palier.

Exemple pour 50K\)


Calcul à la française : 28.525x42390 + 32.525x(45282-42391) + 37.118x(50000-45283)=\(14766.64

Calcul à la canadienne : 37.118x50000=\)
18559








jaffalibre a écrit :



//personne ne comprends ce bout de code donc ne pas toucher (it’s magic)







Je ne répondrais que…

0x59C00000



ça inclus les impots locaux + taxe d’habitation ?



D’autant plus que j’ai jamais vu du progressif dans les calculs français .. les palier j’ai l’impression que c’est un mythe en France


Oui c’est très certainement ce langage M là et pas celui de Microsoft comme proposé plus haut. Celui de Microsoft n’est jamais vraiment sorti et à été finalement transformé puis renommé en Power Query.



De plus, le MUMPS est d’après Wikipedia largement utilisé dans des applications financières.



Il manque des zéros ou autre chose dans tes calculs, sinon, je suppose que ta calculette bugge sévèrement.








Aloyse57 a écrit :



Pour relativiser :

Paliers au Québec

Salaire moyen

Donc pour 50K\( Brut : 37% d'impôts sur le revenu. Pas mal plus que x2 mois.

En plus, ce n'est pas progressif : quand on franchi un palier, c'est le total brut qui est imposé, pas la partie qui franchi le palier.

Exemple pour 50K\)


Calcul à la française : 28.525x42390 + 32.525x(45282-42391) + 37.118x(50000-45283)=\(14766.64

Calcul à la canadienne : 37.118x50000=\)
18559



&nbsp;



Heu…. dans ton document sur les paliers on parle bien de taux marginal par tranches !



&nbsp;Sinon on peut même comparer avec les USA : 40% (taux maximal fédéral) et dans certains états jusque 10% d’impôts locaux (hors impôts sur les possessions). Il peut aussi y avoir des impôts complémentaire dans certaines villes ou comtés. A savoir qu’on ne peut s’exonérer complètement de l’IR (contrairement à la France)&nbsp;il y a un taux minimal d’imposition.



perso. : j’y crois pas = fake !!! <img data-src=" /><img data-src=" /><img data-src=" />

&nbsp;


Ca sert plus à rien, Hollande a promis la retenue à la source.








YesWeekEnd a écrit :



&nbsp;

Il faut être un peu marseillais, aussi… Ou alors il faudrait préciser ce que t’entends par “informaticien” et également donner la valeur de \(salaire\_mensuel(net), histoire que tout le monde comprenne bien de quoi on parle.









McLovin a écrit :



À partir du moment où tu rentres dans la tranche à 40%, ça grimpe vite, donc le x2 n'est pas déconnant !



Disons que si tu touches 50k€ brut, soit 40k net (3300€ mensuel), ça donne 36k après abbatement des 10%. Tu prends à la louche 9k à 30%, soit 2700€ rien que sur cette tranche. Sur les précédentes, tu as 2400€ d'impôt. Soit un total de 5100€, environ 1,5 fois le salaire mensuel net...





L'imposition sur le revenu a changé au cours des 20 dernières années, et j'ai connu une époque où j'étais à près de 3000 E net par mois et où j'ai payé près de 6000 E d'impôt, c'était très proche des 2 mois nets. C'était un salaire dans la moyenne de la profession à l'époque, à Paris.







Aloyse57 a écrit :



Pour relativiser :

Paliers au Québec

Salaire moyen

Donc pour 50K\)
Brut : 37% d’impôts sur le revenu. Pas mal plus que x2 mois.&nbsp;





En France on paie un faible impôt sur le revenu, comparé aux voisins, mais les français sont focalisés dessus.

&nbsp;



Elwyns a écrit :



ça inclus les impots locaux + taxe d’habitation ?



D’autant plus que j’ai jamais vu du progressif dans les calculs français .. les palier j’ai l’impression que c’est un mythe en France





En tous cas en France il n’y a aucun effet de palier à partir du moment où on est imposable sur le revenu. Quand on change de tranche d’imposition on change de taux marginal mais le montant ne fait aucun bond (ça n’aurait aucun sens). C’est facile à vérifier.









defré a écrit :



Je ne connais pas le soft, mais après recherche je pense que c’est plutôt ce langage là :&#160https://en.wikipedia.org/wiki/MUMPS







UMPS ? C’est UMP + PS <img data-src=" />



Non ce n’est pas le langage M de modélisation de Microsoft, c’est bien un langage dédié.








spidermoon a écrit :



UMPS ? C’est UMP + PS <img data-src=" />





non MUMPS, tu dois ajouter le Modem aussi!



ah ? j’ai pas lu une seul ligne de code donc je sais pas. Aurais tu des précisions à apporter ?








OlivierJ a écrit :



L’imposition sur le revenu a changé au cours des 20 dernières années, et j’ai connu une époque où j’étais à près de 3000 E net par mois et où j’ai payé près de 6000 E d’impôt, c’était très proche des 2 mois nets. C’était un salaire dans la moyenne de la profession à l’époque, à Paris.





Vu de ma lorgnette, j’veux bien la même situation. Où qu’on signe ?









YesWeekEnd a écrit :



Vu de ma lorgnette, j’veux bien la même situation. Où qu’on signe ?





Tu peux commencer par chercher genre ici &nbsp;(sais pas si le lien va bien passer) :&nbsphttps://cadres.apec.fr/liste-offres-emploi-cadres/8_0____101833________offre-d-e…



Non, c’est juste l’IR (on paie au Provincial=National et au Fédéral=Européen)


Exemple pour 50K\(

Calcul à la française : 28.525%x42390 + 32.525%x(45282-42391) + 37.118%x(50000-45283)=\)
14766.64

Calcul à la canadienne : 37.118%x50000=$18559



<img data-src=" />


J’espère qu’ils ont pris le temps de corriger les éventuelles erreurs sinon il y aura un retour de baton monstrueux. Sinon dans l’absolu c’est une bonne chose.








OlivierJ a écrit :



En tous cas en France il n’y a aucun effet de palier à partir du moment où on est imposable sur le revenu. Quand on change de tranche d’imposition on change de taux marginal mais le montant ne fait aucun bond (ça n’aurait aucun sens). C’est facile à vérifier.





Le système de calcul français est plus juste AMHA, car il lisse l’imposition.

Au Canada, quand on franchit un palier juste d’un peu, on se retrouve avec moins d’argent NET que si on était resté à la limite inférieure. C’est pour ça qu’il faut toujours faire ses calculs avant d’accepter un bonus, une augmentation, accepter un 2nd emploi, etc…Ça peut faire mal.

Exemple :

\(84779 Brut x 37.118%= \)31468 d’IR

\(84782 Brut x 41.118%=\)34860 d’IR

Pour \(3 Brut en plus, tu perds 3392\) <img data-src=" />

C’est pour ça qu’il y a de savantes discussions entre employés et employeurs pour par exemple cumuler les augmentations de plusieurs années en une.



Ça paraît complètement absurde. Tu es vraiment certain de cet effet “palier” ?



Pour le calcul en France, cette page simple :&nbsphttp://www.leparticulier.fr/jcms/c_57196/impot-sur-le-revenu-formule-de-calcul



Le résultat est une ligne brisée&nbsp;mais continue,&nbsp;avec une pente plus marquée à chaque palier, les 2 formules autour de chaque&nbsp;palier donne la même valeur bien sûr (ici par exemple pour 26 791) :

&nbsp;

De 9 700 à 26 79114%(R x 0,14) - (1358 x N)De 26 791 à 71 82630%(R x 0,3) - (5644,56 x N)&nbsp;

Autre façon de calculer (moins immédiate) :http://www.impots.gouv.fr/portal/dgi/public/popup?espId=0&typePage=cpr02…


Je la refais pour le tableau (R=Revenu, N=Nombre de part) :







  • De 9 700 à 26 791 &nbsp;(tranche 14%) : (R x 0,14) - (1358 x N)

  • De 26 791 à 71 826 &nbsp;(tranche 30%) : (R x 0,3) - (5644,56 x N)



    &nbsp;








OlivierJ a écrit :



Je la refais pour le tableau (R=Revenu, N=Nombre de part) :







  • De 9 700 à 26 791  (tranche 14%) : (R x 0,14) - (1358 x N)

  • De 26 791 à 71 826  (tranche 30%) : (R x 0,3) - (5644,56 x N)





    si t’es a 26791 c’est compris dans quelle tranche ? <img data-src=" />









athlon64 a écrit :



si t’es a 26791 c’est compris dans quelle tranche ? <img data-src=" />





Ben le résultat est identique, c’est bien le principe…



<img data-src=" /> je paye pour le moment pas d’impot, donc je m’étonnais que ce soit inclus dans les deux (pas fait le calcul)


là…je comprends mieux ! <img data-src=" />


14% !


aaah merci ça change tout ! <img data-src=" />

En fait j’avais rien compris.








Jonathan Livingston a écrit :



On pourra faire un fork ?





Ben, ça dépend de la licence.