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.

Profijtbeginsel

Een tijdje geleden bij een flesje wijn (of eigenlijk: na een flesje wijn…) poneerde Vriendin de stelling dat zij veel meer profijt heeft van onze relatie dan dat ik heb. Uiteraard liet ik daarbij de nodige protesten horen, maar ze had wel overtuigende argumenten:

  • Ze verwacht dat er vanuit mijn familie ooit een hogere erfenis komt dan vanuit de hare. Ik wil overigens helemaal geen erfenis, en ik houd er in mijn financiële plannen al helemaal geen rekening mee!
  • Mijn beleggingsrendement is beter dan het hare, omdat ik meer beleg en meer risico durf te nemen.
  • Ik speel mee in de Staatsloterij, en zij niet. Daardoor is er bij mij een hele kleine kans dat ik erg rijk word, bij haar is die kans nog veel kleiner dan bij mij. Want zij speelt niet mee. Al heeft ze onlangs, toen de jackpot op recordhoogte stond, wel een lot gekocht. ‘Dan zul je zien dat zij wint, en ik (die al decennia meedoet) niet’, dacht ik nog. Maar helaas…
  • En ik ga eerder dood. Want ik ben man en meer dan 6 jaar ouder dan Vriendin is.

Statistisch gezien vijf overtuigende redenen waarom zij (potentieel) meer profijt heeft van onze relatie dan ik heb, toch? In het Verre Warme Land was het overigens omgekeerd. Daar heb ik meegeprofiteerd van haar hogere (Nederlandse) inkomen, terwijl ik zelf een lager (lokaal) inkomen had. Vriendin heeft uitgerekend dat we in dit opzicht na 4 jaar in Nederland weer gelijk staan, dat is dus ergens medio 2020.

Hoe zit het met het profijt in jouw relatie?