Migratie naar GnuCash 5

De afgelopen jaren heb ik mijn administratie overgebracht van Excel naar GnuCash. Dat heeft zich volledig afgespeeld tijdens de levensduur van GnuCash versie 4. Maar de wereld, en ook de ontwikkeling van open-source software, staat niet stil. Eind maart 2023 was daar dus de release van GnuCash versie 5.0.

Nu is Geldnerd iemand die erg trouw is in het bijwerken van z’n software. In mijn RSS-reader, die ik ook gebruik om blogs te volgen, volg ik ook kanalen van alle belangrijke software die ik gebruik. Komt er een melding over een nieuwe versie, dan wordt er heel snel op de ‘bijwerken’ knop gedrukt.

Soms zelfs iets te snel. Want nieuwe software heeft soms problemen. En dan ben je als ‘snelle bijwerker’ de pineut. Inmiddels heb ik dat een aantal keren meegemaakt. Dieptepunt was een release van LibreOffice die een regressie introduceerde in BASIC. Een regressie betekent dat iets dat in een vorige release gewoon werkte, in deze release onbedoeld kapot is door een wijziging elders. Wat ik er van merkte was dat de macro’s waarmee ik CSV-bestanden importeer zorgden dat LibreOffice crashte en de spreadsheet corrupt werd. Lang leve de backup, zullen we maar zeggen. Dit soort fouten komen overigens niet alleen in open-source software voor. Ook Microsoft kan er wat van….

Maar goed, het maakt allemaal wel dat ik inmiddels wat voorzichtiger ben met het installeren van nieuwe versies van software. Zeker de ‘major releases’, de grote nieuwe versies.

Dus toen versie 5.0 van GnuCash beschikbaar kwam besloot ik te wachten. Even de kat uit de boom kijken. Er zit tien jaar aan financiële data in mijn administratie. Al mijn banktransacties, mijn contante transacties, mijn creditcardtransacties, en mijn beleggingstransacties. Daar wil je niet teveel risico mee lopen. Ik neem actief deel aan de GnuCash mailing lists, en kon dus goed volgen wat er aan problemen opdook.

Inmiddels is versie 5.4 van GnuCash alweer eventjes beschikbaar. Op basis van de feedback lijkt dat een stabiele release te zijn. De problemen met eerdere versies zijn wel zo’n beetje opgelost. Ik vond het dus tijd worden om over te stappen van versie 4 naar versie 5.

Migratie

Voorafgaand aan de migratie heb ik uiteraard een extra back-up gemaakt. Bij de back-up neem ik alle relevante bestanden mee. Dus niet alleen de administraties zelf, maar ook de GnuCash-interne back-ups en log files, de instellingen en de opgeslagen maatwerkrapportages. Dat heb ik lang geleden al zo ingesteld toen ik GnuCash ging gebruiken.

GnuCash adviseert om de migratie naar een nieuwe ‘major release’ altijd te doen vanaf de laatste ondersteunde versie van de voorgaande release. Dan heb je de kleinste kans op problemen. Ik werk al sinds de release met versie 4.14, de laatste ondersteunde release van versie 4. Daar hoefde ik dus geen extra tussenstappen voor te zetten.

Nadat ik versie 5.4.1 had gedownload heb ik deze geïnstalleerd. Dat verliep probleemloos. Vervolgens was het tijd voor een aantal tests.

Ik heb achtereenvolgens mijn beide administraties geopend en heb de menu-optie ‘Actions | Check & Repair | Check & Repair All’ gekozen. Deze optie voert een controle van de administratie uit en controleert of de data probleemloos gebruikt kan worden door de nieuwe versie.

In beide administraties heb ik ook de normale CSV-bestanden geïmporteerd, van de Rabobank in mijn persoonlijke administratie, en van ABN AMRO in onze gezamenlijke administratie. Alle instellingen waren keurig mee gemigreerd.

Ook heb ik mijn vaste rapportages (‘Reports | Saved Report Configurations’) nog even bekeken om te zien of daar geen dingen gewijzigd waren

Specifiek in mijn persoonlijke administratie heb ik ook getest of het ophalen van aandelenkoersen met Finance::Quote nog goed werkt. Deze had ik eerder al bijgewerkt, ik maakte dus al gebruik van de meest recente versie 1.58. Maar toch moest ik deze opnieuw installeren. Daarna werkte deze module weer probleemloos.

Na deze stappen was ik gerustgesteld dat de migratie probleemloos was verlopen. Ik kan weer gewoon verder met mijn administratie.

Maatwerkrapportages

Nu ik over ben naar versie 5 van GnuCash, is het tijd voor de implementatie van het laatste item op mijn functionele wensenlijstje. Er is namelijk nog (maar) één ding wat ik node mis, en dat is een rapportage van het Spaarpercentage (Saving Rate). Dat zou ik per maand, per kwartaal, en per jaar willen bekijken, en liefst naar keuze in een tabel of een grafiek (staafdiagram).

Online zijn er verschillende voorbeelden te vinden, en bloglezer Sjaak stuurde mij eerder ook al een voorbeeld. Daar ga ik de komende periode eens rustig mee experimenteren om het precies zo te krijgen als ik het wil hebben.

Let jij ook altijd goed op bij het installeren van nieuwe software?

Hoe importeer ik in GnuCash?

In een van mijn eerste blogposts over GnuCash heb ik wel eens iets geschreven over de import van banktransacties. Maar dat was destijds nog niet heel uitgebreid. In deze blogpost een uitgebreidere beschrijving, naar aanleiding van vragen van lezers. Ook deel ik de spreadsheet die ik gebouwd heb om de exportbestanden van mijn bank ‘voor te bewerken’.

