- Wer in Kanada Lohnabzüge selbst berechnen will, ohne einen externen Payroll-Service zu nutzen, muss die Formeln für CPP, EI und Einkommensteuer aus den Payroll Deductions Formulas der CRA implementieren
- 2024 kamen beim Canada Pension Plan neben den Grund- und Zusatzbeiträgen auch second additional premiums hinzu, sodass die bestehende Tabellenkalkulation von Grund auf neu erstellt werden musste
- Die CRA-Dokumentation verteilt die Stellen, an denen Werte berechnet und verwendet werden, über das gesamte Dokument; um herauszufinden, was zuerst berechnet werden muss, wurde daher ein GraphViz-Abhängigkeitsdiagramm erstellt
- Das Diagramm besteht aus 79 Knoten, die von Eingabewerten wie dem „Year's Annual Maximum Pensionable Earnings“ von 73.200 $ im Jahr 2024 bis zu „Total payroll deductions“ reichen
- Die Formeln selbst wurden ausgelassen; erfasst wurden nur die Abhängigkeiten zwischen den Werten. Provisionsmitarbeiter, Personen, die dem CPP beitreten oder daraus ausscheiden, sowie Einwohner von Quebec, Nova Scotia, Yukon und Ontario wurden aus dem Umfang ausgeschlossen
Die Komplexität bei der eigenen Berechnung von CRA-Lohnabzügen
- Die Canada Revenue Agency veröffentlicht regelmäßig das Dokument Payroll Deductions Formulas zur Berechnung von Lohnabzügen; aktuell liegt es bis zur 119. Ausgabe vor
- Dieses Dokument enthält die Formeln, die zur Berechnung der von der CRA eingezogenen Lohnabzüge nötig sind
- Canada Pension Plan
- Employment Insurance
- Income Tax
- Wer in Kanada ein kleines Unternehmen betreibt und keinen externen Payroll-Anbieter nutzen will, muss diese Formeln selbst in einer Tabellenkalkulation implementieren
- Wie andere Teile des Steuersystems wird auch die Berechnung von Lohnabzügen immer komplexer; 2024 wurden dem CPP second additional premiums hinzugefügt, sodass eine Überarbeitung der Tabellenkalkulation nötig wurde
Mit GraphViz geordnete Berechnungsreihenfolge
- In der CRA-Dokumentation ist nicht auf einen Blick nachvollziehbar, welche Werte zuerst berechnet werden müssen
- Benötigte Werte können vor oder nach ihrer Verwendung berechnet werden, sodass man ständig im Dokument hin- und herwechseln muss
- Um dies zu ordnen, wurde mit GraphViz ein Abhängigkeitsdiagramm erstellt
- Das Diagramm hat 79 Knoten; ein typischer Ablauf sieht wie folgt aus
- „Year's Annual Maximum Pensionable Earnings“: 73.200 $ für das Steuerjahr 2024
- Endknoten: „Total payroll deductions“
- Das Diagramm enthält nicht die Formeln selbst, sondern dokumentiert nur, von welchen anderen Werten ein jeweiliger Wert abhängt
- Zur Vereinfachung des Berechnungsumfangs wurden folgende Fälle ausgeschlossen
- Provisionsmitarbeiter
- Mitarbeiter, die dem Canada Pension Plan beitreten oder daraus ausscheiden
- Einwohner von Quebec, Nova Scotia, Yukon und Ontario
- Das Bild in voller Größe ist als payroll.png verfügbar; die Bildgröße beträgt 5627x2033
1 Kommentare
Hacker-News-Meinungen
Schade, dass die Regierung die öffentlichen Formeln nicht in Codeform bereitstellt.
Soweit ich weiß, ist die einzige verlässliche Methode, das Webformular der CRA zu verwenden: https://www.canada.ca/en/revenue-agency/services/e-services/...
Von Hand zu rechnen ist mühsam und fehleranfällig.
Zum Beispiel teilt TD Canada nicht jedes Mal mit, welcher Teil der Zahlung in die Tilgung geht. Ich glaube, ich habe es selbst korrekt berechnet, aber nach der Zahlung weicht der von der Bank angezeigte Saldo häufig um Dutzende Dollar ab.
Frustrierend ist auch, dass man in Kanada keine API nutzen kann, um Kontodetails und Kontoauszüge abzurufen.
Damit gäbe man der Regierung ein Mittel in die Hand, sie so komplex wie möglich zu machen. Steuern sollten so einfach sein, dass die zahlende Person sie vollständig verstehen kann.
Nur weil die Regierung daran scheitert, den Haushalt auszugleichen, ist es unfair, dass man für etwas Grundlegendes wie Lohnabzüge zwingend Software braucht.
Wenn Handberechnungen mühsam und fehleranfällig sind, ist eher das Problem, dass es kein Gesetz gibt, das die Regierung zwingt, sie auch von Hand machbar zu halten.
Dann würde schnell sichtbar, wie viele Gesetze einander widersprechen oder in sich inkonsistent sind.
Aus meiner begrenzten Erfahrung mit Steuerrecht sieht der Kreislauf der Steuerkomplexität ungefähr so aus:
Ein Steuergesetz wird verabschiedet, kluge Buchhalter und Steueranwälte finden legale Wege, die Steuerlast zu senken, und die Steuerbehörde erlässt Regeln, um diese Lücken zu schließen.
Wenn die Regierung wechselt, werden einige Steuern gesenkt oder Vergünstigungen hinzugefügt, um Stimmen zu gewinnen und die Wirtschaft zu steuern; die nächste Regierung dreht aus politischen Gründen ausgewählte Maßnahmen der Vorgängerregierung wieder zurück.
Bei internationaler Besteuerung kommen Steuersparmodelle über mehrere Jurisdiktionen hinweg, Anreize einzelner Länder zur Ansiedlung multinationaler Unternehmen, Standardisierungsversuche der OECD und bilaterale Steuerabkommen hinzu.
Beispiel: Double Irish With a Dutch Sandwich https://www.investopedia.com/terms/d/double-irish-with-a-dut...
In Kanada gibt es seit Langem den Steuerfreibetrag „personal amount“, aber statt zu sagen „die ersten $X Einkommen werden nicht besteuert“, wird er als nicht erstattungsfähige Steuergutschrift in Höhe von niedrigster Steuersatz × $X behandelt.
Dann wurde daraus „Erhöhen wir den personal amount, ohne eine Steuersenkung für das oberste 1 % der Einkommen zu schaffen“, und jetzt gibt es einen einkommensabhängigen personal amount.
Die „BC Tax Reduction“ in British Columbia ist ebenfalls so aufgebaut, dass sie Personen mit etwa $22k bis $36k Einkommen eine zusätzliche Steuergutschrift gewährt. Beides hätte man einfach über Steuerklassen umsetzen können, aber Wähler reagieren stärker auf einen Namen wie „Tax Reduction“ als auf eine neue Steuerklasse.
Ausnahmen wie Begünstigungen für Kapitalerträge, Immobilien, Unternehmen oder dreibeinige Feen, die in Überschwemmungsgebieten leben, müssten abgeschafft werden.
Dann kann der Markt menschliche Anstrengung auf die wertvollsten Tätigkeiten verteilen.
Die Produktivität, die für dieses Thema verschwendet wird, ist absurd. Millionen Menschen beschäftigen sich damit, komplexe Rätsel zu schaffen, zu lösen und zu manipulieren, ohne dass es Belege dafür gibt, dass diese Komplexität nützlich ist.
Solche Posten sind oft ausdrücklich dazu gedacht, genutzt zu werden, um Besteuerung zu vermeiden. Gruppen, Einzelpersonen und Organisationen lobbyieren bei der Regierung dafür, ihre Anliegen als Ausnahmen, Abzüge oder Steuergutschriften aufzunehmen.
Wenn Buchhalter oder Steueranwälte sie korrekt nutzen, ist das kein „legales Steuervermeiden“, sondern es waren von Anfang an keine Steuern geschuldet.
Wenn man das genaue Zahlen der nach dem Gesetz geschuldeten Steuer als „Steuervermeidung durch Schlupflöcher“ bezeichnen will, muss man voraussetzen, dass jedes Einkommen dem Staat gehört; diese Prämisse ist nicht akzeptabel.
Ich habe in Kanada ein kleines Lohnabrechnungsunternehmen betrieben und alles mit Rails gebaut.
Immer wenn sich die Regeln änderten, scrapte ich den CRA-Rechner, berechnete mehrere Provinzen und Gehaltsspannen und ließ die Ergebnisse mit
rspecausgeben.So konnte ich testen, ob die Regeln korrekt abgebildet waren und ob ich keine Regel vergessen oder einen Wert falsch eingegeben hatte.
Vor ein paar Jahren habe ich etwas Ähnliches für den IRS gebaut: https://nampas.github.io/tax-map/
Außerdem frage ich mich, ob alle Kanten unidirektional sind oder ob es auch bidirektionale Kanten gibt. Hoffentlich keine bidirektionalen.
Genau solche Diagramme sind der Grund, warum es Lohnabrechnungsanbieter gibt.
Siehe dazu den Beitrag in Bits About Money: https://www.bitsaboutmoney.com/archive/payroll-providers-pow...
Dann sollte die Regierung auch diesen Standard bereitstellen können.
Applaus an den Autor
An diesem Punkt sollte die CRA die Referenzimplementierung aller Formeln veröffentlichen, damit kleine Unternehmen sie nutzen können
Selbst wenn sie sie nicht veröffentlichen, wäre es gut, wenn sie sie zumindest intern erstellen würden. Wenn sie ihre eigenen Dokumente selbst lesen müssten, würden diese wahrscheinlich auch deutlich besser geschrieben
Sie könnten auch viele Einnahmen aus Bußgeldern verlieren
Während meiner Studienzeit war ich Wohnheimaufsicht und bekam „kostenlos“ Unterkunft und Verpflegung; als ich mit 20 zum ersten Mal kanadische Steuern erklärte, gab ich etwa 1.000 $ zu wenig an. Als US-Bürger war das meine erste kanadische Steuererklärung
Ein paar Jahre später kam eine Strafe von etwa 5.500 $, was für einen Studenten mit Teilzeitjob enorm viel war. Damals erfuhr ich, dass BC CRA-Strafen eins zu eins spiegeln kann
Rückblickend wäre es vielleicht besser gewesen, diesen Job gar nicht zu machen. Für den Rest meiner Zeit in Kanada engagierte ich einen CPA
Im Vergleich dazu wirkt die IRS geradezu warm und kuschelig. Zumindest sind die Strafen dort, wenn man einen Fehler macht, proportional zum zu wenig angegebenen Betrag. Solange man nicht superreich ist
Es scheint kein herunterladbares Sheet zu sein, aber immerhin gibt es etwas
In Frankreich werden solche Regeln als Website, API, NPM-Paket und als Rohregeln in der Sprache https://publi.codes bereitgestellt
https://mon-entreprise.urssaf.fr/développeur
[https://www.canada.ca/en/revenue-agency/services/e-services/...](<https://canada.ca/en/revenue-agency/…;)Oder auch eine Version für Québec
[https://www.revenuquebec.ca/en/online-services/tools/webras/](<https://www.revenuquebec.ca/en/online-services/tools/webras/>)Die Idee, solche Regeln als staatlich unterstützte maschinenlesbare Version bereitzustellen, ist wirklich hervorragend
Müssen Nutzer die Berechnungsergebnisse separat gegenprüfen, und ist das nur eine Komfortfunktion, aber kein maßgeblicher Standard?
“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=...
„Ausgenommen Einwohner von Québec, Nova Scotia, Yukon und Ontario“ – das sind faktisch 75 % Kanadas
Ich bin einfach in BC und wollte mich nicht auch noch darum kümmern
Québec ist ein völlig anderes Thema. Dort ist die Berechnung von Lohnabzügen deutlich komplizierter
Es gibt wirklich viele merkwürdige HR-Regeln und Anforderungen, die nur für QC gelten
Ich bin zwar in den USA, kann aber mit Sicherheit sagen, dass solche Dinge ungefähr die Hälfte der Gründe sind, warum ich in meiner LLC keine Mitarbeiter eingestellt habe.
Selbst wenn man jemanden einstellen möchte, stellt man faktisch gleich noch einen Buchhalter mit ein.
Einige Bundesstaaten sind wirklich mühsam. Zum Beispiel NJ, CA, NY und OH.
Wenn man sich in einem Bundesstaat registriert, kann das Unternehmen dort weiterhin wegen verschiedenster vom Staat angenommener Compliance-Verstöße verfolgt werden, selbst nachdem der Mitarbeiter zu einem anderen Arbeitgeber gewechselt ist.
Man kann zum Beispiel hohe Strafen bekommen, nur weil man nicht gemeldet hat, dass man in diesem Bundesstaat keine Mitarbeiter mehr hat.
Bundesstaaten, mit denen es angenehm war, waren ID, TN und TX.
Im Allgemeinen ist es aus solchen Gründen besser, nur Mitarbeiter aus dem eigenen Bundesstaat einzustellen. Wenn es nicht unbedingt nötig ist, würde ich niemanden einstellen.
Entwicklungskosten müssen über 5 Jahre abgeschrieben werden, was zu einer hohen Steuerrechnung führen kann. Das gilt für Angestellte genauso wie für Auftragnehmer.
Es wäre gut, wenn sie abgeschafft würde; falls nicht, ist das, um Senator Wyden zu zitieren, eine „stupid“ Regelung, von der niemand erwartet hatte, dass sie bestehen bleiben würde.
https://www.law.cornell.edu/uscode/text/26/174
Korrektur: Sie wird wohl nicht abgeschafft. Es kann aber ein Gesetz geben, das sie bis zu einem bestimmten Datum in der Zukunft außer Kraft setzt. Sobald etwas in den Büchern steht, ist es wegen der buchhalterischen Behandlung sehr schwierig, Steuerrecht wieder zu entfernen.
Viele kleine und mittlere Unternehmen, die ich kenne, nutzen zum Beispiel Gusto, weil es das Hinzufügen von Auftragnehmern oder Mitarbeitern einfach macht.
Ich will hier nicht speziell Werbung für Gusto machen; wenn man sucht, findet man viele Konkurrenzangebote. Kostenlos ist das nicht, aber als SaaS-Modell hat es den Vorteil, dass man mit Kosten pro Mitarbeiter startet und es mit dem Unternehmen mitwachsen kann.
Das gilt, wenn der Mitarbeiter ein Gehalt bezieht oder als unabhängiger Auftragnehmer arbeitet. In diesem Fall ist er allerdings nicht tatsächlich dein Mitarbeiter.
Eine Employer-of-Record-Agentur stellt die Einhaltung des lokalen Rechts sicher und berechnet die Gesamtkosten des Mitarbeiters plus eine Servicegebühr.
Es gibt unzählige Payroll-Services, die Berechnung und Überweisung für 30 bis 50 US-Dollar pro Mitarbeiter und Monat übernehmen. Für die normale Gehaltsabrechnung braucht man nicht zwingend einen Buchhalter.
Das zeigt, wie irgendein Algorithmus funktioniert, ganz unabhängig davon, ob es Software ist oder nicht.
Man beginnt mit etwas Wünschenswertem oder Notwendigem und fügt immer weiter Komplexität hinzu, bis man bei einem Durcheinander landet, das beliebige Ergebnisse erzeugt, Außenstehende in den Wahnsinn treibt und, wenn man es wie eine Beschwörung liest, sogar niedere Dämonen herbeirufen könnte.
Als Lösung denkt man natürlich an Refactoring. Das ist die Arbeit, die Politiker im Wahlkampf versprechen und Junior-Entwickler beim Anblick einer neuen Codebase fordern.
In der Praxis passiert das aber fast nie. Denn niemand kann klar unterscheiden, welche Funktionen und welche Komplexität unnötig sind und welche beabsichtigt waren.
Die zweite Lösung wäre, das Ganze sauber in einem formaleren Rahmen umzusetzen, etwa mit einer statisch typisierten Sprache oder einem Theorem Prover. Wenn das System selbst aber bereits widersprüchlich ist, scheitert auch dieser Versuch häufig.
Glücklicherweise kümmert sich niemand um die „seltsamen Edge Cases“, und man lässt alles so, bis jemand mit etwa einer Million Dollar abhaut.
Vor 10 bis 15 Jahren gab es einen Berg von Sonderabzügen aller Art, um Stimmen zu kaufen.
Heute ist die Steuererklärung trivial und fast automatisiert, wenn man keine selbständige Tätigkeit oder Auslandsinvestitionen hat und ein normaler Gehaltsempfänger ist.
Der Großteil der Komplexität in der obigen Grafik scheint daher zu kommen, dass Kanada ein stark föderaler Staat ist und die Provinzen jeweils entsprechende Befugnisse und Ausnahmen haben. Dazu kommen noch die bundesweite Arbeitslosenversicherung und das Rentensystem.