Buchhaltung Mitarbeiteranteile

Teil 1: Restricted Stock Units

📅 2023-01-16 · 7 min

DISCLAIMER: Ich bin kein Buchhalter, kein Finanzberater, kein Steuerberater. Alles, was hier geschrieben steht, sollte als Denkanstoß betrachtet werden.

Einleitung

Ziel der Artikelserie: Eine möglichst anfängerfreundliche Einleitung zur Buchhaltung von Mitarbeiteranteilen an US-Firmen mit beancount. Mit Hilfe dieser Artikelserie und beancount schafft es jeder sich einen Überblick über seine Mitarbeiteranteile in weniger als zwei Stunden zu schaffen. Es gibt vier Teile:

Ein Grundverständnis für RSUs, ESPP und Stock Options schadet nicht, aber muss auch nicht vorhanden sein. Eine detaillierte Einleitung hierzu kann man auch in Sujeevan’s Blog lesen. Die Artikel beziehen sich auf die Situation in Deutschland. Es sollte aber gut übertragbar auf andere Länder sein.

Warum eigentlich?

Es gibt mehrere Gründe für eine korrekte Buchhaltung, für mich sticht heraus:

Auf das Warum folgt das “Wie”. Ursprünglich hatte ich hier eine lange Einleitung zur doppelten Buchführung und beancount geplant. Aber das Wirtschaftsinformatik-Studium hat mich damals im Buchhaltungskurs verloren und es soll ja niemanden hier genau so ergehen.

Daher: Einfach loslegen und Probleme lösen.

Restricted Stock Units (RSUs)

Restricted Stock Units (RSUs) sind eine Vergütungsmethode, bei der der Arbeitnehmer Firmenanteile bekommt. Sie sind quasi als Teil der kompletten Vergütung anzusehen und im Prinzip “Naturalien”, die man vom Arbeitgeber bekommt. Für den Arbeitgeber ist dies relativ günstig, da der “Markt” den Arbeitnehmer bezahlt.

Im Grunde gibt es bei RSUs drei Events von Bedeutung:

  1. Grant: Der Arbeitgeber verspricht dem Mitarbeiter über einen Zeitraum X, eine Anzahl von Firmenanteilen zu überschreiben
  2. Vesting: In gewissen Intervallen erhält der Mitarbeiter Anteile in sein Depot gebucht. Dieses Depot ist oft bei einem Broker/Bank, die vom Arbeitgeber ausgesucht wurde.
  3. Verkauf von Anteilen. Dies geschieht teilweise automatisch um zum Beispiel anfallende Steuern zu begleichen oder halt manuell, wenn man Gewinne realisieren möchte.

Beispiel: Der Mitarbeiter erhält einen Grant RSU-4241 über 4800 ECORP Anteile des Arbeitgeber “E Corp”. Über 4 Jahre “vesten” alle drei Monate 300 ECORP Anteile.

Grant

Der Grant ist einfach in beancount zu modellieren:

; Need to open an account before use
2022-02-01 open Assets:US:ECORP:RSU-4241

2022-02-01 * "RSU Grant RSU-4241"
  Assets:US:ECORP:RSU-4241    4800 ECORP.UNVEST { 0 USD }

Im Beispiel gibt es eine Transaktion mit nur einem Konto (in beancount “Account” genannt). Die 4800 ECORP.UNVEST Anteile werden zu je 0 USD gebucht, denn solange die Anteile nicht im Depot sind, haben sie ja keinen Wert und sind “Fantasie”.

Dieses Assets Konto wird nur genutzt um einen Überblick über die Anteile zu halten, die noch nicht “gevestet” sind. Es ist also optional und wer weniger in beancount aufschreiben möchte, kann dies auslassen..

Randnotiz: Was ist ein Konto in beancount?

In beancount nutzt man viele Konten. Sehr viele. Es gibt vier Haupttypen:

Alle Kontennamen fangen mit einem dieser Typen an. Der Rest des Kontonamen ist gleichzeitig eine Hierarchie (durch : getrennt). Assets:DE:Postbank:Giro ist zum Beispiel ein Girokonto bei der Postbank in Deutschland. Die Hierarchie erlaubt es beancount in Berichten Dinge aufzusummieren, sodass ich trotz detailliertem Tracking von Ausgaben Expenses:Groceries:Beer und Expenses:Groceries:Tomatoes trotzdem den Gesamtüberblick über alle Ausgaben für Lebensmittel bewahre.

Mehr Details: beancount Dokumentation: The Double-Entry Counting Method

Vesting

Etwas Zeit ist vergangen und es werden Anteile in das Depot gebucht. In unserem Beispiel ist dieses bei “MyBroker”, in Realität ist es sicher Schwab oder E*Trade. An der Transaktion sind deutlich mehr Konten beteiligt:

2022-03-15 * "RSU Vesting March"
  Assets:US:ECORP:RSU-4241                 -300 ECORP.UNVEST { }
  Assets:US:MyBroker:ECORP                  300 ECORP { 52.50 USD }
    lot: "RSU-4241"
  Income:US:ECORP:PecAdvantage:RSU       -15750 USD
  Assets:US:ECORP:RSU:TaxWithholding    8032.50 USD
  Liabilities:US:MyBroker:TaxAndStuff  -8032.50 USD

Vom Grant-Konto Assets:US:ECORP:RSU-4241, werden 300 ECORP.UNVEST gebucht. Wenn man den Grant nicht modelliert hat, einfach die Zeile weglassen.

Auf das Konto beim Broker werden 300 ECORP zu je 52.50 USD gebucht. Das war der Aktien-Kurs von ECORP an diesem Tag. Unser Broker erlaubt uns aus verschiedenen “Chargen” (Lots) zu verkaufen. Um später nachzuvollziehen welche Shares wir im Broker wie verkauft haben, gibt es hier den lot: Metadaten-Eintrag.