Zoals ik op mijn blog wel eens beschreven heb, werk ik met de Rabobank en met ABN AMRO. Bij die eerste staat mijn persoonlijke rekening, bij die tweede de gezamenlijke huishoudrekening. Bij de Rabobank download ik regelmatig het standaard CSV-bestand met rekeningtransacties, bij de ABN AMRO download ik het TXT-bestand. Die worden daarbij automatisch in mijn standaard Windows downloads directory geplaatst.

GnuCash Converter

Ik voer daarna inderdaad wat bewerkingen uit om die bestanden om te zetten in versies die makkelijker te importeren zijn in GnuCash. Ik heb hiervoor uiteraard een spreadsheet met macro’s ontwikkeld, die deze handelingen met één druk op de knop voor mij doen. Want als ik ergens een bloedhekel aan heb, dan is het aan identieke handmatige acties die ik regelmatig uit moet voeren. We leven in 2023, daar is ICT voor…

En ik heb daarvan inmiddels zelfs twee versies. Eentje voor Microsoft Excel (die ik zelf niet meer gebruik) en eentje voor LibreOffice Calc. Beide zijn op mijn Downloads-pagina te vinden, onder het kopje ‘GnuCash’. Let op, die werkt dus alleen voor bestanden van Rabobank en ABN AMRO! Voor de Rabobank importeer ik niet alleen de reguliere banktransacties, maar ook mijn creditcardtransacties.

De opzet van de spreadsheets is simpel. Op het werkblad ‘Settings’ vul je eenmalig jouw Downloads-directory in, ook de directories waar je wilt dat jouw originele bankbestand gearchiveerd wordt, en de GnuCash Import directory waar je wilt dat het voorbewerkte importbestand door de spreadsheet wordt opgeslagen. Daarna ga je naar het werkblad ‘Dashboard’. Hier kies je in het keuzevenster voor Rabobank Boekingen, Rabobank Creditcard, of ABN AMRO.

Vervolgens druk je op de knop ‘Process File’. Die start de verwerking op. Het bestand dat je vooraf gedownload hebt van de bank wordt gekopieerd naar de archiefdirectory. Daar wordt het geopend en tijdelijk ingelezen in de Converter spreadsheet. Die voert vervolgens een aantal bewerkingen uit. Datum en cijfervelden worden in het juiste formaat gezet, overbodige velden worden verwijderd, een aantal velden worden gecombineerd tot één veld. Het bestand dat overblijft wordt vervolgens opgeslagen in jouw ingestelde GnuCash Import directory.

GnuCash Import

Vervolgens start ik GnuCash. In mijn administratie ga ik naar ‘File | Import | Import Transactions from CSV…’. Dit opent de importfunctie van GnuCash.

Wat belangrijk is om te weten: in de importfunctie van GnuCash kun je vaste importprofielen aanmaken en opslaan. Die heb ik uiteraard gemaakt voor mijn importbestanden. Ik selecteer dus het juiste importbestand, kies daarna voor het bijbehorende importprofiel, en dan weet ik zeker dat het importbestand (de output van mijn Converter spreadsheet) goed wordt ingelezen. Hieronder beschrijf ik die profielen.

Wat ook prettig is om te weten: GnuCash leert van jouw boekingen. Als jij een keer een bepaalde boeking op rekening X geboekt hebt (bijvoorbeeld ‘supermarkt X’), en GnuCash komt bij een volgende import een boeking tegen met dezelfde kenmerken, dan zal GnuCash zelf voorstellen om die ook op rekening X te boeken. Dat scheelt handmatig werk. Let wel op, het systeem is niet onfeilbaar. Ik controleer dus altijd zelf tijdens het importeren de rekeningen die GnuCash voorstelt. Maar in meer dan 90% van de gevallen heeft GnuCash het goed gezien.

Stappen in het importproces

Eerst krijg je een informatiescherm over de Transaction Import Assistant. Als je op ‘Next’ klikt krijg je een scherm waar je het in GnuCash te importeren bestand kunt kiezen. De output van de Converter spreadsheet. Daarvoor kies je de directory die je op het Settings werkblad van de Converter hebt ingevuld als GnuCash Import directory. Als je die kiest, zie je (als het goed is) een bestand staan met de datum van vandaag. Dat selecteer je, je klikt weer op ‘Next’.

Vervolgens krijg je het scherm met de importinstellingen. Die beschrijf ik hieronder apart.

Import Rabobank Transacties

In onderstaand scherm zie je de instellingen die ik gebruik om Rabo Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.

Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Activa:Huidige Activa:Lopend Rabo’ (mijn standaard Rabo betaalrekening) importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening, de juiste tegenrekening in activa (bijvoorbeeld een overboeking naar mijn spaarrekening of beleggingsrekening), of op een andere rekening (bijvoorbeeld hypotheektransacties die ik rechtstreeks tegenboek op de rekening ‘Passiva:Hypotheek’).

Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).

Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.

Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.

Op de onderste helft van het scherm kies je bij (1) tot en met (5) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden.

Zo simpel is het, dit zijn de instellingen die je nodig hebt om de output van de GnuCash converter te importeren. Vergeet je niet om de instellingen op te slaan?

Import Rabobank Creditcard Transacties

In onderstaand scherm zie je de instellingen die ik gebruik om Rabo Creditcard Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.

Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Passiva:Creditcards:Mijn Creditcard’ importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening.

Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).

Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.

Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.

Op de onderste helft van het scherm kies je bij (1) tot en met (4) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden. Je ziet dat de eerste regel van het importbestand is weggestreept, daar staan de veldnamen en die hebben we bij (6) op het instellingenscherm ingesteld.

Import ABN AMRO Transacties

In onderstaand scherm zie je de instellingen die ik gebruik om ABN AMRO Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.

Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Activa:Huisidige Activa:Gezamenlijke Rekening’ importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening, de juiste tegenrekening in activa (bijvoorbeeld een overboeking naar mijn spaarrekening of beleggingsrekening), of op een andere rekening (bijvoorbeeld hypotheektransacties die ik rechtstreeks tegenboek op de rekening ‘Passiva:Hypotheek’).

Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).

Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.

Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.

