Complexité du calcul des retenues sur salaire au Canada
- L’Agence du revenu du Canada (ARC) publie régulièrement le document « Payroll Deductions Formulas ». Ce document contient toutes les formules de calcul du Régime de pensions du Canada, de l’assurance-emploi et de l’impôt sur le revenu collectés par l’ARC.
- Colin Percival, qui exploite une petite entreprise au Canada sans faire appel à un prestataire externe de services de paie, a implémenté lui-même ces formules dans un tableur.
- Comme pour la plupart des aspects du système fiscal, la complexité augmente, et cette année le Régime de pensions du Canada comprend non seulement une cotisation « de base » et une cotisation « supplémentaire », mais aussi une « deuxième cotisation supplémentaire », ce qui l’a obligé à réécrire entièrement son tableur.
Création d’un graphe de dépendances
- Les auteurs du document ont négligé un détail essentiel pour le logiciel : une valeur doit être calculée avant de pouvoir être utilisée. Cela oblige à faire des allers-retours dans le document pour retrouver où se trouve chaque valeur à calculer.
- Pour y remédier, Colin Percival a dessiné un graphe de dépendances avec GraphViz. Le graphe comporte 79 nœuds, depuis des valeurs comme le « montant maximal annuel ouvrant droit à pension » (73 200 $) jusqu’au « total des retenues sur salaire ».
- Le graphique n’écrit pas les formules elles-mêmes ; il indique uniquement les autres valeurs dont dépend chaque formule, afin qu’il soit facile de voir ce qu’il faut calculer en premier.
Hypothèses simplificatrices
- Pour simplifier, Colin Percival suppose qu’il ne traite pas les employés rémunérés à la commission, les employés qui entrent dans le Régime de pensions du Canada ou en sortent, ni les personnes vivant au Québec, en Nouvelle-Écosse, au Yukon ou en Ontario, qui ont chacun leurs propres complexités fiscales.
Avis de GN⁺
- Cet article montre bien à quel point le calcul des retenues sur salaire au Canada est complexe. Il met particulièrement en lumière les défis auxquels sont confrontés les petits entrepreneurs et l’approche créative employée pour les résoudre.
- Construire un graphe de dépendances est un outil très utile pour comprendre et gérer des systèmes complexes, applicable non seulement à l’ingénierie logicielle mais aussi à la résolution de problèmes dans de nombreux autres domaines.
- L’article illustre les efforts d’un entrepreneur pour simplifier la complexité du calcul fiscal, et ces efforts peuvent aussi inspirer d’autres chefs d’entreprise.
1 commentaires
Avis Hacker News
Il est regrettable que le gouvernement ne fournisse pas les formules publiques sous forme de code.
D’après mon expérience à la tête d’une petite société de paie au Canada, à chaque mise à jour des règles, nous lancions un scraper sur le calculateur de l’ARC pour calculer la paie selon différentes régions et tranches salariales, puis nous exportions les résultats avec rspec afin de tester la conformité.
La complexité du droit fiscal suit un cycle du type :
J’ai déjà créé quelque chose de similaire pour l’IRS il y a quelques années.
C’est un graphique qui montre pourquoi les prestataires de paie existent.
Bravo à l’auteur d’affirmer que l’ARC devrait publier une implémentation de référence de toutes les formules.
En France, ces règles sont disponibles via un site web, une API, un package NPM et les règles brutes en langage publi.codes.
Cela s’applique à tout le monde sauf aux habitants du Québec, de la Nouvelle-Écosse, du Yukon et de l’Ontario, soit environ 75 % de la population canadienne.
Je vis aux États-Unis, et cette complexité est l’une des principales raisons pour lesquelles je n’embauche pas de salariés dans ma LLC.
Tout algorithme, logiciel ou non, finit par devenir un état confus auquel on ajoute de la complexité pour obtenir le résultat souhaité.