Die Komplexität der Berechnung kanadischer Lohnabzüge
- Die kanadische Steuerbehörde (CRA) veröffentlicht regelmäßig das Dokument „Payroll Deductions Formulas“. Dieses Dokument enthält alle Berechnungsformeln für den Canada Pension Plan, die Arbeitslosenversicherung und die Einkommensteuer, die von der CRA eingezogen werden.
- Colin Percival, der in Kanada ein kleines Unternehmen betreibt und keinen externen Gehaltsabrechnungsdienstleister nutzt, implementierte diese Formeln direkt in einer Tabellenkalkulation.
- Wie bei den meisten Aspekten des Steuersystems nimmt die Komplexität weiter zu, und in diesem Jahr umfasst der Canada Pension Plan nicht nur eine „Grund“-Prämie und eine „zusätzliche“ Prämie, sondern auch eine „zweite zusätzliche“ Prämie, sodass die Tabellenkalkulation von Grund auf neu geschrieben werden musste.
Erstellung eines Abhängigkeitsdiagramms
- Die Autoren des Dokuments haben ein wichtiges Detail der Software übersehen: Ein Wert muss berechnet werden, bevor er verwendet werden kann. Dadurch muss man beim Lesen des Dokuments ständig hin- und herblättern, um nachzuvollziehen, wo sich jeder zu berechnende Wert befindet.
- Um dabei zu helfen, erstellte Colin Percival mit GraphViz ein Abhängigkeitsdiagramm. Der Graph umfasst 79 Knoten, beginnend bei Werten wie dem „jährlichen maximalen rentenfähigen Einkommen“ ($73200) bis hin zu den „gesamten Lohnabzügen“.
- Das Diagramm enthält keine Formeln, sondern nur die anderen Werte, von denen jede Formel abhängt, damit man leicht erkennen kann, was zuerst berechnet werden muss.
Vereinfachende Annahmen
- Zur Vereinfachung nimmt Colin Percival an, dass keine provisionsbasiert bezahlten Angestellten, keine Beschäftigten, die in den Canada Pension Plan eintreten oder ihn verlassen, und keine Personen berücksichtigt werden, die in Quebec, Nova Scotia, Yukon oder Ontario leben, da dort jeweils eigene steuerliche Komplexitäten bestehen.
Meinung von GN⁺
- Dieser Beitrag zeigt gut, wie komplex die Berechnung kanadischer Lohnabzüge ist. Besonders hervorgehoben werden die Herausforderungen, mit denen kleine Unternehmer konfrontiert sind, sowie ein kreativer Ansatz zu deren Lösung.
- Das Erstellen eines Abhängigkeitsdiagramms ist ein sehr nützliches Werkzeug, um komplexe Systeme zu verstehen und zu verwalten, und kann nicht nur im Software Engineering, sondern auch in vielen anderen Bereichen zur Problemlösung eingesetzt werden.
- Der Beitrag zeigt die Bemühungen eines Unternehmers, die Komplexität von Steuerberechnungen zu vereinfachen, und diese Bemühungen können auch andere Unternehmer inspirieren.
1 Kommentare
Hacker-News-Kommentare
Es ist bedauerlich, dass die Regierung keine offenen Formeln in Codeform bereitstellt.
Aus meiner Erfahrung mit dem Betrieb eines kleinen kanadischen Payroll-Unternehmens habe ich bei jeder Aktualisierung der Regeln einen Scraper gegen den CRA-Rechner laufen lassen, um Löhne für verschiedene Regionen und Gehaltsspannen zu berechnen, und die Ausgabe mit rspec genutzt, um die Compliance zu testen.
Die Komplexität des Steuerrechts durchläuft den folgenden Kreislauf:
Ich habe vor einigen Jahren etwas Ähnliches für den IRS gebaut.
Das ist ein Diagramm, das zeigt, warum es Payroll-Anbieter gibt.
Applaus für den Autor dafür, dass er darauf hinweist, dass die CRA Referenzimplementierungen für alle Formeln veröffentlichen sollte.
In Frankreich werden diese Regeln als Website, API, NPM-Paket und als Rohregeln in der Sprache publi.codes bereitgestellt.
Gilt für alle außer für Einwohner von Québec, Nova Scotia, Yukon und Ontario, wo etwa 75 % der kanadischen Bevölkerung leben.
Ich lebe in den USA, aber diese Komplexität ist einer der Hauptgründe, warum ich in meiner LLC keine Mitarbeiter einstelle.
Jeder Algorithmus, ob Software oder nicht, wird in einen verwirrenden Zustand gebracht, in dem durch das Hinzufügen von Komplexität das gewünschte Ergebnis erzielt werden kann.