Op de onderste helft van het scherm kies je bij (1) tot en met (3) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden.

Vervolg Importproces

Als je het bestand geselecteerd hebt, de juiste importinstellingen hebt gekozen, en weer op ‘Next’ hebt gedrukt, gaat GnuCash aan de slag. De transacties worden ingelezen, en GnuCash probeert er zelf de juiste tegenrekening bij te vinden. Dat wordt je gepresenteerd via onderstaand scherm. Zelf vind ik dat soms best onoverzichtelijk. Het motiveert me om regelmatig mijn transacties in te lezen zodat er geen grote aantallen regels het scherm vervuilen.

Bij groene regels (1) denkt GnuCash zelf een matchende tegenrekening (2) gevonden te hebben. Dat is fijn, maar zoals ik al zei: het systeem is niet onfeilbaar, dus controleer het goed!

Bij gele regels (3) kan GnuCash geen tegenrekening voorstellen. Het systeem stelt dan standaard voor om het op een aparte rekening ‘IMBALANCES’ te boeken. Meestal kijk ik even naar de boeking en pas dan handmatig de tegenrekening aan. Dat doe je door de gele regel te selecteren met de rechtermuisknop te klikken op het rekeningveld waar ‘IMBALANCES’ staat, en te kiezen voor de optie ‘Assign a transfer account to the selection’.

Rode regels (niet in bovenstaand scherm) wil GnuCash om een of andere reden niet importeren. Door aan de rechterkant het juist vinkje bij veld A (4) te zetten kun je het systeem op andere gedachten brengen. Je kunt dan ook een tegenrekening instellen en de regel wordt gewoon geïmporteerd.

Soms markeert GnuCash zelf al boekingen (5) waarvan het systeem denkt dat die al eerder geïmporteerd zijn. Dat kun je zelf even controleren, de importfunctie staat (in elk geval onder Windows) open in een apart venster naast het eigenlijke GnuCash scherm. Je kunt dus makkelijk even schakelen tussen de vensters.

En daarna klik je weer op ‘Next’. De boekingen worden dan geïmporteerd in jouw GnuCash administratie, met de door jou geselecteerde tegenrekeningen. Scheelt een hoop tijd ten opzichte van handmatig invoeren!

Werk jij jouw administratie nog handmatig bij? Of heb je dat geautomatiseerd?

Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.

NB: Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash.

Finetunen met GnuCash

Inmiddels is GnuCash vrijwel helemaal naar mijn wens ingericht. Alle blogjes die ik daarover geschreven heb kun je vinden onder het kopje ‘GnuCash’ op mijn overzichtspagina. In deze blogpost nog een aantal losse eindjes, specifieke dingen die ik gedaan heb om GnuCash helemaal naar mijn wensen in te richten.

Voorzieningen

Volkomen terecht werd ik er in de reacties op gewezen dat ik nog niet ben teruggekomen op mijn keuze voor de voorzieningen. Ik schreef een uitgebreide boekhoudkundige blogpost over de opties die ik overwoog om mijn potjes te verwerken in GnuCash. Maar ik heb niet meer laten weten wat ik nu gekozen heb!

Uiteindelijk werd het Methode 1 (Aparte Uitgavenrekening Voorzieningen) met een toevoeging. Ik maak namelijk ook een lege boekingsregel aan naar de grootboekrekening waar de voorziening uiteindelijk aan besteed wordt.

De maandelijkse toevoeging aan de voorzieningen ziet er dan als volgt uit (voorbeeld voor de voorziening Zorgverzekering).

DateAccountDepositWithdrawal
25-mm-2021Activa:Huidige Activa:Lopende Rekening100
25-mm-2021Passiva:950 Voorzieningen:951 Voorziening Zorgverzekering100
25-mm-2021Activa:Huidige Activa:Bufferspaarrekening100
25-mm-2021Uitgaven:9500 Voorzieningen:9510 Voorziening Zorgverzekering100

En de terugboeking ziet er dan als volgt uit.

DateAccountDepositWithdrawal
21-12-2021Activa:Huidige Activa:Bufferspaarrekening1.155
21-12-2021Activa:Huidige Activa:Lopende Rekening1.155
21-12-2021Uitgaven:9500 Voorzieningen:9510 Voorziening Zorgverzekering1.200
21-12-2021Passiva:950 Voorzieningen:951 Voorziening Zorgverzekering1.200
21-12-2021Activa:Huidige Activa:Lopende Rekening1.155
21-12-2021Passiva:950 Voorzieningen:951 Voorziening Zorgverzekering
21-12-2021Uitgaven:1200 Financiën, Zorg en Overheid:1230 Zorgverzekering1.155

Die lege regel lijkt zinloos, maar is het niet. Het betekent namelijk dat ik in de administratie op de uitgavenrekening kan zien dat (een deel van) de uitgave door een voorziening gedekt is.

Ik heb hiermee gekozen voor de oplossing die ik boekhoudkundig het meest zuiver vond. En het kost als je het eenmaal hebt ingeregeld nauwelijks werk, zie hieronder bij ‘Dupliceren’.

Backup

Geldnerd heeft een back-up obsessie, dat is bekend. Als ik een nieuw softwarepakket in gebruik neem kijk ik dus ook even of alles wat belangrijk is wel meegenomen wordt in mijn back-ups.

