Graphique des dépendances de la paie au Canada
(daemonology.net)- Pour calculer soi-même les retenues sur salaire au Canada sans passer par un service de paie externe, il faut implémenter les formules du CPP, de l’EI et de l’impôt sur le revenu figurant dans les Payroll Deductions Formulas de la CRA
- En 2024, le Canada Pension Plan a ajouté non seulement des cotisations de base et supplémentaires, mais aussi des second additional premiums, ce qui a obligé à réécrire la feuille de calcul existante depuis zéro
- La documentation de la CRA disperse les endroits où les valeurs sont calculées et ceux où elles sont utilisées ; pour identifier les éléments à calculer en premier, un graphique de dépendances GraphViz a donc été créé
- Le graphique comprend 79 nœuds, partant de valeurs d’entrée comme le “Year's Annual Maximum Pensionable Earnings” de 2024, soit 73 200 $, jusqu’à “Total payroll deductions”
- Les formules elles-mêmes sont exclues : seules les dépendances entre les valeurs sont consignées ; les employés à commission, les personnes qui adhèrent au CPP ou s’en retirent, ainsi que les résidents du Québec, de Nouvelle-Écosse, du Yukon et de l’Ontario ont été exclus du périmètre
La complexité du calcul direct des retenues sur salaire de la CRA
- L’Agence du revenu du Canada publie régulièrement le document Payroll Deductions Formulas, destiné au calcul des retenues sur salaire, qui en est actuellement à sa 119e édition
- Ce document contient les formules nécessaires pour calculer les retenues sur salaire perçues par la CRA
- Canada Pension Plan
- Employment Insurance
- Income Tax
- Si l’on exploite une petite entreprise au Canada et que l’on veut éviter de recourir à un prestataire de paie externe, il faut implémenter soi-même ces formules dans une feuille de calcul
- Comme d’autres pans du système fiscal, le calcul des retenues sur salaire devient de plus en plus complexe ; en 2024, l’ajout des second additional premiums au CPP a rendu nécessaire la réécriture de la feuille de calcul
Ordre de calcul structuré avec GraphViz
- La documentation de la CRA ne permet pas de voir facilement, d’un coup d’œil, quelles valeurs doivent être calculées en premier
- Une valeur nécessaire peut être calculée avant ou après l’endroit où elle est utilisée, ce qui oblige à faire constamment des allers-retours dans le document
- Pour clarifier cela, un graphique de dépendances a été réalisé avec GraphViz
- Le graphique comporte 79 nœuds, avec le flux représentatif suivant
- “Year's Annual Maximum Pensionable Earnings” : 73 200 $ pour l’année d’imposition 2024
- Nœud final : “Total payroll deductions”
- Le graphique n’inclut pas les formules elles-mêmes ; il indique uniquement de quelles autres valeurs dépend chaque valeur
- Afin de simplifier le périmètre de calcul, les cas suivants sont exclus
- Employés à commission
- Employés qui adhèrent au Canada Pension Plan ou s’en retirent
- Résidents du Québec, de Nouvelle-Écosse, du Yukon et de l’Ontario
- L’image en taille complète est disponible sous payroll.png, avec une résolution de 5627x2033
1 commentaires
Commentaires Hacker News
C’est regrettable que le gouvernement ne fournisse pas la formule publique sous forme de code
À ma connaissance, la seule façon de le faire de manière fiable est d’utiliser le formulaire web fourni par la CRA : https://www.canada.ca/en/revenue-agency/services/e-services/...
Le calcul à la main est pénible et propice aux erreurs
Par exemple, TD Canada n’indique pas à chaque fois quelle part du remboursement va au principal. J’ai l’impression de bien faire le calcul moi-même, mais après paiement, le solde affiché par la banque diffère souvent de plusieurs dizaines de dollars
C’est aussi frustrant qu’au Canada on ne puisse même pas utiliser d’API pour récupérer le détail des comptes et les relevés
Ce serait lui donner un moyen de rendre les choses aussi complexes que possible. Les impôts devraient être assez simples pour que ceux qui les paient puissent les comprendre entièrement
Ce n’est pas parce que le gouvernement a échoué à équilibrer son budget qu’il devient normal qu’il faille absolument un logiciel pour comprendre quelque chose d’aussi élémentaire que les retenues sur salaire
Si le calcul à la main est pénible et source d’erreurs, le vrai problème est davantage l’absence de loi obligeant le gouvernement à rendre cela faisable à la main
On verrait alors très vite combien sont contradictoires ou incohérentes entre elles
Pour avoir un peu travaillé avec le droit fiscal, je dirais que le cycle de la complexité fiscale ressemble à peu près à ceci
Une loi fiscale est adoptée, puis des comptables et avocats fiscalistes brillants trouvent des moyens légaux de réduire l’impôt, et l’administration fiscale édicte des règles pour boucher ces failles
Quand le pouvoir change, certains impôts sont baissés ou de nouveaux allègements sont ajoutés pour gagner des voix et piloter l’économie, puis le gouvernement suivant annule sélectivement les politiques du précédent pour des raisons politiques
En fiscalité internationale, il faut encore ajouter les techniques d’optimisation entre juridictions, les incitations offertes par chaque pays pour attirer les multinationales, les tentatives de normalisation de l’OCDE et les conventions fiscales bilatérales
Exemple : Double Irish With a Dutch Sandwich https://www.investopedia.com/terms/d/double-irish-with-a-dut...
Au Canada, il existe depuis longtemps un crédit d’impôt appelé “personal amount”, mais au lieu de dire « les premiers $X de revenu ne sont pas imposés », on le traite comme un crédit d’impôt non remboursable égal au taux d’imposition minimal × $X
Puis c’est devenu « augmentons le personal amount sans réduire les impôts du 1 % le plus riche », et on a maintenant un personal amount variable selon le revenu
La “BC Tax Reduction” fonctionne aussi comme un crédit d’impôt supplémentaire pour les revenus d’environ $22k à $36k. Dans les deux cas, cela aurait simplement pu être implémenté via des tranches d’imposition, mais les électeurs réagissent davantage à un nom comme “Tax Reduction” qu’à une nouvelle tranche
Il faut supprimer les exceptions comme le traitement favorable des revenus d’investissement, de l’immobilier, des sociétés ou des fées à trois pattes vivant en zone inondable
Le marché pourrait alors allouer les efforts humains aux activités les plus utiles
La productivité gaspillée sur ce sujet est absurde. Des millions de personnes passent leur temps à créer, résoudre et manipuler des énigmes complexes sans aucune preuve que cette complexité soit bénéfique
Ces dispositifs sont souvent conçus précisément pour être utilisés afin d’éviter l’imposition. Des groupes, des individus et des organisations font du lobbying auprès du gouvernement pour faire inscrire les sujets qui les intéressent sous forme d’exceptions, de déductions ou de crédits d’impôt
Lorsqu’un comptable ou un avocat fiscaliste les utilise correctement, ce n’est pas « éviter légalement l’impôt », c’est simplement que cet impôt n’était pas dû dès le départ
Dire que payer exactement l’impôt owed par la loi revient à « éviter l’impôt grâce à une faille » suppose que tous les revenus appartiennent d’abord à l’État, et cette prémisse est inacceptable
J’ai dirigé une petite société de traitement de la paie au Canada, et tout était construit en Rails
À chaque changement de règles, on scrapait le calculateur de la CRA, on faisait des calculs pour plusieurs provinces et niveaux de salaire, puis on faisait sortir les résultats dans
rspecCela permettait de tester si les règles avaient été correctement implémentées, et si on n’avait oublié aucune règle ou mal saisi une valeur
J’ai fait quelque chose de similaire pour l’IRS il y a quelques années : https://nampas.github.io/tax-map/
Je me demande aussi si toutes les arêtes sont à sens unique, ou s’il y a aussi des arêtes bidirectionnelles. J’espère qu’il n’y en a pas
Ce diagramme illustre exactement pourquoi les prestataires de paie existent
Voir aussi l’article connexe de Bits About Money : https://www.bitsaboutmoney.com/archive/payroll-providers-pow...
Dans ce cas, le gouvernement devrait être en mesure de fournir cette norme lui-même
Applaudissements à l’auteur
À ce stade, la CRA devrait publier une implémentation de référence de toutes les formules pour que les petites entreprises puissent s’en servir
Même sans la publier, ce serait bien qu’ils en créent une en interne. S’ils devaient eux-mêmes lire leur propre documentation, il y aurait de fortes chances qu’elle soit aussi bien mieux rédigée
Ils risqueraient aussi de perdre une bonne partie de leurs revenus tirés des amendes
À l’université, j’étais surveillant de résidence et j’étais donc logé et nourri « gratuitement », mais lors de ma première déclaration d’impôts au Canada à 20 ans, j’ai sous-déclaré environ 1 000 $. C’était aussi ma première déclaration canadienne en tant que citoyen américain
Quelques années plus tard, je me suis retrouvé avec environ 5 500 $ d’amende, une somme énorme pour un étudiant qui travaillait à temps partiel. C’est là que j’ai appris que la Colombie-Britannique pouvait appliquer exactement la même pénalité que la CRA
Avec le recul, j’aurais peut-être mieux fait de ne pas prendre ce poste. Pendant le reste de mon séjour au Canada, j’ai engagé un CPA
À côté, l’IRS paraît presque chaleureux et rassurant. Au moins, quand on fait une erreur, l’amende est proportionnelle au montant sous-déclaré. Sauf si vous êtes ultra-riche, bien sûr
Ce n’est visiblement pas une feuille téléchargeable, mais c’est déjà ça
En France, ce type de règles est fourni sous forme de site web, d’API, de package NPM, et de règles brutes dans le langage https://publi.codes
https://mon-entreprise.urssaf.fr/développeur
[https://www.canada.ca/en/revenue-agency/services/e-services/...](<https://canada.ca/en/revenue-agency/…;)ou une version québécoise
[https://www.revenuquebec.ca/en/online-services/tools/webras/](<https://www.revenuquebec.ca/en/online-services/tools/webras/>)L’idée de fournir ce genre de règles dans une version lisible par machine soutenue par l’État est vraiment excellente
L’utilisateur doit-il vérifier le calcul séparément, et ce n’est qu’un service pratique plutôt qu’une référence faisant autorité ?
“Calculations are indicative. They are not a substitute for actual statements from Urssaf, the tax authorities or any other organization.”
[1] https://mycompanyinfrance.urssaf.fr/developer/iframe?module=...
« À l’exclusion des résidents du Québec, de la Nouvelle-Écosse, du Yukon et de l’Ontario », soit en pratique 75 % du Canada
C’est juste que je suis en Colombie-Britannique, donc je n’avais pas envie de m’en préoccuper davantage
Le Québec, en revanche, c’est une toute autre histoire. Là-bas, le calcul des retenues sur salaire est bien plus complexe
Il y a énormément de règles RH et d’exigences bizarres qui ne s’appliquent qu’au QC
Je suis aux États-Unis, mais je peux affirmer sans hésiter que ce genre de choses explique environ la moitié des raisons pour lesquelles je n’ai pas embauché de salariés dans ma LLC.
Même si on veut embaucher, on se retrouve en pratique à embaucher aussi un comptable.
Certains États sont vraiment pénibles. Par exemple le NJ, la CA, NY et l’OH.
Une fois enregistré dans un État, l’entreprise peut continuer à être poursuivie pour diverses non-conformités reconnues par cet État, même après que le salarié a quitté ce poste pour un autre.
Par exemple, on peut recevoir une grosse amende simplement pour ne pas avoir déclaré qu’on n’a plus de salarié dans cet État.
Les États avec lesquels il était agréable de traiter étaient l’ID, le TN et le TX.
En général, pour cette raison, il vaut mieux n’embaucher que des salariés dans son propre État. À moins d’en avoir absolument besoin, je ne le ferais pas.
Les coûts liés aux développeurs doivent être amortis sur 5 ans, ce qui peut entraîner une grosse facture fiscale. Cela vaut aussi bien pour les salariés que pour les prestataires.
Ce serait bien que cette disposition soit abrogée, mais à défaut, comme l’a dit le sénateur Wyden, c’est une règle “stupid” dont personne n’aurait imaginé qu’elle puisse exister.
https://www.law.cornell.edu/uscode/text/26/174
Modification : elle ne sera probablement pas abrogée. En revanche, on peut faire adopter une loi permettant de l’ignorer jusqu’à une certaine date future. Une fois que c’est inscrit dans les livres, il devient très difficile de supprimer la règle fiscale à cause du traitement comptable.
Par exemple, beaucoup de PME que je connais utilisent Gusto, parce que cela facilite l’ajout de prestataires ou de salariés.
Je ne cherche pas spécialement à faire la promotion de Gusto ; si vous cherchez, vous trouverez beaucoup de services concurrents. Ce n’est pas gratuit, mais l’avantage du modèle SaaS est qu’il peut démarrer avec un coût par salarié puis évoluer avec l’entreprise.
Cela ne vaut que pour les personnes payées sur salaire ou travaillant comme prestataires indépendants. Dans ce cas, ce ne sont toutefois pas de vrais salariés.
Les employeurs de référence garantissent la conformité au droit local et facturent des frais de service en plus du coût total du salarié.
Il existe d’innombrables sociétés de services de paie qui font le calcul et les versements pour 30 à 50 $ par mois et par salarié. Pour le traitement courant de la paie, un comptable n’est pas indispensable.
Cela montre comment fonctionne un algorithme, qu’il s’agisse ou non de logiciel.
On part de quelque chose de souhaitable ou de nécessaire, puis on continue à ajouter de la complexité jusqu’à arriver à un magma qui produit des résultats arbitraires, rend les personnes extérieures folles et, s’il est récité comme une incantation, pourrait même invoquer des démons subalternes.
La solution évidente qui vient à l’esprit, c’est le refactoring. C’est ce que promettent les politiciens en campagne, et ce que réclament les développeurs juniors quand ils découvrent une nouvelle base de code.
Mais en pratique, cela se fait rarement. Personne n’arrive à distinguer clairement quelles fonctionnalités et quelles complexités sont inutiles, et lesquelles sont intentionnelles.
Une deuxième solution consiste à réimplémenter proprement tout cela dans un cadre plus formel, comme un langage à typage statique ou un assistant de preuve. Mais si le système lui-même est déjà contradictoire, cette tentative échoue souvent elle aussi.
Heureusement, personne ne se soucie des « cas limites bizarres », et on laisse donc les choses en l’état jusqu’à ce que quelqu’un parte avec un million de dollars.
Il y a 10 à 15 ans, il existait une montagne de déductions spéciales de toutes sortes pour acheter des voix.
Aujourd’hui, si l’on n’est pas travailleur indépendant, qu’on n’a pas d’investissements à l’étranger et qu’on est un salarié ordinaire, la déclaration d’impôts est banale et presque automatisée.
L’essentiel de la complexité du graphique ci-dessus semble venir du fait que le Canada est une fédération forte, où les provinces disposent chacune de compétences et d’exceptions en la matière. À cela s’ajoutent encore l’assurance-emploi fédérale et le régime de retraite.