Pages:
Author

Topic: Bitcoin Buchhaltung fifo, lifo,... (scripte etc, work in progress) - page 7. (Read 28710 times)

legendary
Activity: 1470
Merit: 1007
Hey molecular

Danke für den Link zu deinem thread. Hier ist mein eigener, im dt. Spekulations-Forum... sind aber bisher noch keine Antworten gekommen :D

Um es gleich zu sagen: du bist mir um Längen vorraus. Um genau zu sein, ich vesteht tatsächlich weniger als die Hälfte von dem was du macht... hängt wahrscheinlich damit zusammen dass btc meine erste richtige Erfahrung mit börsenähnlichen Geschäften sind, und meine EkSt-Erklärung bisher immer recht schlicht ausfiel.

Wenn du erlaubst, ein, zwei Fragen:

Wenn ich es richtig verstanden habe sollen btc Spekulationsgewinne nach einem Jahr steuerfrei sein. Beinhaltet das den zwischenzeitigen Ver- und Rückkauf von btc, oder nicht?

Du beschreibst den Download der mtgox Datenbank. Das sind nur deine eigenen trades, richtig? In dem Fall sind die also nicht öffentlich zugänglich, sondern nur aus deinem eigenen Account zugänglich (ich bin selber nicht auf mtgox, sondern bitstamp, aber ich nehme mal an es ist im wesentlichen gleich). Vielleicht verstehe ich nicht wirklich wie das FA arbeitet, aber was für eine Aussagekraft hat so eine selbst zusammengestellte Tabelle für die? Sie können auf die von mir getätigten trades nicht zugreifen (weil sie meinen Account nicht haben), und die Tabelle die ich mit einreiche kann ohne weiteres von mir geändert werden.


Ich treffe Ende des Jahres meinen/den Steuerberater meiner Mutter, und frag ihn auch mal um Rat. Ich befürchte, der wird nur sehr begrenzt die btc Aspekte verstehen, aber vielleicht lassen sich ja einige Dinge aus dem Börsenhandel etc. anwenden.
donator
Activity: 2772
Merit: 1019
..ich glaube, auf dem Level betrittst du hier Neuland, vermutlich werden eher wenige Forenleser direkt ähnliches umsetzen.

lol. Ich hätte schon früher gepostet, musste aber erst meine Eltern anrufen und ihnen erzählen, daß ich ich Pionier in Sachen Buchhaltung und Steuerangelegenheiten bin. Ich glaube die lachen immer noch. Ich hab dann einfach aufgelegt.

Aber im ernst: das dürfte eigentlich kein Neuland sein (höchstens in Bezug auf Bitcoin). Leute die mit Aktien oder sonstwas handeln müssen das ja schliesslich auch irgendwie machen. Da wird's also wohl software geben. Da ich aber selber coden kann, mach ich's lieber selbst... da weiss man was man hat.

Um mal für den Laien bei Null anzufangen: Es geht darum, Gewinne aus Tradinggeschäften bei MtGox buchhaltärisch zu erfassen, um sie plausibel und nachweisbar in die Buchhaltung oder STeuererklärung einbinden zu können?

Genau. Ausserdem geht es darum, Werkzeuge zur verfügung zu haben, welche erlauben die Parameter dieser Erfassung möglichst optimal festzulegen.

Am Ende kommt im Prinzip nur pro Jahr eine Zahl raus (vielleicht sogar "0"), aber wenn die Jungs vom FA prüfen, dann will ich vorbereitet sein.

Es gab 2 wirklich unangenehme Situationen in meinem Leben: das eine mal war ich pleite und das andere mal hatte ich 'ne Anzeige wegen Steuerverkürzung. Es war sehr teuer, unangenehm und aufwendig das Problem wieder loszuwerden (es geht nicht von selber weg sondern wird durch Ignorieren nur schlimmer) und ich habe daraus gelernt.

Das ist jetzt auch nicht gerade schön diesen Kram hier zu machen und ich will auch eigentlich niemanden dazu bewegen selbiges zu tun, aber in meinem Fall hab ich entschieden, daß es halt sein muss. Es kann auch alles "gut gehen" wenn man einfach nix macht, aber die Eier hab ich nicht.