De locatie van de GnuCash databestanden met jouw eigen administratie kun je zelf instellen bij de eerste keer opslaan. Ik heb hiervoor een aparte directory in Mijn Documenten aangemaakt. Dat is handig, want die hele directory loopt al mee in mijn reguliere back-up schema. Maar GnuCash slaat (helaas) ook allerlei instellingen op andere plaatsen op. Maatwerkrapportages, importinstellingen, dat soort dingen. En die zou ik ook niet graag kwijtraken, want het was best een klus om het helemaal naar mijn zin in te richten. Gelukkig is er op de GnuCash Wiki een aparte pagina waar de verschillende bestandslocaties die je moet backuppen in voor techneuten begrijpelijke termen staan genoemd.

Zelf heb ik voor mijn maatwerkinstellingen de onderstaande directories toegevoegd in mijn back-up:
C:\Gebruikers\\AppData\Roaming\GnuCash\
C:\Gebruikers\\AppData\Local\gtk-3.0\

En als je ook nog gebruik maakt van aqBanking om automatisch banktransacties binnen te halen (iets wat volgens mij door Nederlandse banken niet ondersteund wordt) dan moet je de directory ‘C:\Gebruikers\\AppData\aqbanking\’ ook meenemen. Als je verder ook nog maatwerk gebruikt voor de gebruikersinterface wordt dat opgeslagen in ‘C:\Gebruikers\\AppData\Local\gtk-3.0\’. Dat doe ik, zie ook verderop.

Price Database

GnuCash kent het verschijnsel van de Price Database. Hierin worden de handelsprijzen van jouw beleggingstransacties opgeslagen, en ook de wisselkoersen van vreemde valuta. Als je (net zoals ik) gebruik maakt van Finance::Quote voor het binnenhalen van actuele aandelenkoersen, komen ze hier ook terecht. Je vindt de Price Database via de menu-optie ‘Tools | Price database’.

Ik heb de historische prijzen van mijn beleggingsportefeuille opgenomen in GnuCash. Die heb ik immers in mijn beleggingsspreadsheet zitten. Met wat knippen en plakken vanuit Excel heb ik per fonds een CSV-bestand gemaakt. Dat heb ik vervolgens via ‘File | Import | Import prices from a CSV file’ geïmporteerd in GnuCash. Op die manier heb ik echt een volledig beeld van mijn financiën sinds 1 januari 2013.

Automatische Transacties (of Dupliceren)

Er zijn boekingen die ik regelmatig wil herhalen. Denk bijvoorbeeld aan de set met boekingen die nodig is voor het vullen van mijn reserveringen. Hiervoor kent GnuCash het verschijnsel automatische transacties, via ‘Actions | Scheduled Transactions’. Ik heb ermee geëxperimenteerd, maar vond het te ingewikkeld en foutgevoelig voor wat ik nodig heb. Liever gebruik ik de ‘Duplicate’ functie. Mijn vaste maandelijkse overboeking van de lopende rekening naar de bufferrekening bijvoorbeeld. Ik dupliceer gewoon de transactie van de voorgaande maand en pas de datum aan, via ‘Transaction | Duplicate’ of de ‘Duplicate’ knop in de knoppenbalk. Dat is net zo makkelijk, vooral voor de (gesplitste) boekingen die elke maand terugkomen.

Rekeningen Verbergen

Toen ik helemaal klaar was met het inlezen van al mijn financiële transacties sinds 1 januari 2013, was mijn rekeningoverzicht redelijk onoverzichtelijk geworden. Een ‘rekeningonoverzichtelijk‘ dus. Allerlei beleggingsfondsen die ik al niet meer bezit, drie creditcards die ik niet meer heb, een paar oude spaarrekeningen waar dat ook voor geldt, enzovoorts. Gelukkig kun je rekeningen onzichtbaar maken. Ze zijn er dan nog wel, maar staan niet meer in je reguliere overzicht. Dat scheelt een hoop.

Je kunt rekeningen onzichtbaar maken door in het Accounts overzicht met de rechtermuisknop te klikken op de account, en ‘Edit Account’ te kiezen. Vervolgens vink je de optie ‘Hidden’ aan. Via het menu ‘View | Filter by | Other’ kun je ‘Show hidden accounts’ aanvinken, dan worden ze wel weer zichtbaar (mocht dat nodig zijn).

Welcome to the Dark Side Mode

Geldnerd is fan van de dark mode op al zijn apparaten. De kleurinstelling met een donkere achtergrond en lichte letters. Ik vind het rustiger aan mijn ogen, en ik zit ook graag ’s avonds in het donker te werken. Dat leidt minder af en geeft mij meer focus. Een persoonlijke voorkeur. Maar standaard komt GnuCash met een licht thema.

Open-source software heeft soms niet alle functionaliteit die je bij commerciële closed-source pakketten wel krijgt. Er was ‘vroeger’ een tooltje in GnuCash onder Windows om een ’theme’ in te stellen, maar dat werkt helaas niet meer. Een nieuwe tool staat nog niet hoog genoeg op de prioriteitenlijst van de ontwikkelaars, al wordt er inmiddels wel geëxperimenteerd met opmaak op basis van Cascading Style Sheets (CSS).

GnuCash gebruikt wel de open-source GTK+ Toolkit, ook onder Windows. En dat maakt het relatief eenvoudig om wel een Dark Mode in te schakelen in GnuCash. Hiervoor maak je een klein bestandje aan met de naam ‘settings.ini’, dat kan gewoon met het Kladblok in Windows. De inhoud van dat bestandje is heel simpel’:

[Settings]
gtk-application-prefer-dark-theme=true

Dit bestandje plaats je in de directory ‘C:\Gebruikers\\AppData\Local\gtk-3.0\’. Als je daarna GnuCash opnieuw opstart dan wordt de interface in een donker thema weergegeven.

In de grootboekregisters zie je dan nog wel de kenmerkende afwisselende lichtgroene en donkergroene strepen. Dat kun je eventueel uitzetten door bij ‘Edit | Preferences | Register’ onder Graphics de optie ‘Use GnuCash built-in color theme’ uit te schakelen. Ik heb die zelf nog wel aanstaan voor de leesbaarheid.

