1 points par GN⁺ 2024-01-04 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-01-04
Avis Hacker News
  • Il est regrettable que le gouvernement ne fournisse pas les formules publiques sous forme de code.

    Utiliser le formulaire web fourni sur le site de l’Agence du revenu du Canada (ARC) est la seule méthode fiable, et faire le calcul à la main est très fastidieux et sujet aux erreurs.

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

    À chaque changement de règles, nous utilisions une approche de « brute force » consistant à calculer la paie avec un scraper puis à afficher les résultats avec rspec pour vérifier la conformité.

  • La complexité du droit fiscal suit un cycle du type :

    1. Une loi fiscale est adoptée.
    2. Des comptables et avocats fiscalistes compétents trouvent des moyens d’éviter légalement l’impôt.
    3. L’administration fiscale publie des règles pour colmater les failles.
    4. L’exécutif change, baisse certains impôts et ajoute des avantages fiscaux pour gagner des voix ou ajuster l’économie.
    5. Le nouvel exécutif revient sélectivement sur les programmes de l’exécutif précédent pour des raisons politiques.
    6. Dans le cas de la fiscalité internationale, s’ajoutent des fiscalistes chevronnés qui utilisent des stratégies complexes pour réduire l’impôt dans plusieurs juridictions, des gouvernements qui ajoutent des incitations dans leur droit fiscal pour attirer les multinationales, les tentatives de l’OCDE de standardiser les questions fiscales pour empêcher cela, ainsi que les conventions fiscales entre pays.
  • J’ai déjà créé quelque chose de similaire pour l’IRS il y a quelques années.

    J’ai eu l’occasion de développer un outil similaire pour l’IRS américain il y a quelques années.

  • C’est un graphique qui montre pourquoi les prestataires de paie existent.

    Référence à un billet de Bits About Money lié à ce graphique, qui explique le besoin de prestataires de paie.

  • Bravo à l’auteur d’affirmer que l’ARC devrait publier une implémentation de référence de toutes les formules.

    J’adhère à l’idée que l’ARC devrait publier une implémentation de référence de toutes les formules afin que les petites entreprises puissent en bénéficier.

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

    Explication qu’en France, les règles fiscales sont disponibles via un site web, une API, un package NPM et le 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.

    Il s’agit de règles applicables à la majorité de la population canadienne, à l’exception des résidents du Québec, de la Nouvelle-Écosse, du Yukon et de l’Ontario.

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

    Cet utilisateur explique que, vivant aux États-Unis, la complexité liée aux impôts est l’une des principales raisons pour lesquelles il n’emploie pas de salariés dans sa LLC.

  • Tout algorithme, logiciel ou non, finit par devenir un état confus auquel on ajoute de la complexité pour obtenir le résultat souhaité.

    Les algorithmes finissent par devenir des systèmes confus auxquels on ajoute de la complexité pour obtenir le résultat voulu, ce qui peut désorienter les personnes extérieures et, dans certains cas, entraîner des conséquences négatives.