Blog over (financieel) bewust leven

Tag: grafieken

De 48 Excel-grafieken van Geldnerd

Nerd-alert! Regelmatig schrijf ik hier over mijn spreadsheets, onlangs publiceerde ik nog een nieuwe versie. Een beetje een uit de hand gelopen hobby. Hield ik eerst eenvoudigweg mijn uitgaven en mijn beleggingen bij, in de loop van de jaren is vrijwel al het handwerk weg geautomatiseerd. Rapportjes downloaden bij mijn bank en mijn aandelenbroker, op de knop drukken, en alles is weer bijgewerkt.

De spreadsheets zijn af?

Een paar jaar geleden dacht ik dan ook dat ze wel klaar waren, die spreadsheets. Maar niets is minder waar. Ik blijf dingen bijbouwen. Maar het karakter van de nieuwe bouwsels is wel veranderd. Steeds vaker gaat het om rapportjes en grafieken. Dingen die inzichtelijk maken hoe mijn financiële situatie zich ontwikkelt.

Zo heb ik inmiddels een collectie van bijna 50 verschillende grafieken verzameld, verdeeld over mijn verschillende spreadsheets. En daar was iets mee. Ik heb er nooit rekening mee gehouden dat de collectie zo groot zou worden. En de programmacode was dus een beetje inefficiënt. En zo rommelig dat ik er zelf geen wijs meer uit werd. De eerste grafieken waren bij elkaar geknipt en geplakt, omdat ik destijds zelf nog niet zo goed begreep hoe Excel die grafieken nou opbouwde. Inmiddels begrijp ik dat een stuk beter. Het werd er ook allemaal een beetje traag van. En ze zagen er allemaal net iets anders uit, er was geen consistente ‘huisstijl’ en kleurstelling, met allerlei kleine inconsistenties en onvolkomenheden. Het was dus eigenlijk gewoon tijd voor een grote verbouwing. Maar een grote verbouwing is ook een tijdrovende verbouwing. En daar zag ik een beetje tegenop.

En toen kwam de Corona-tijd. Ik weet niet hoe het jullie vergaat, maar na een week of 10 aan thuisquarantaine was ik wel even uitgelezen en snakte ik naar iets anders. En waren er een paar extralange weekenden. Waarin we niet echt weg konden / mochten. Een prima moment voor een extralange programmeerklus dus. Tijd voor de grote grafiekenschoonmaak…

Eerst denken dan bouwen

Voordat ik begon heb ik een analyse gemaakt van al mijn grafieken. Uiteraard in een grote spreadsheet. De naam, het soort grafiek, waar komt de data vandaan, hoe wordt de y-as samengesteld, wat zijn de dataseries, kenmerken als kleuren en lijndiktes, de berekeningen van minimum en maximumwaarden op de Y-as, de kenmerken van de assen, datalabels, dat soort dingen. In totaal 214 kenmerken per grafiek.

Gaande die analyse ontstond er een beeld. Ik heb zoveel mogelijk kenmerken verzameld die uniform waren (of dat zouden moeten zijn). Hoe de assen ingericht waren, en de ‘gridlines’ (de horizontale hulplijnen) in de grafiek. Maar ook het lettertype, en de lettergrootte en andere kenmerken van de astitels en eventuele legenda’s. Noem het maar de ‘huisstijl van mijn grafieken’. En daarmee ontstond er een nieuwe opzet voor de manier waarop ik grafieken programmeer. Niet meer met één heel grote en onoverzichtelijke routine, maar in brokken. Daar wordt het overzichtelijker van, en sneller.

Al mijn spreadsheet hebben een grafiekenpagina. Daar heb je een aantal keuzemogelijkheden. Je kunt bijvoorbeeld uit een lijstje de grafiek kiezen die je wilt zien. En bijvoorbeeld een periode kiezen of een begin- en einddatum instellen. Als ik dat doe en nu op mijn grafiekenpagina op de ‘Charts’ knop druk, dan wordt er eerst een Centrale Grafieken procedure aangeroepen. Die zorgt ervoor dat de gemaakte keuzes verwerkt worden, zo wordt bijvoorbeeld het begin- en eindpunt van de X-as berekend. Ook wordt de oude grafiek op de grafiekenpagina weggegooid en vervangen door een nieuwe, lege grafiek met alle uniforme stijlkenmerken. Vervolgens worden specifieke variabelen voor de grafiek verzameld, die her en der in de spreadsheets staan. En tenslotte wordt er een specifieke Grafiekprocedure aangeroepen, met alle variabelen.