Je kunt in diezelfde directory ‘C:\Gebruikers\\AppData\Local\gtk-3.0\’ ook nog een bestandje ‘gtk.css’ aanmaken om andere kenmerken aan te passen. Dat is met de huidige versie die ik gebruik (4.11) allemaal nog een beetje experimenteel. Maar de optie

#gnc-id-main-window {
   font-size: 20pt;
   }

Zorgt er bijvoorbeeld voor dat er een (groter) 20-punts lettertype gebruikt wordt in GnuCash. En met een beetje zoeken op internet kun je nog veel meer dingen naar jouw persoonlijke smaak aanpassen.

Rekeningschema

Inmiddels is mijn rekeningschema in GnuCash behoorlijk uitgebreid. Zo zit mijn beleggingsportefeuille erin. De hypotheekschuld en de waardering van onze eigen woning. Al mijn bankrekeningen. En het grootboekrekeningschema is behoorlijk uitgebreid. Hondje heeft nu zijn eigen rekeninggroep met aparte grootboekrekeningen voor medische kosten en de uitlaatservice. Ik heb een nieuw (geanonimiseerd) exportbestand van het rekeningschema gemaakt ter inspiratie. Dat kun je hier downloaden.

Heb jij nog tips voor of vragen over mijn inrichting van GnuCash?

Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.

NB: Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash.

Rapportages in GnuCash

Wat heb je aan een administratie zonder rapportages? Niet veel. De zin van dingen bijhouden is nu juist om terug te kijken, analyses te maken, patronen en verbanden te ontdekken en daarmee je eigen gedrag bij te sturen. De afgelopen tien jaar heb ik dus de nodige tijd gestoken in het vervolmaken van rapportages die mij alles vertellen wat ik maar zou willen weten uit mijn administratie. Tientallen grafieken worden automatisch gegenereerd. En dat ontwikkelt zich nog steeds. Want mijn behoeften veranderen door de tijd. Ik hoef niet meer elk detail te weten, mijn systeem werkt en ik hoef alleen nog maar de grote lijnen in de gaten te houden.

Mijn rapportagebehoeften in GnuCash zijn dan ook iets meer ‘basic’ dan bij de financiële administratie in Excel. Zeker omdat ik voorlopig nog een aparte spreadsheet aanhoud voor mijn beleggingen en onze hypotheek. In deze blogpost een overzicht van de rapportages die ik momenteel gebruik in GnuCash.

Instellingen Opslaan

Binnen GnuCash kun je veel dingen instellen in de rapportages. Als je via ‘Reports’ één van de rapportages gekozen hebt en het rapport op je scherm staat, heb je hier in de werkbalk de nodige opties voor. Via de knop ‘Options’ (1) kom je in het instellingenscherm voor de betreffende rapportage. En als je de instellingen aangepast hebt kun je die opslaan met ‘Save Config’ of ‘Save Config As’ (2). Ik gebruik zelf altijd die tweede optie, want dan blijft het originele rapport ook behouden. De door jezelf opgeslagen configuraties kun je terugvinden via ‘Reports | Saved Report Configurations’.

Balance Sheet

De balans is en blijft een van de belangrijkste rapportages om regelmatig te raadplegen. Het laat me zien hoe het staat met mijn bezittingen (huis, beleggingsportefeuille, en contant geld op de spaarrekening) en verplichtingen (de hypotheek en de openstaande creditcardbetalingen). En met mijn eigen vermogen.

De balans vind je via ‘Reports | Assets & Liabilities | Balance Sheet’. In onderstaand screenshot zie je de instellingen die ik hiervoor gebruik. Het belangrijkste is dat ik op het tabblad ‘General’ de opties ‘Use standard US layout’ en ‘Single column Balance Sheet’ heb uitgeschakeld (1).

Budget Report

Ik ben nog druk aan het experimenteren met het Budget Report (via ‘Reports | Budgets | Budget Report’). Daarmee kun je, de naam zegt het al een beetje, kijken naar de verschillen tussen jouw ingevoerde budget en de werkelijke uitgaven in een periode. Die bekijk ik meestal per rekeningcategorie, bijvoorbeeld alle uitgaven (Expenses). Vaak genereer ik dan nieuwe rapportages voor specifieke groepen rekeningen, als ik op het hoogste niveau zie dat er teveel geld uit gaat. Het helpt me om snel de probleemgebieden in kaart te brengen waar ik bij moet sturen. En dat is toch één van de belangrijkste functies van een administratie.

Net Worth Line Chart

Deze rapportage, te vinden via ‘Reports | Assets & Liabilities | Net Worth Line Chart’ zet de ontwikkeling van je Net Worth (eigen vermogen), bezittingen en verplichtingen uit in de tijd. Je kunt zelf het startmoment en de einddatum instellen uiteraard. Belangrijkste instelling voor mij is hier de instelling per kwartaal (1). Die periode hanteerde ik in mijn oude Capital Dashboard ook. Je kunt uiteraard ook een andere periode kiezen, zelfs per dag is mogelijk.

Maatwerkrapporten

Je kunt met GnuCash ook maatwerkrapporten bouwen. Daar heb ik me nog niet in verdiept, en (behalve deze wiki-pagina) ook nog geen goede voorbeelden of beschrijving van gevonden. Daar ga ik me dit najaar nog wel verder in verdiepen. Zo wil ik in elk geval een rapportage bouwen om mijn Spaarpercentage in de gaten te houden. Naar het voorbeeld van onderstaande grafiek uit mijn administratie, die ik ook vaak gebruik op mijn blog. Want het spaarpercentage is een belangrijk getal dat ik echt wel wil kunnen volgen. En ik ga ook nog kijken naar aanvullende rapportages rond mijn beleggingsportefeuille.