Diese Anteile haben einen Gegenwert 15750 USD. Dieser Gegenwert wird auf ein “Einkommenskonto” gebucht. In Deutschland ist dieser Gegenwert ein geldwerter Vorteil (Pecuniary Advantage) und wird üblicherweise während der Gehaltsauszahlung in einem Folgemonat abgerechnet.

Um die Kosten (Steuern, Krankenkasse, etc.) für den geldwerten Vorteil zu begleichen, hat der Arbeitgeber den Broker beauftragt Geld einzubehalten. Hier sind es 51% des geldwerten Vorteils (im Beispiel 8032.50 USD), die an den Arbeitgeber weitergegeben wurden. Exakt diese Summe schulden wir nun dem Broker 😱.

Es ist eine ganze Menge passiert, aber am Ende sind auf dem Depot 300 ECORP Anteile zu einem Preis von je 52.50 USD gebucht. Man hätte sie genauso gut auch kaufen können, aber ohne eigenes Kapital aufzuwenden sind sie nun im Besitz des Arbeitnehmers.

Verkauf

Netterweise haben sich der Arbeitgeber und Broker darauf verständigt, ein “sell-to-cover” vorzunehmen um die entstandenen Schulden zu begleichen. Dies ist ein Verkauf!

2022-03-16 * "RSU sell-to-cover"
  Assets:US:MyBroker:ECORP                -147 ECORP { } @ 55 USD
    lot: "RSU-4241"
  Expenses:Financial:Fees                 0.10 USD ;; SEC Fee
  Liabilities:US:MyBroker:TaxAndStuff  8032.50 USD
  Assets:US:MyBroker:Cash                52.40 USD
  Income:US:MyBroker:ProfitsAndLosses  ;; calculated automatically

2022-03-17 balance Liabilities:US:MyBroker:TaxAndStuff         0 USD
2022-03-17 balance Assets:US:MyBroker:Cash                 52.40 USD
2022-03-17 balance Income:US:MyBroker:ProfitsAndLosses   -367.50 USD

Es wurden 147 ECORP zu je 55.00 USD verkauft. Insgesamt werden also 8085 USD eingenommen. Davon sind 0.10 USD als Gebühr an die SEC gegangen.

Der Rest wurde benutzt um die Schulden zu begleichen. Die Einnahmen aus dem Verkauf waren leicht höher als die Schulden, die verbleibenden 52.40 USD wurden auf das Cash Konto gebucht und könnten ausgezahlt werden.

Ursprünglich wurden die Anteile zu je 52.50 USD ins Depot gebucht. Somit ergibt sich ein Gewinn von 2.50 USD pro Anteil, insgesamt 367.50 USD.

Am Ende des beancount Beispiels wurden einige Kontostand-Einträge (balance) vorgenommen. Diese helfen um sicherzugehen, dass wir keine Fehler gemacht haben.

Randnotiz: Konten und Lots - Wie FIFO modellieren?

Unter der Annahme, dass man Mitarbeiteranteile aus verschiedenen Quellen erhält, zum Beispiel durch mehrere Grants, stehen wir vor einem Problem: Wie modelliert man dies in beancount?

Die naheliegende Idee wären ja ein Konto für jeden Grant:

;; Account for RSU grant
2022-02-01 open Assets:US:MyBroker:ECORP:RSU-4241
;; Account for ESPP
2022-02-01 open Assets:US:MyBroker:ECORP:ESPP

Nach deutschem Steuerrecht jedoch werden alle Aktien in einem Depot gleichbehandelt. Wenn man mit mehreren Konten modelliert, kann man die verschiedenen Chargen (Fachsprech “lots”) nicht aggregieren. Es macht keinen Unterschied, ob der US-Broker es vielleicht ermöglicht auszuwählen, was wir verkaufen. Für das Finanzamt ist das FIFO-Prinzip entscheidet. Die Aktien, die wir zuerst erwerben, werden zuerst veräußert.

Eine zweite Idee wäre nur einen Account zu nutzen und die Transaktionen zu taggen:

2022-03-15 * "RSU Vesting March" #RSU-4241
  Assets:US:MyBroker:ECORP       300 ECORP { 52.50 USD }
  Income:US:ECORP:PecAdv:RSU  -15750 USD

Das hat leider den Nachteil, dass eine einzelne Transaktion mehrere Positionen aus verschiedenen Quellen haben könnte. Zum Beispiel ein Verkauf von Anteilen aus RSU- und ESPP-Lots (wenn der Broker es erlaubt).

Die hier im Artikel nutzt beancounts flexibles Metadatensystem, welches arbiträre key: value Einträge erlaubt:

2022-09-15 * "Sale of a few shares"
  Assets:US:MyBroker:ECORP        -10 ECORP { } @ 50 USD
    lot: "RSU-4241"
  Assets:US:MyBroker:ECORP        -20 ECORP { } @ 50 USD
    lot: "ESPP"
  Income:US:MyBroker:Profits       ;; calculated

Dies erlaubt es uns alle Transaktionen auf ein Depot zu buchen. Die Metadaten können wir dann in Berichten nutzen, um zu überprüfen, ob unser Kassenbuch mit den Berichten des Brokers übereinstimmt. Mehr dazu dann in [Teil 4][part4] der Serie.

All dies zeigt die Flexibilität des Systems und dass man es gegebenenfalls auf andere länderspezifische Situationen anpassen kann.

Zusammenfassung

In diesem Artikel wurde möglichst kurz beschrieben, wie man Grant, Vesting und Kauf modelliert von Restricted Stock Units modelliert. Ich nehme gern Feedback zum Thema entgegen. Ansonsten gern mit Teil 2 weitermachen.