Ook in die specifieke Grafiekprocedure vinden weer een aantal stappen plaats. De procedure begint met het instellen van een aantal specifieke parameters voor die grafiek. Het soort grafiek bijvoorbeeld, de titels, dat soort dingen. Daarna worden de X-as en de verschillende dataseries samengesteld. Als derde worden die dataseries in de grafiek geplaatst en krijgen ze hun kenmerken mee, zoals kleur. En tenslotte worden (indien nodig) datalabels aan de series toegevoegd. En voila, er staat een grafiek op mijn scherm. In een fractie van een seconde. Schematisch is het weergegeven in onderstaande figuur.

De Vermogens-Waterval

Een dag of drie programmeerwerk. Daarmee had ik alle 48 grafieken in mijn vier spreadsheets (administratie, beleggingen, hypotheek en dashboard) in deze nieuwe structuur gegoten. Ik ben er erg blij mee. Maar daarmee was ik er nog niet. Er stond namelijk al heeeeeel lang een specifieke grafiek op mijn wensenlijstje.

Deze.

Handmatig gegenereerd met de standaard waterval-grafiek in Excel

Een watervalgrafiek die me per kwartaal laat zien hoe de verschillende onderdelen van mijn vermogen veranderd zijn. Groen als er een stijging is, rood als er een daling is. En aan het eind een kolom die de netto stijging (of daling, dat komt ook voor) voor dat specifieke kwartaal laat zien. De brongegevens hiervoor zitten al jaren in mijn Dashboard-spreadsheet.

Sinds Office 2016 zit er standaard een watervalgrafiek in Excel, maar ik heb nog geen enkele manier gevonden om die rechtstreeks aan te spreken in Visual Basic. De macro-recorder laat me hier in de steek. Op de diverse fora waar ik de oplossingen voor mijn programmeerprobleempjes zoek las ik dat ze inderdaad (nog) geen onderdeel van het objectmodel van Excel zijn, en dat ze dus niet te programmeren zijn. De versie van het eerste kwartaal was dus handmatig samengesteld.

Maar ik vond ook deze beschrijving. Die een waterval stapsgewijs opbouwt met de hulp van een tijdelijke dataset en een standaard kolommengrafiek. Die ik allebei wel helemaal kan programmeren. En ik houd wel van een uitdaging. Dus ik ben aan de slag gegaan. Het kostte me anderhalve dag. Maar het is me gelukt. Met één druk op de knop verschijnt er nu mijn eigen geautomatiseerde waterval. Jij zult denken ‘boeiuh’, maar ik kan echt genieten van dit soort dingen!

Hetzelfde als de vorige, maar helemaal geautomatiseerd samengesteld

De Anonimiser

Veel grafieken gebruik ik ook hier op mijn blog. Maar ik wil niet altijd mijn cijfers delen. In het verleden bewerkte ik die grafieken dan met het grafisch bewerkingsprogramma GIMP zodat de cijfers onzichtbaar werden. Maar ook dat is nu volledig geautomatiseerd. Mijn grafiekenpagina’s hebben nu allemaal een Anonimiseer-knop. Die verbergt de bedragen met één druk op de knop (en laat ze met een nieuwe druk op de knop ook weer verschijnen). Het werkt voor bedragen op de Y-assen en verbergt ook datalabels. Alleen als het bedragen zijn, percentages mogen blijven staan. Daarna kan ik de grafiek meteen op mijn blog gebruiken. Ook hier dus geen handwerk meer.

De 48 grafieken

En nu zijn er dus 48 grafieken. Inmiddels al 49 met die waterval. Ook dat is een tussenstand, want ik heb nog wel wat meer ideetjes. Die ik in mijn nieuwe structuur makkelijker uit kan werken, dat dan weer wel. In de onlangs vernieuwde versie van de Financiële Administratie op mijn Downloads-pagina kun je zien hoe de grafieken en de Visual Basic programmacode eruit zien. En hieronder een bloemlezing van mijn vernieuwde grafieken… Allemaal één druk op de knop.

Bijt jij je ook wel eens helemaal vast in een volkomen nutteloos onderwerp?

Het financiële dashboard