Welke rapportages vind jij belangrijk?

Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.

NB: Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash.

Beleggen met GnuCash (deel 2)

In GnuCash wil ik graag één totaaloverzicht van mijn financiën creëren. En daar horen dus ook mijn beleggingen bij. Ik heb al mijn transacties sinds 1 januari 2013 overgezet. Twee weken geleden schreef ik in deel 1 over alle voorbereidingen en de inrichting van GnuCash voor mijn beleggingen. En vandaag dan deel 2, met meer informatie over hoe ik aankopen en verkopen administreer in GnuCash, en hoe ik dividend verwerk in de administratie.

Aandelen kopen en verkopen

In de documentatie van GnuCash worden verschillende manieren beschreven om aandelentransacties te verwerken in je administratie. Ik neem de transacties op tegen inkoopprijs. Eventuele transactiekosten boek ik apart op de kostenrekening die ik daarvoor heb aangemaakt. De grootboekrekening voor een aandeel ziet er iets anders uit dan een reguliere grootboekrekening. Je werkt met het Number (aantal aandelen) en de Price.

Een aankoop ziet er bij mij zo uit als in onderstaande tabel. Ik werk hier met een Split Booking, een transactie die is uitgesplitst naar meerdere grootboekrekeningen. Het voorbeeld is een aankoop van 10 stuks VWRL tegen een koers van € 98,50 per stuk met € 6,00 aan transactiekosten.

Je maakt dus een transactie aan van +10 aandelen met een Price van 98,50 op de rekening ‘Activa: Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF’. De transactiekosten worden geboekt op de rekening ‘Uitgaven:8000 Overige:8040 EUR Transactiekosten Beleggingen’. Het totale bedrag van de transactie (10 * 98,50 + 6,00 = 991,00) wordt afgeboekt van mijn beleggingsrekening rekening ‘Activa:Huidige Activa:Beleggingen Saxo EUR’. In GnuCash ziet dat er uit als volgt:

AccountSharesPriceBuySell
Activa:Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF1098,50985,00
Uitgaven:8000 Kasgeld en Overige:8040 EUR Transactiekosten Beleggingen6,00
Activa:Huidige Activa:Beleggingen SAXO EUR991,00

En in onderstaande tabel zie je een verkooptransactie van 10 stuks VWRL tegen een koers van € 105,00, ook weer met € 6,00 aan transactiekosten.

Je maakt hiervoor dus een transactie aan van -10 aandelen met een Price van 105,00 op de rekening ‘Activa: Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF’. De transactiekosten worden geboekt op de rekening ‘Uitgaven:8000 Overige:8040 EUR Transactiekosten Beleggingen’. De totale netto opbrengst van de transactie (10 * 105,00 – 6,00 = 1.044,00) wordt bijgeboekt op mijn beleggingsrekening rekening ‘Activa:Huidige Activa:Beleggingen Saxo EUR’. In GnuCash ziet dat er uit als volgt:

AccountSharesPriceBuySell
Activa:Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF-10105,001.050,00
Uitgaven:8000 Kasgeld en Overige:8040 EUR Transactiekosten Beleggingen6,00
Activa:Huidige Activa:Beleggingen SAXO EUR1.044,00

Je ziet hier heel mooi de eenvoud en logica van het dubbel boekhoudsysteem. De optelsom van de bedragen in de Buy en Sell kolom moet gelijk zijn. Anders ontbreekt er ergens iets.

Schrobben (‘Scrub’)

Ik heb in het voorbeeld in de voorgaande paragraaf 10 aandelen gekocht voor 98,50 per stuk, en ze weer verkocht voor € 105,00 per stuk. Er is dus winst gemaakt, er zijn opbrengsten uit vermogen gerealiseerd. In het dubbele boekhoudsysteem moet je die zichtbaar maken. Er zijn in GnuCash verschillende manieren om de opbrengsten van een dergelijke transactie (of de negatieve opbrengst als je de aandelen met verlies verkocht hebt) te verwerken. Die staan beschreven in paragraaf 9.7 van de Tutorial and Concepts Guide (‘Conceptengids’).

Ik gebruik de methode voor het automatisch berekenen van winst (of verlies) zoals beschreven in paragraaf 9.7.2. ‘Selling Shares with Automatic Calculation of Capital Gain or Loss Using Lots’. Binnen GnuCash wordt dat ‘scrubbing’ (schrobben) genoemd. In dat proces combineer je aankoop- en verkooptransacties bij elkaar in ‘Lots’ (kavels).

Om te ‘scrubben’ open je de Account van een specifieke belegging. Dan klik je op ‘Action | View Lots’. In het venster dat dan verschijnt klik je op ‘New Lot’ (1), en vervolgens selecteer je in het venster rechtsboven de Lot die dan verschenen is (2).

In het venster linksonder (‘Splits free’) (3) kies je dan de relevante transacties en met de knop ‘>>’ (4) verplaats je die naar het venster ‘Splits in lot’ rechtsonder (5). Vervolgens druk je op de knop ‘Scrub’ (6) en sluit je het venster weer af met ‘Close’ (7).

Op dat moment wordt er een boeking ‘Realized Gains / Loss’ (gerealiseerde opbrengsten / verliezen) gecreëerd, een boeking op (in mijn geval) de rekening ‘Inkomsten:700 Gerealiseerde Opbrengsten:720 Beleggingen EUR’ tegenover de rekening van de belegging die we ‘gescrubt’ hebben. In het eerdere voorbeeld van de aankoop en verkoop van VWRL ziet die boeking er als volgt uit:

AccountChargeIncome
Activa:Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF59,00
Inkomsten:700 Gerealiseerde Opbrengsten:720 Beleggingen EUR59,00