Um keine Zweifel aufkommen zu lassen: Ich bin nicht gerade ein Anhänger von Steuern, Staat und Bürokratie. Aber ihr wisst ja: Waffengewalt und Freiheitsentzug und so. Man will ja handlungsfähig bleiben und so muss ich wohl - bis auf weiteres (an dieser Stelle gibt's zu tun) - diesen Mist machen.

Sehr wertvolle Arbeit, dankeschön!

Danke! Ich drücke mich gerade davor weiterzumachen, aber ich kann versichern: es wird updates geben.
legendary
Activity: 2126
Merit: 1001
..ich glaube, auf dem Level betrittst du hier Neuland, vermutlich werden eher wenige Forenleser direkt ähnliches umsetzen.

Um mal für den Laien bei Null anzufangen: Es geht darum, Gewinne aus Tradinggeschäften bei MtGox buchhaltärisch zu erfassen, um sie plausibel und nachweisbar in die Buchhaltung oder STeuererklärung einbinden zu können?

Sehr wertvolle Arbeit, dankeschön!

Ente
donator
Activity: 2772
Merit: 1019
donator
Activity: 2772
Merit: 1019
Scripts sind outdated, ich hab neue, bessere. Wenn jemand ernsthaft interesse anmeldet, werde ich die Sachen hier updaten

Moin Jungs,

ich war mal wieder bei meinem Steuerberater... ich hatte ihm vorab die 2 Antworten von Koschyk zugesandt.

Hier in Kurzform was ich aus dem Gespräch mitgenommen hab:

  • Die Unsicherheit kotzt Ihn genauso an wie uns, wirkliche Klarheit gibt's in 5-10 Jahren wenn der Bundesfinanzhof (oberstes Finanzgericht?) was entscheidet
  • Er stimmt nicht mit Koschyk überein was die Umsatzbesteuerung gemineter coins angeht
  • Wir können also jetzt nur eins tun und eine Gewinnermittlung fahren, welche für uns "nicht nachteilig" erscheint, müssen aber damit rechnen, daß der ganze Käse evtl. neu aufgerollt wird sollte der BFH eine relevante Entscheidung fällen
  • Es gibt ein Urteil vom BFH welches besagt, daß Depots getrennt geführt werden dürfen. (Er sucht mir das Urteil noch raus). Inwiefern das auf Bitcoin passt bleibt meiner Ansicht nach zu beurteilen, mein Stuerberater ist sich aber sicher, daß das Urteil hier zur Anwendung gebracht werden darf (ich beschreibe weiter unten wie das geht mit getrennten Depots)

Nochmals zur Übersicht wie ich die Möglichkeiten der Verbuchhaltung sehe:

  • 1.) FIFO über alle Depots (auch persönlicher Geldbeutel) vereinigt
  • 2.) LIFO über alle Depots (auch persönlicher Geldbeutel) vereinigt
  • 3.) FIFO separat pro Depot
  • 4.) LIFO separat pro Depot

(FIFO heisst: First In First Out, LIFO: Last In First Out)

Getrennte Depots

Eine [F|L]IFO-Buchhaltung pro Depot getrennt abzufahren ist ja kein Problem. Jeder Exchange-Account kann als Depot betrachtet werden (es können nur Bitcoins verkauft werden, welche dort auch liegen). Zusätzlich kann man alle private Geldbeutel als 1 Depot führen (analog zu: "safe zuhause mit Aktien drin").

Bleibt die Frage was passiert beim Transfer von Bitcoins zwischen Depots: Grundsätzlich "klebt" an den coins natürlich das Kaufdatum und der Kaufpreis ("Topf"). Die Coins werden inklusive dieser infos transferiert. Wurden nun beispielsweise tatsächlich Bitcoins von mtGox Account in den privaten Geldbeutel transferiert, so ergibt sich natürlich die Frage: aus welchem Topf entnehme ich die coins aus dem mtGox Depot. Überraschende Antwort meines Steuerberaters: "Das können sie frei wählen".

Dies bedeutet also: Der Transfer zwischen Depots muss tatsächlich (nachweisbar) stattgefunden haben (Nachweis im Falle mtGox ist einfach: die Historie enthält ja "withdraw" und "deposit" events, die blockchain muss nicht bemüht werden, das FA kann gegebenenfalls die Daten von mtGox anfordern und alles prüfen). D.h: transfer zwischen Depots kann nicht "nachträglich" rein buchhalterisch gemacht werden. Was allerdings erst in der Buchhaltung festgelegt werden muss ist die Auswahl des Topfes und hier entsteht natürlich großes "Optimierungspotential" (wg. Unterschiedlichen Kaufpreisen und natürlich der 1-jährigen Haltefrist)

Und nun?

Ich will jetzt einfach mal versuchen für meinen Fall alle Möglichkeiten durchzuspielen. Das ist natürlich recht aufwendig und ich dachte mir ich teile mal 'ne kleine Anleitung und Scripte mit euch:


Datenbank erstellen

Erstmal brauchen wir 'ne Datenbank. Ich nehm hier Postgres:

Code:
bash$ psql postgres
postgres=# create database bitbuch;
postgres=#
bash$ psql bitbuch
bitbuch=#