Het is alweer een hele tijd geleden dat ik voor het laatst schreef over mijn wens om een integraal vermogensdashboard te ontwikkelen. Een rapportage die mij laat zien hoe ik er in totaal financieel voor sta. Het huis, de beleggingen, en al die andere financiële factoren. Informatie die in delen verstopt zit in mijn financiële spreadsheets waar ik eerder over schreef. Met een tekening die inmiddels alweer achterhaald is. Tegenwoordig heeft de hypotheek z’n eigen spreadsheet, inclusief allerlei grafieken en rapportages.

Mijn beleggingsspreadsheet heeft alle historie sinds de startdatum van mijn leven na de scheiding, dus sinds 1 januari 2013. Mijn administratiespreadsheet is per jaar. De hypotheekspreadsheet heeft de hele historie van onze hypotheek. Ik bouw formules in al mijn spreadsheets zo dat “datum” altijd een variabele is. Hiermee kan ik dus de stand van de betreffende waarde (bijvoorbeeld % aandelen en obligaties) op iedere gewenste datum reconstrueren.

Een aantal weken geleden werd mij in de reacties bij een blogpost gevraagd naar de stand van zaken rond mijn financiële dashboard. Daarom bij deze een uitgebreider bericht daarover.

Wat ik in mijn dashboard doe, is aan het eind van elk kwartaal de standen opnemen van alle variabelen die ik nodig heb om al mijn grafieken en rapportages samen te stellen. Dat kost elk kwartaal een minuut of 5. Ik heb dus voor elk jaar uiteindelijk 4 waarden in het dashboard staan: 31 maart, 30 juni, 30 september en 31 december. Die kwartaalstanden haal ik nu nog handmatig op, maar dat wil ik uiteindelijk wel automatiseren. Dus automatisch uit de beleggings- en administratiesheets laten halen. Maar dat ombouwen is iets voor een koud en stormachtig winterweekend, denk ik. Want behoorlijke klus.

Ik houd in het dashboard geen maandstanden bij, dat vind ik teveel focus op de korte termijn. Vroeger heb ik wel gewerkt met halfjaarlijkse of jaarlijkse standen, maar dat vind ik weer een te lange termijn. Uiteindelijk ben ik uitgekomen op kwartaalstanden, dat werkt voor mij het beste.

Al mijn grafieken en rapportages zijn geautomatiseerd. In mijn Dashboard spreadsheet zit bijvoorbeeld een pagina Grafieken. Daar kies ik de naam van de grafiek uit een lijst, ik kies een startkwartaal en een eindkwartaal, en de grafiek wordt ververst uit de dataset met kwartaalstanden. Ik heb zelfs een speciale ‘Anonimiseer’ knop ingebouwd. Die haalt de y-as weg zodat ik de grafiek meteen kan gebruiken op mijn blog. Ik publiceer geen grafieken waaruit de actuele hoogte van mijn vermogen af te leiden is, dat is niet relevant voor het verhaal dat ik wil vertellen. Ik heb ook een pagina Rapportages, die werkt vergelijkbaar. Ik kies bijvoorbeeld het rapport ‘Balans’, begin- en eindkwartaal, en de spreadsheet bouwt ‘m dynamisch op uit de dataset met kwartaalstanden.

Ik heb heel veel grafieken en dashboards van anderen bestudeerd. Iedereen doet het anders. Het is erg persoonlijk wat je belangrijk vindt en welke indicatoren je wilt volgen in de tijd. Het is ook persoonlijk of je dit maandelijks wilt doen, per kwartaal (zoals Geldnerd), per halfjaar, per jaar of nog anders. Dus ik weet nog niet of ik de spreadsheet met mijn dashboard ooit ga publiceren. Zoiets persoonlijks moet iedereen echt zelf bouwen, vind ik. Mijn grafiekencollectie wordt nog steeds uitgebreid, geïnspireerd door dingen die ik bij andere bloggers zie. Zo heb ik onlangs mijn eigen versie gebouwd van de hypotheekgrafiek van Geld-Is-Tijd. De mijne is gelukkig een stuk eenvoudiger, wij hebben maar één lineair hypotheekdeel en verder niets.

Onderstaand enkele voorbeelden van grafieken en rapportages in mijn Dashboard.