Als ik verlies gemaakt zou hebben, dan stonden de bedragen in de tegenovergestelde cellen. Het dubbel boekhoudsysteem kent geen negatieve getallen, alleen debet en credit. En als het een fonds in Amerikaanse dollars betreft, dan wordt de ‘Realized Gains / Loss’ boeking gedaan op de rekening ‘Inkomsten:700 Gerealiseerde Opbrengsten:730 Beleggingen USD’.

Dividend verwerken

Een aantal fondsen in mijn portefeuille betaalt periodiek dividend uit. in mijn geval altijd ‘cash dividend’, ik krijg dus een geldbedrag gestort op mijn beleggingsrekening. Ook dit kun je op verschillende manieren verwerken in GnuCash, dat staat beschreven in paragraaf 9.8 van de Tutorial and Concepts Guide (‘Conceptengids’).

In onderstaand voorb eeld heb ik op een bepaalde datum € 300,00 aan contant dividend ontvangen op VWRL. Ik boek dat als Income op de inkomstenrekening ‘Inkomsten:600 Opbrengsten Vermogen:620 Dividendinkomsten EUR:VWRL Vanguard FTSE All-World UCITS ETF’. Onder de Placeholder ”Inkomsten:600 Opbrengsten Vermogen: 620 Dividendinkomsten EUR’ heb ik voor ieder fonds dat dividend in Euro’s betaalt een specifieke inkomstenrekening aangemaakt. En ik heb uiteraard dollarrekeningen voor de fondsen die dividend in Amerikaanse dollars betalen onder ”Inkomsten:600 Opbrengsten Vermogen:625 Dividendinkomsten USD’.

Een boeking moet altijd in balans zijn. Ik boek dus ook € 300,00 als Charge op mijn beleggingsrekening ‘Activa:Huidige Activa:Beleggingen SAXO EUR’. Bij dividend in Amerikaanse dollars gaat het uiteraard naar ‘Activa:Huidige Activa:Beleggingen SAXO USD’.

Tenslotte ziet je in deze Split Booking een lege regel ‘Activa:Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF’. Die is er alleen maar voor bedoeld om deze boeking te ‘linken’ aan de specifieke investering. Zo houd ik daar een overzicht van alle dividendtransacties op dat specifieke fonds.

In GnuCash ziet deze boeking er dan als volgt uit:

AccountChargeIncome
Inkomsten:600 Opbrengsten Vermogen:620 Dividendinkomsten EUR:VWRL Vanguard FTSE All-World UCITS ETF300,00
Activa:Huidige Activa:Beleggingen SAXO EUR300,00
Activa:Investeringen:Beleggingsportefeuille EUR:VWRL Vanguard FTSE All-World UCITS ETF

Tenslotte

Al mijn beleggingstransacties worden nu bijgehouden in GnuCash. Maar ook hier moet ik nog aan de slag met de rapportages. Dat wordt het volgende deelproject in mijn overstap naar GnuCash. Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash tot nu toe.

Hoe beheer jij jouw beleggingsportefeuille?

Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.

Beleggen met GnuCash (deel 1)

De afgelopen acht jaar heeft Geldnerd zichzelf zwaar verwend met zijn beleggingsspreadsheet in Excel. Alle beleggingstransacties sinds 1 januari 2013 zitten in deze spreadsheet, en ook alle financiële transacties rond mijn beleggingsportefeuille sinds die datum. En in elk weekend sinds 1 januari 2013 is die spreadsheet bijgewerkt met de actuele koersen en waarde van de fondsen die ik op dat moment in portefeuille had. Eerst door het downloaden van een rapportje van mijn broker, en sinds een jaartje door Excel de koersen automatisch online op te laten halen (het Aandelen data type). Dat kan ook met terugwerkende kracht voor elke gewenste datum, dus na een vakantie hoef ik niet meer handmatig te knoeien voor de gemiste weekenden… In die spreadsheet zitten al mijn rapportages, al mijn grafieken, al mijn statistiekjes om mijn beleggingen in de gaten te houden.

Maar in GnuCash wil ik graag één totaaloverzicht van mijn financiën creëren. En daar horen dus ook mijn beleggingen bij. Ik heb al mijn transacties sinds 1 januari 2013 dus over gezet. In deze blogpost neem ik je mee in hoe ik dit heb ingericht. Inclusief de functionaliteit om automatisch de waarde bij te werken door actuele aandelenkoersen binnen te halen.

Het is nogal een uitgebreid verhaal. Daarom is het in twee delen gesplitst. Vandaag deel 1, met alle voorbereidingen en de inrichting van GnuCash voor mijn beleggingen. Binnenkort volgt deel 2, met meer informatie over hoe ik aankopen en verkopen boek in GnuCash, en hoe ik dividend verwerk in de administratie.

Rekeningschema

Beleggingen horen bij jouw Assets, de activa. Ik heb hiervoor een rekening ‘Activa: Investeringen:Beleggingsportefeuille EUR’ aangemaakt, met valuta Euro. Het is een Placeholder Account waaronder ik de afzonderlijke fondsen aanmaak. Dat ziet er bij mij zo uit.

Daarnaast heb ik bijvoorbeeld ook een rekening ‘Activa: Investeringen:Beleggingsportefeuille USD’ met als valuta USD voor de fondsen die in Amerikaanse Dollars genoteerd staan. Mijn versie van GnuCash (4.9) kon niet omgaan met fondsen in Dollars onder een Placeholder die in Euro genoteerd stond.

En vergeet niet om via ‘File | Properties | Accounts’ de optie ‘Use Trading Accounts’ aan te zetten als je ook in andere valuta dan de eigen Euro handelt. Dat scheelt een hoop zoeken naar balansverschillen…

