Hoe we de berekeningen controleren
Alle cijfers op de site komen uit één rekenkern. We controleren die op drie manieren: met vaste testgevallen die met de hand zijn nagerekend, met een tweede berekening die los van de rekenkern is geschreven, en bij elke export tegen de cijfers van DEGIRO zelf.
De aantallen op deze pagina komen uit de controle die draait bij het bouwen van de site, op 2 oktober 2026, met de rekenregels van versie 2026.10.1.
Vaste testgevallen
Het regressiecorpus bevat 21 kleine, verzonnen exports, elk met een uitkomst die we met de hand hebben nagerekend: splits, een reverse split, fusies, een ISIN-wissel, shortposities, opties, dividend in dollars, beurstaks, een geldmarktfonds, een export die niet bij het begin begint, en meer. Samen 37 berekeningen, met en zonder Transactions.csv. Ze draaien bij elke wijziging aan de site; een wijziging die een uitkomst verandert, gaat pas door als we hebben uitgezocht waarom.
Een tweede, onafhankelijke berekening
De kerncijfers zijn een tweede keer uitgeschreven, alleen vanuit de methode op deze site en het datamodel, zonder de code van de rekenkern te lezen of te gebruiken. Waar het kan, rekent die tweede berekening anders: het rendement per jaar met een ander zoekalgoritme (de methode van Ridders in plaats van bisectie), de kas als gewone optelling in centen, de kostprijs met een eigen boekhouding voor long en short.
Beide berekeningen rekenen 250 willekeurig gemaakte exports door, elk met en zonder Transactions.csv: met producten in euro, dollar en Zwitserse frank, gedeeltelijke verkopen, transactiekosten, AutoFX, dividend met bronbelasting, aansluitingskosten, rente-inkomsten en opnames. Daarbij de 21 testgevallen en de voorbeeldportefeuille. Bedragen moeten op de cent gelijk zijn, rendementen tot op 0,0001 procentpunt.
Vergeleken worden: stortingen, opnames en netto ingelegd; gerealiseerd en ongerealiseerd resultaat; aantal, kostprijs en begindatum per positie; transactiekosten en AutoFX; dividend bruto en netto en de bronbelasting; overige kosten, beurstaks, belasting en rente; de kas per valuta en het saldo volgens DEGIRO; de eindwaarde, het totale resultaat en de rest van de brug; het rendement per jaar; de waarde per maand en het tijdgewogen rendement.
Uitkomst: 538 van de 538 berekeningen kwamen overeen.
Wat de tweede berekening vond
Bij de eerste vergelijking bleek de methodepagina op vijf punten niet precies genoeg. Daar rekende de rekenkern volgens een keuze die nergens stond; die keuzes staan nu op de methodepagina: de afronding per verkoop, per positie en per dag, stortingen en opnames per dag gesaldeerd, jaren van 365,25 dagen in het rendement per jaar, opties in het gerealiseerde resultaat, en de waarde in een maand zonder koers. Eén afwijking zat in de rekenkern zelf: Waarde door de tijd telde na een split, reverse split, fusie, stockdividend of spin-off nog het aantal stukken van daarvoor, en bij een fusie met geld ontbrak dat geld. Die hebben we vastgelegd als testgeval en opgelost; de versie van de rekenregels ging daarvoor omhoog.
Er staan geen afwijkingen in de rekenkern open.
Tegen de cijfers van DEGIRO
Bij elke export, ook die van jou, zet Controleer je cijfers onze optelling naast wat DEGIRO zelf rapporteert: de kas per valuta tegen de saldokolom van het rekeningoverzicht en de cash in Portfolio.csv, de aantallen per product en de waarde tegen Portfolio.csv, en de brug van inleg naar eindwaarde. Hoe dat werkt, staat op de methodepagina.
In de gegenereerde exports waren alle vier de controles groen in 500 van de 500 gevallen.
Versie van de rekenregels
De rekenregels hebben een eigen versienummer, nu 2026.10.1. Verandert een uitkomst door een wijziging in de rekenkern, dan gaat dat nummer omhoog en staat de wijziging op Wijzigingen. Een foutmelding vanuit de site bevat dat nummer, zodat we een melding aan de juiste rekenregels koppelen.
Van foutmelding naar testgeval
- Je meldt een cijfer dat niet klopt via . Een beschrijving van het cijfer en de regels eromheen is genoeg; het testgeval bevat nooit je eigen gegevens.
- We maken de kleinste verzonnen export die hetzelfde laat zien, met verzonnen namen, ISIN's en bedragen.
- We rekenen de juiste uitkomst met de hand na en leggen die vast als testgeval.
- Pas dan passen we de rekenkern aan, tot dat testgeval en alle andere kloppen. Verandert er een uitkomst, dan gaat de versie omhoog en komt het op Wijzigingen.
- Het testgeval blijft in het corpus, zodat dezelfde fout niet terugkomt.
Zelf narekenen
Het rekenvoorbeeld is de voorbeeldportefeuille van de site als spreadsheet: elke storting en opname per dag, de waarde nu, elk dividend met de ingehouden belasting, de kosten per order, de posities en de brug van inleg naar eindwaarde. De kerncijfers staan er als formule in, met daarnaast het getal dat de site toont. Het .xlsx-bestand opent met werkende formules in Excel en LibreOffice, ook in het Nederlands: de functienamen verschijnen in de taal van je programma. Het .csv-bestand bevat de kasstromen en kerncijfers zonder formules, met puntkomma's en decimale komma's, zoals Excel in het Nederlands het verwacht; in LibreOffice kies je bij het openen de puntkomma als scheidingsteken. Excel en LibreOffice rekenen XIRR met jaren van 365 dagen en wij met 365,25; daarom staat er een controle in het blad: met ons percentage komen de teruggerekende kasstromen op nul uit.
Wat dit niet is
Dit is geen externe audit en geen certificering. De testgevallen, de tweede berekening en deze pagina zijn van PortfolioSpiegel zelf. De tweede berekening is los van de rekenkern geschreven, maar vanuit dezelfde methode: een fout in de methode zelf vangt ze niet. Daarom staat de methode volledig op de site, en kun je het rekenvoorbeeld zelf narekenen.