Success stories Dyalog APL 
Vos impôts calculés en Dyalog APL !

 

    

Et oui, Dyalog APL est partout, notamment à la Direction Générale des Impôts, organisme en charge de concevoir et calculer notamment, l’impôt sur le revenu de chaque contribuable.

Dans le cas présent, il s’agit plus précisément d’évaluer l’impact au niveau national des évolutions législatives du calcul de l’impôt sur le revenu .

En effet, 32,5 millions de Français sont soumis à cet impôt, salariés, retraités, agriculteurs, professions libérales, rentiers, veuves ou veufs touchant la pension de leur conjoint décédé, etc …

L’équipe concernée par ce projet est donc celle qui est en charge d’évaluer les impacts des réformes fiscales et, au final, d’en chiffrer les avantages et les inconvénients en montant ou en effectifs concernés.

Le simulateur existant tournait sur site central et son code commençait à devenir difficile à faire évoluer.
C’est pourquoi la décision fût prise d’en écrire un autre, plus souple et plus ouvert, et en architecture client/serveur.

Le simulateur Orison est utilisé par des fonctionnaires spécialistes de la législation fiscale et doit être disponible en permanence pour tester les projets de mesures des ministres et législateurs (Sénat, Assemblée Nationale).

Les choix logiciels suivants furent donc effectués pour l’architecture du nouvel outil :

  • Oracle pour le stockage des données
  • Visual Basic pour les interfaces Homme/Machine
  • Impromptu de Cognos pour les restitutions
  • Dyalog APL pour le moteur de calcul

La réalisation du moteur de calcul fût confiée à la société Quantys, en raison de son expertise en APL Client/Serveur interfacé avec les SGBD.

 

Schéma global du simulateur Orison
       

 

Quelques chiffres :

Pour calculer l’impôt de chaque contribuable, on exécute :

  • environ 8 000 formules de calcul du type (formule simplifiée pour l’exemple) :
    nombre de parts = Déclarant + conjoint + (0,5 * Premier et deuxième enfant) + Nombre d’enfants à partir du troisième + autres personnes à charge
  • faisant intervenir environ 400 variables de départ, issues des déclarations d’impôts
  • générant environ 4 000 variables intermédiaires ou finales lors du calcul.

Le simulateur travaille à partir d’un échantillon de 500 000 déclarations représentatives des 32, 5 millions de foyers fiscaux français.

La majorité des écrans contenant les formules de calcul est structurée ainsi :

  • Base : Montant saisi, ou nom d’une variable
  • Taux ou coefficient à appliquer à la base
  • Plafond : Montant maximal admis pour le montant qui sera calculé
  • Plancher : Montant minimal admis pour le montant qui sera calculé
  • Formule de calcul du montant choisi
  • Nom de la variable qui portera le résultat du calcul

 

Dyalog APL a été retenu pour l'écriture du moteur de calcul en raison de ses atouts suivants :

  • Grande aptitude à manipuler les chaînes de caractères et à les transformer en code exécutable.
    Les utilisateurs saisissent leurs formules dans des écrans prédéfinis qui sont ensuite exécutées après avoir été transformées en code débogable par les informaticiens de la DGI.
    Par ailleurs, la saisie de formules APL est tellement simple que les utilisateurs ont demandé que soit prévue la possibilité de saisir des formules libres, c’est à dire non cadrées par des écrans assistés.
  • Possibilité de générer des variables à partir d’expressions contenues dans des chaînes de caractères. En effet, en APL, les variables ne sont pas déclarées.
  • APL est le langage roi en matière de calculs vectoriels et matriciels, ce qui est indispensable pour travailler sur plusieurs individus à la fois, sans s’encombrer de boucles qui, à part pour un informaticien, n’ont aucune signification.
    De ce fait, il a été possible de faire des calculs pour 10 000 individus à la fois, au lieu de le faire personne par personne.
  • La possibilité d’utiliser des booléens dans les formules de calcul a également contribué à les alléger fortement.
    Par exemple, le résultat d’un booléen étant 0 ou 1, il a été possible d’écrire des expressions comme celle-ci (formule complètement fantaisiste fiscalement parlant mais qui illustre bien la simplification du code et de l’algorithmie) :
    réduction totale = réduction totale + ((age >= 75 ans) x réduction anciens)
    Pour ceux qui ne remplissent pas la condition, on ajoute donc 0 x réduction anciens, et pour les autres on ajoute 1 x réduction anciens.
    Simple non ?

L’exécution des simulations est répartie sur des serveurs de traitement quadriprocesseurs à base de Pentium III 650.

Les calculs sont effectués par blocs de 10 000 individus sur 2 à 4 processeurs simultanés (le nombre de processeurs alloués à un même calcul dépendant de leur disponibilité).

Pour calculer l’impôt de 500 000 foyers, il ne faut que 8 minutes en répartissant les calculs sur 3 processeurs !

Une fois les hypothèse entrées, tous les tableaux de bord sont disponibles au bout d’environ un quart d’heure (temps d’édition compris).

Un composant APL accessible via DCOM a également été mis à la disposition de l’interface VB.
Il est situé sur un des serveurs de traitement.
Son rôle principal est le contrôle syntaxique et sémantique des formules saisies par les utilisateurs dans les écrans VB.


L'équipe DGI en charge du nouveau simulateur et de ses évolutions.

Bref, à l’issue de ce projet on a des utilisateurs heureux d’avoir un produit qui marche vite et bien, et des informaticiens soulagés de ne pas être aux commandes d’une usine à gaz.