Verder heb ik drie Expense rekeningen aangemaakt. Op kostenrekening ‘Uitgaven:8000 Overige:8030 Servicefee Beleggingen’ boek ik de maandelijkse servicefee van mijn aandelenbroker. Op rekening ‘Uitgaven:8000 Overige:8040 EUR Transactiekosten Beleggingen’ boek ik de transactiekosten van Euro-genoteerde fondsen. En op rekening ‘Uitgaven:8000 Overige:8050 USD Transactiekosten Beleggingen’ boek ik de transactiekosten van Dollar-genoteerde fondsen.

En ik heb twee bankrekeningen voor mijn beleggingen aangemaakt. ‘Activa:Huidige Activa:Beleggingen Saxo EUR’ respectievelijk ‘Activa:Huidige Activa:Beleggingen Saxo USD’. Die komen overeen met mijn twee bankrekeningen bij mijn broker. Hierop vinden alle banktransacties rond mijn beleggingen plaats.

Een fonds aanmaken

Een fonds dat je wilt kopen maak je in GnuCash aan in twee stappen. Ik laat het zien aan de hand van de bekende ETF Vanguard FTSE All-World UCITS ETF (VRWL), genoteerd aan de beurs in Amsterdam. Allereerst maak je een aparte grootboekrekening aan voor het fonds onder ‘Activa: Investeringen:Beleggingsportefeuille EUR’.

Het is belangrijk dat je hierbij het juiste rekeningtype ‘Stock’ kiest (1). Druk daarna op de knop ‘Select’ bij de Security/Currency (2). Nu gaan we het echte aandeel aanmaken.

Op dit scherm moet je even goed opletten.

Het juiste ‘Symbol’ (1) is van belang als je automatisch actuele koersen wilt binnenhalen. Daar kom ik verderop in deze blogpost op terug. Het is even pielen om het juiste Symbol voor elk fonds te vinden. Meestal hebben die als format <afkorting fonds>.<beurs>. Dus de bekende ‘Vanguard FTSE All World UCITS ETF’ genoteerd aan de beurs in Amsterdam heeft als code VWRL.AS. En mijn obligatie-ETF ‘Xtrackers II Global Gov Bond UCITS ETF’ genoteerd aan de Duitse XETRA-beurs heeft als code DBZB.DE. Als je dat eenmaal door hebt kun je de meeste fondsen vrij eenvoudig vinden.

Ik gebruik het ‘Type’ (2) om vast te leggen op welke aandelenbeurs ik het fonds koop en verkoop. AEX staat uiteraard voor Amsterdam. Als een beurs niet in het lijstje voorkomt kun je gewoon intypen wat je wilt, dat wordt automatisch aan de lijst toegevoegd

Ook de juiste ‘ISIN-code’ (3) is van belang als je automatisch actuele koersen wilt binnenhalen. En let ook op de ‘Fractions’ (4) als je bij een broker zit waar je in delen van aandelen kunt handelen.

Als je de extra software voor het automatisch binnenhalen van aandelenkoersen geïnstalleerd hebt (zie hieronder) kun je de optie ‘Get Online Quotes’ (5) aanvinken. Ik kreeg de API van Alphavantage niet aan de praat, maar ‘Yahoo as JSON’ (6) doet het prima met de fondsen die ik in portefeuille heb.

Opslaan via ‘OK’, en je eerste fonds is klaar om in te beleggen!

Koersen automatisch binnenhalen

Geldnerd is natuurlijk een enorm luie ambtenaar. Ik heb mijn spreadsheets zo gebouwd dat ik zo min mogelijk handelingen nodig heb om mijn administratie bij te werken. Ook voor het bijwerken van mijn beleggingen in Excel is maar één druk op de knop nodig. Dat wil ik ook in GnuCash. In Windows 10 ga je hiervoor naar ‘Start | GnuCash’ en daar vind je een optie ‘Install Online Price Retrieval for GnuCash’. Als je die geïnstalleerd hebt dan wordt de functionaliteit actief.Die module heet Finance::Quote. Ik gebruik voor de Online Quotes de API van Yahoo Finance (‘Yahoo as JSON’).

En daarmee werkt het voor mij net zo makkelijk als in Excel. Eens in de week open ik GnuCash en ga naar ‘Tools | Price Database’. Daar druk ik op de knop ‘Get Quotes’. Voor alle fondsen waar ik ‘Get Online Quotes’ heb aangevinkt en de juiste code heb ingevuld wordt er dan automatisch de meest recente koers opgeslagen in de Price Database.

Beheerd Beleggen (bijvoorbeeld Meesman) in GnuCash

Yahoo (en andere online services) beschikken natuurlijk alleen over de gegevens van fondsen die op effectenbeurzen verhandeld worden. Dat geldt niet voor beleggingen bij bijvoorbeeld Meesman en andere vergelijkbare aanbieders.

Een vergelijkbare situatie had ik in het verleden in mijn eigen spreadsheet, toen ik nog een deel van mijn vermogen via Alex Vermogensbeheer belegde. In die tijd voerde ik wekelijks handmatig de waarde van mijn portefeuille daar in mijn spreadsheet in. Zoiets kun je natuurlijk ook doen voor Meesman in GnuCash. Wel gewoon een rekening en een Security aanmaken, en dan periodiek handmatig de koers invoeren in GnuCash.

Echte nerds bouwen dan natuurlijk zelf een API om de koersen van de website van Meesman te ‘schrapen’, en in te lezen in GnuCash. En ik hoorde ook dat de koersen van Meesman wel beschikbaar zouden zijn via Bloomberg. Dat kun je ook gebruiken in Finance::Quote. Maar ik heb dit niet zelf kunnen verifiëren, ik beleg niet via Meesman.

Wordt vervolgd…

Tot zover deel 1 van mijn inrichting van GnuCash voor mijn beleggingsportefeuille. Volgende week gaan we verder! Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash.

Hoe beheer jij jouw beleggingsportefeuille?

Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.