Mastodon
2020-02-21T13:00:00+01:00

Finanzen im Griff mit Ledger (2) - Der Emacs Ledger-Mode

Finanzverwaltung auf der Kommandozeile. Oder komfortabel in Emacs mit dem Ledger mode

Im letzten Teil hatte ich darüber geschrieben, wie Buchungen in Ledger funktionieren, und wie sie geschrieben werden. Dadurch, dass es sich um einfache Textdateien handelt, braucht man dazu nicht mehr als einen beliebigen Texteditor. Wählt man dazu Emacs macht die Arbeit allerdings schon deutlich mehr Spass.

Naja zugegeben Spass ist was anderes, aber wenn man seine Finanzen mal im Griff hat, und nicht mehr jeden Januar von der Welle der "unerwartbaren" Buchung überrascht wird hinterlässt das schon ein sehr gutes Gefühl. Und Emacs macht es mit dem Ledger Mode schon recht einfach schnell einwandfreie Buchungssätze zu schreiben

Automatische Namensergänzung

Eine grosse Fehlerquelle besteht darin, dass die Kontonamen (die ja in der Regel auch noch innerhalb von Kategorien liegen) schnell sehr lang werden können. Ausgaben:Wohnen:Nebenkosten:GasWasser ist durchaus ein ganz gewöhnlicher Kontenname. Der Ledger Mode liest beim laden der Datei alle Konten ein und es reicht ab dann die einzelnen Teile der Bezeichnung zu beginnen, und dann einfach per Tab-Completion automatisch ergänzen zu lassen. Neben der eingesparten Zeit beim Tippen können so auch keine Tippfehler mehr entstehen.

Apropos Tippfehler in Kontennamen. Ledger bietet die Möglichkeit bei unbekannten Konten in einer Buchung, dieses Konto einfach nebenbei zu erzeugen. So verführerisch diese Option auch ist sollte davon Abstand genommen werden, und stattdessen lieber die gegenteilige Einstellung zur Norm werden.

Dann weigert sich Ledger zu arbeiten sobald ein Konto bebucht werden soll, dass vorher nicht explizit eingerichtet wurde. Diese Weigerung mag anfangs lästig erscheinen, aber wenigstens gibt Ledger dann genau an welches Konto falsch geschrieben wurde, wenn man sich doch mal vertippt. Ohne dies Meldung staht man ansonsten vor der Herausforderung einfach nur falsche Werte in seinen Konten zu haben, und die Ursache aus hunderten Buchungen herauslesen zu müssen.

Unterstützter Realitätsabgleich.

Eine weitere Hilfe, damit die Buchführung nicht von der Realität abweicht, ist ein regelmmässiger Kontenabgleich ich mache das für mein Girokonto, und die Kreditkarte anhand der Kontoauszüge und für das Bargeld indem ich einfach den Inhalt meines Portemonaies auf den Schreibtisch entleere.

In jedem Fall erhalte ich so den Kontostand, den auch meine Buchführung aufweisen sollte. Die Reconcile Funktion des Ledger Modes fragt mich beim Aufruf nach diesem Wert, und gibt mir anschliessend eine Auflisteung aller Buchungen, die ich noch nicht abgeglichen habe. Nun kann ich mich mit meinem Kontoauszug in der Hand hinsetzen und alle Buchungen markieren, die ich in Ledger ebenfalls sehe. Dabei bekomme ich ständig die Differenz meiner bestätigten Buchungen zur Realität angezeigt. Sobald diese Differenz 0 beträgt ist der Abgleich erledigt, und aus den temporären markierungen werden endgültige. Um diese so markierten Buchungen muss ich mich danach nie wieder kümmern.

Automatische Reportupdates

Gerade beim Bargeld ist so ein Realitätsabgleich manchmal schwierig, denn er setzt voraus, dass man jeden Cent den man irgendwo für einen Schkoriegel ausgegeben hat, irgendwie in die Buchführung bekommt. Aus diesem Grund empfehle ich für den Anfang die BArgeldums"tze einfach zu minimieren und vieles mit der Karte zu bezahlen. Das Geld was man dann noch am Geldautomaten abholt kann man dann entweder einem allgemeinen Konto zuordnen, oder nach Gefühl aufteilen. Nur wer es hier genauer wissen will und entsprechen diszipliniert bucht wird Spass damit haben.

Ich nutze sowieso für kleine Notizen ein USB Diktiergerät und so klappt auch die Bargeldbuchführung recht gut. Falls ich mal ein wenig mehr Arbeit damit habe meine Ausgaben nachzuvollziehen, ist es sehr hilfreich das Emacs mir in einem zweiten Fenster den Verlauf meiner Ausgaben und Einnahmen (wenn ich am Geldautomaten war) im Portmonai zu zeigen, und sofort zu aktualisieren, wenn ich Buchungen hinzufüge.

Angenommen ich dachte, das ich vor zwei Wochen mal 15 Euro beim Chinamann ausgegeben habe, sehe ich beim eintragen so sofort, dass da irgendetwas nicht stimmen kann, weil zwar die Endsumme meines Bargeldkontos dem entspricht, was ich im Portemonaie habe (und somit die 15 Euro tatsächlich ausgegeben wurden) aber der Zeitpunkt nicht stimmen kann, weil mein Portemonaie ansonsten zwischenzeitlich im Minus gewesen wäre, was bei Bargeld einfach nicht möglich ist.

Offensichtlich war es also nicht vor 2 sondern vor einer Woche, nachdem ich zwischendurch am Geldautomaten war. Ich kann meine Buchung durch die Zeit schieben, und sehe im Report sofort live, ob eine Buchung evtl so nicht möglich gewesen sein kann.

Automatisches Grossreinemachen

Auch wenn dies Funktion eigentlich nichts umwerfendes ist, ist es doch ungeheuer praktisch wenn man bei der Erfassung von Buchungen nicht darauf achten muss wohin in der Datei man seine Buchng schreibt, oder ob man auch alle Dezimalpunkte untereinander schreibt. Der Ledger Mode hat sowohl für die lesbare Formatierung, wie auch die zeitliche Sortierung von Buchungen Funktionen. Ich habe es mir besonders einfach gemacht und rufe dieses "hübsch machen" einfach per Hook bei jedem Speichern meiner Ledger Datei auf. So sind immer alle Daten lesefreundlich formatiert