De bovenstaande grafiek komt sinds dit jaar terug in elke kwartaalrapportage. Je zite in één oogopslag per kwartaal de stand van mijn Eigen Vermogen, de kwartaalgroei en mijn spaarpercentage. Eigen vermogen en spaarpercentage zijn voor mij nog steeds de belangrijkste indicatoren.

Ik heb ‘m wel gebouwd maar kijk er zelden naar, omdat ik nog niet van plan ben om te stoppen met werken zodra dat kan. Per kwartaal zegt het niet alteveel, maar kijken naar stijgende lijntjes in grafieken is altijd leuk. Mijn percentage financiële onafhankelijkheid. Dat percentage bereken ik door te kijken naar mijn totale uitgaven in dat betreffende kwartaal (dus inkomen minus spaarpercentage). Daar zet ik tegenover mijn passieve inkomsten (met name dividendinkomen) plus mijn eigen vermogen maal de Safe Withdrawal Rate (SWR). Op dit moment reken ik met een SWR van 3,5%, maar ik kan het makkelijk veranderen op het Instellingen-werkblad van mijn Dashboard. Zodra het percentage de 100% passeert ben ik officieel Financieel Onafhankelijk. In de praktijk zal dat veel eerder zijn, ik hanteer het model van mijn FIRE Calculator en moet vooral de tijd tussen stoppen met werken en start van de pensioenbetalingen overbruggen.

In formulevorm ziet dat Percentage Financieel Onafhankelijk er als volgt uit:

Ook deze grafiek komt tegenwoordig regelmatig terug in mijn kwartaalrapportages. Dividend is een van de passieve inkomsten, dividendbelasting is een van de speerpunten van mijn beleggingsstrategie.

Een balans maak ik jaarlijks al sinds 2003. Eerst als ‘grapje’, toen Ex een keer zei dat we een erg bedrijfsmatige boekhouding voerden. Maar al snel realiseerde ik mij dat ook voor een huishouden een balans heel veel nuttige informatie geeft. Het eigen vermogen is niet voor niets een van de belangrijkste getalletjes aller tijden. Maar ook de ontwikkeling van je schuldenratio is een belangrijk gegeven om door de tijd heen te volgen, net als de verhouding tussen je verschillende vermogenscomponenten. Daar wil ik mijn dashboard de komende periode ook nog verder op uitbreiden. Dat is ook het leuke van een hobby als dit: het is nooit af!

Heb jij een financieel dashboard?

Nieuwe functies in de administratie: ING import

Mijn spreadsheets worden nog steeds verder uitgebreid. Al heb ik deze winter minder programmeertijd gehad dan gehoopt, het was erg druk op mijn werk en ik ben ook aan een opleiding begonnen. Maar toch zijn er weer de nodige dingetjes bijgebouwd. Dat gaat dan vooral om rapportages, want de basisfunctionaliteit is wel op orde. Vind ik tenminste.

Een tijdje geleden heb ik een actuele versie van mijn beleggingsspreadsheet gedeeld. En recent heb ik ook tijd kunnen maken voor de nieuwe versie van de FIRE Calculator. En mijn dashboard is nog volop in ontwikkeling. Maar vandaag is mijn administratiespreadsheet weer eens aan de beurt.

Er zijn allerlei kleine verbeteringen, maar vooral dus ook verschillende nieuwe grafieken. Zo kun je nu het maandelijkse spaarpercentage bekijken, en het saldo op je bankrekening door het jaar heen. Ook heb ik een functie gebouwd die laat zien hoeveel No Spend Days je in een maand hebt gehad. No Spend Days zijn dagen waarop je géén uitgaven hebt gedaan met je creditcard, contant geld, pinpas of contactloos. De No Spend Days functie werkt overigens alleen voor banken die de transactiecode meesturen. Rabobank doet dat bijvoorbeeld wel, ABN AMRO doet het niet.

Daarnaast ondersteunt mijn administratie nu ook het importeren van CSV-bestanden van de ING. Daarvoor ben ik veel dank verschuldigd aan lezer Kris, die de code voor eigen gebruik aangepast heeft (en dat is ook precies de bedoeling!) en zo vriendelijk was om de aangepaste code met mij te delen. Ik heb deze functionaliteit niet zelf kunnen testen, want ik heb geen voorbeeldbestand. Het kan dus zijn dat het nog niet vlekkeloos werkt. Als dat zo is, laat het me weten, dan zorg ik voor een verbeterde versie.

Kris deelde met mij ook de code voor het verwerken van een ABN AMRO Creditcard. Die zit ook in de VBA code (Sub ProcessCreditCardABN()), maar heb ik nog niet geactiveerd. Bij de ABN kun je de creditcardmutaties niet als een CSV of TXT-bestand downloaden. Wel als PDF file. En datzelfde probleem heb ik ook bij de Rabobank. Kris selecteert in de PDF de mutaties en plakt die dan via Notepad in een tabblad Data in Excel. En hier zie ik een nieuwe uitdaging, ik ga proberen om een VBA routine te maken die ook PDF-bestanden kan lezen.

Daarnaast heb ik een functie gebouwd om handmatig transacties met contant geld invoeren, via de knop Cash Transaction op het Dashboard. Ik betaal nu zo weinig met contant geld dat ik de app, die ik daarvoor op mijn smartphone heb, de deur uit doe. In 2019 heb ik nog geen enkele maal betaald met contant geld.

Ook kun je nu transacties splitsen, via de knop Split Transaction op het Dashboard. Dit werkt alleen als er transacties geiïmporteerd zijn op het werkblad Data, maar nog niet verplaatst zijn naar het werkblad Transactions. Ik gebruik dat bijvoorbeeld als ik salaris betaald krijg inclusief een declaratie, of als ik iets voorgeschoten heb maar nog een gedeelte van iemand terugbetaald krijg. Dat zijn dan dingen die naar twee verschillende grootboekrekeningen moeten, en dat doe ik door de transactie te splitsen in twee deeltransacties.

Je kunt de nieuwe versie van de administratiespreadsheet hier downloaden , of vinden op mijn ‘Downloads’ pagina.

Hoe houd jij jouw administratie bij?

De beleggingsspreadsheet

Een tijdje geleden heb ik mijn beleggingsspreadsheet volledig opnieuw gebouwd, ik schreef er al eens over. In de oude versie moest ik teveel handmatig doen. Dat had een groot risico op fouten. Zeker toen ik meer in buitenlandse fondsen (wisselkoersen!) ging beleggen en ik meer transacties uit ging voeren. De nieuwe spreadsheet is volledig geautomatiseerd. Ik druk op een knop om mijn wekelijkse rapportage van de ‘broker’ te importeren, en alles wordt automatisch verwerkt en doorgerekend. Voor aandelentransacties heb ik een transactiescherm gemaakt (een ‘Userform’ in Excel) waar ik alles invoer.

De kern van deze spreadsheet bestaat uit twee tabbladen. Op de ene kan ik grafieken bekijken met de koersen en waarde-ontwikkeling van al mijn fondsen en van de portefeuille als geheel. De andere bevat een (automatisch bijgewerkte) tabel, die mij voor de portefeuille en voor ieder afzonderlijk fonds in de portefeuille een aantal statistieken geeft. Deze is nog volop in ontwikkeling, Ik verander nog bijna elke week iets aan de statistieken. Het is nog even zoeken naar de juiste balans.

201511BeleggenCharts-Blur

201511BeleggenPivot3-Blur

Daarnaast heb ik een Dashboard tabblad. Hier zitten knoppen voor alle belangrijke functies in de sheet:

  1. Het invoeren en bewerken van nieuwe fondsen, aandelentransacties en cash transacties op mijn beleggingsrekening.
  2. Het importeren en verwerken van de wekelijkse rapportage van mijn broker.

Deze heb ik nog in twee stappen verdeeld, zodat ik eventueel handmatig in kan grijpen als er iets mis gaat.

Op het Dashboard staat ook een overzichtje met de belangrijkste Statistieken van mijn portefeuille, en de tabel voor mijn jaarrapportage. Die gegevens heb ik nodig voor mijn Meerjaren-sheet.

201511BeleggenDashboard-Blur

Op de andere tabbladen hoef ik nooit te kijken. Daar staan de wekelijkse koersen van al mijn fondsen opgeslagen, en alle aandelentransacties en kastransacties die met mijn beleggingen te maken hebben. Dat is de bron voor de berekeningen voor de Grafieken en de Tabel, die mij vertellen wat ik wil weten. Op dit moment bevat de spreadsheet alle data sinds 1 januari 2013.

Hoe houd jij je beleggingen in de gaten?

© 2020 Geldnerd.nl

Theme by Anders NorenUp ↑