Datenimport

Ich verteile die Beschreibung der Datenimports auf einzelne posts und verlinke diese hier:


Dannach kontrollieren wir jewils ob's gut aussieht und kriegen auch schon summarische Ergebnisse. ('mtgox' ggf mit 'intersango', 'bitcoin.de', etc... ersetzen)

Code:
bitbuch=# select * from trades where exchange = 'mtgox' order by datum limit 10;

bitbuch=# select extract(year from datum) as y, sum(delta_BTC) as BTC, sum(delta_fiat) as fiat, sum(fee_BTC) as fee_BTC, sum(fee_fiat) as fee_fiat
from trades where exchange = 'mtgox' group by y order by y asc;

bitbuch=# select extract(year from datum) as y, extract(month from datum) as m, sum(delta_BTC) as BTC, sum(delta_fiat) as fiat, sum(fee_BTC) as fee_BTC, sum(fee_fiat) as fee_fiat from trades where exchange = 'mtgox' group by y, m order by y, m asc;

Wechselkurse anwenden

Dieser Post beschreibt den Import von Wechselkursen (gegnüber USD). Das durchführen, dann können wir die _EUR-Spalten der trades-tabelle befüllen:

Code:
bitbuch=> update trades t set delta_eur = null, fee_eur = null;
bitbuch=> update trades t set delta_eur = t.delta_fiat / r.rate, fee_eur = t.fee_fiat / r.rate from rate r where t.fiat_currency = 'USD' and r.currency = 'EUR' and r.datum = t.datum::date;
bitbuch=> update trades t set delta_eur = (t.delta_fiat / r1.rate) * r2.rate, fee_eur = (t.fee_fiat / r1.rate) * r2.rate from rate r1, rate r2 where t.fiat_currency <> 'USD' and r1.currency = t.fiat_currency and r2.currency = 'EUR' and r1.datum = t.datum::date and r2.datum = t.datum::date;

und schauen, ob alle Einträge erwischt wurden:

Code:
bitbuch=> select * from trades t where delta_eur is null or fee_eur is null; -- should return 0 rows
(hier sollten 0 Ergebnisse kommen)

Buchhaltung (fifo oder lifo) durchführen

Nun kommt ein script zum einsatz, welches die [f|l]ifo-Buchhaltung durchführt. Zunächst braucht man aber "node" (node js) und ein paar abhängigkeiten, welche mit npm installiert werden können.

Code:
bash$ npm install moment  pg  request

Dann buchhalt.js downloaden und starten

Code:
bash$ wget http://slf-software.de/buchhalt.js
bash$ node buchhalt.js

Am Anfang von buchhalt.js kann man ein paar sachen konfigurieren, z.B. "method" ("fifo" oder "lifo").

Das Ding führt dann die Buchhaltung mit den Töpfen durch und schreibt ein csv-file weg ("out.csv"), in welchen die einzelnen Käufe und Verkäufe (mit ermitteltem Gewinn) ausweist. Des weiteren werden die 3 ältesten (bei fifo) oder neuesten (bei lifo) Töpfe ausgewiesen.

Das CSV mit office aufmachen (Trennzeichen: ",") und die Gewinn-Spalte aufsummieren (pro Jahr per autofilter oder sonstwie) ergibt dann ohne jegliche Gewähr den zu versteuernden Gewinn. Ich würde mich freuen, wenn jemand die Korrektheit nachvollziehen könnte.

Was noch fehlt bzw. nicht berücksichtigt ist:

  • handling getrennte Depot-Führung
  • beachtung der Haltefrist (momentan wird alles als Steuerpflichtig angesehen)
  • Behandlung von Gebühren (?)
  • Umrechnung Gewinn nach EUR laut Tageskurs EUR/USD
  • import Daten intersango, bitcoin-central, bitcoin.de,...

Ich hoffe jemand hat hierfür Verwendung. Vielleicht steuert jemand auch was bei... z.B. import-code für andere Exchanges oder sogar Geld? (donation address: 1Cdx9apmXESPNdXik3e64LbgtoyYTUNwLm). Bin ausserdem für jeden Kommentar oder Bug-Report dankbar!


EDIT:
  • 13.11.2013: change type of datum from date -> timestamp
  • 13.11.2013: Datenimport mtGox in separaten Post ausgelagert
  • 13.11.2013: Beschreibung Anwendung Wechselkurse hinzugefügt
  • 24.11.2013: Adding bitcoin.de, Bitcoin Central imports

Scripts sind outdated, ich hab neue, bessere. Wenn jemand ernsthaft interesse anmeldet, werde ich die Sachen hier updaten
Pages:
Jump to: