NAV, koers en vergoedingen
De engine die uitrekent wat alles waard is
Dit is het deel dat een spreadsheet met duizenden gekopieerde formules doet, zonder enige manier om ze te controleren. In FundFlow is het één berekening, in de database, in exacte decimale rekenkunde, over invoer die je kunt aanwijzen.
Geen creditcard nodig. Er wordt niets in rekening gebracht voordat je eerste 30 dagen voorbij zijn.
Wat de berekening precies doet
Elke maand dezelfde volgorde, per serie, per deelnemer. Er wordt niets afgerond voordat het moet.
Brutorendement op fondsniveau
Eindvermogen minus beginvermogen minus de nettomutaties, gedeeld door het beginvermogen. Stortingen die voor de maand zijn bevestigd tellen vanaf het begin van die maand, en dat is de conventie die een maandelijkse NAV-cyclus gebruikt.
Waarde na rendement, per belang
De beginwaarde van elke deelnemer groeit met het brutorendement voordat er een vergoeding af gaat, zodat de vergoeding over de winst wordt berekend en niet over de winst plus zichzelf.
Beheervergoeding
Het serietarief gedeeld door twaalf, over de waarde aan het begin van de maand. In basispunten op de serie ingesteld, nergens anders herhaald.
Performancevergoeding boven de high-water mark
Berekend over wat er na de beheervergoeding boven de mark van de deelnemer overblijft, tegen het serietarief. Is de mark niet gehaald, dan is er geen vergoeding.
Nieuwe high-water mark
De hoogste van de oude mark en de eindwaarde, per unit op het belang bewaard en meegenomen naar volgende maand.
Koers per serie
De som van de eindwaarden gedeeld door de uitstaande units. Nieuwe units worden tegen die koers uitgegeven, en dat maakt de instapkoers van volgende maand verdedigbaar.

Waarom het in de database draait
Exact decimaal, geen binaire drijvende komma
Een spreadsheettotaal van 99.994,26 wordt 99.994,26000000001 en die rest stapelt zich op in de kolom. Postgres NUMERIC kent dat artefact niet, en TypeScript rekent in dit product nooit met geld: het formatteert alleen.
Eén implementatie, geen duizenden kopieën
De waterval bestaat één keer en wordt identiek toegepast op elke deelnemer en serie. Er is geen regel waar iemand de formule één cel te ver heeft doorgetrokken.
Deterministisch en veilig te herhalen
De berekening leidt alles af uit opgeslagen invoer en overschrijft haar eigen uitkomst volledig. Opnieuw draaien op een open maand met dezelfde invoer kan geen ander antwoord geven.
Getest tegen een echte administratie
De engine heeft een testsuite op databaseniveau, inclusief golden-mastervergelijkingen: vaste invoer waarvan de verwachte uitkomsten tot op de cent tegen de eigen cijfers van een echt fonds zijn gelegd.
Verouderde uitkomsten worden gemarkeerd, niet bewaard
Wijzig je een saldo na het berekenen, dan wordt de periode gemarkeerd als opnieuw te berekenen in plaats van stil het antwoord van gisteren te tonen.
Elk bedrag bewaart zijn invoer
En juist daardoor kan elk getal op elk scherm een uitleg openen met de formule, de werkelijke invoer en de periode.
Waar dit echt over gaat
Bijna elk geschil in fondsadministratie is een meningsverschil over rekenwerk, en bijna elk daarvan komt uit de volgorde waarin is gerekend en niet uit de tarieven. Een performancefee vóór de beheerfee rekenen, of over een winst waar de fee zelf in zit, of tegen een high-water mark op fondsniveau in plaats van per houder: elk daarvan geeft een getal dat er goed uitziet en dat niet is. Geen van die fouten meldt zich.
De waterval bestaat hier één keer, loopt in de database, en wordt op elke serie en elke deelnemer identiek toegepast. Rekenen met geld gebeurt in exacte decimalen en niet in binaire floating point, dus een totaal bouwt geen restje op door de kolom. De berekening leidt alles af uit opgeslagen invoer en vervangt zijn eigen uitkomst volledig, en juist daardoor is opnieuw rekenen veilig: dezelfde invoer geeft elke keer hetzelfde antwoord, tot op de cent.
Vragen hierover
Waarom is het van belang dat het rekenwerk in de database gebeurt?
Om twee redenen. Postgres NUMERIC is exact decimaal, dus een totaal van 99.994,26 blijft 99.994,26 in plaats van 99.994,26000000001 te worden en verder op te lopen door de kolom. En de waterval bestaat als één implementatie in plaats van als duizenden gekopieerde cellen, dus er is geen regel waar iemand een formule één cel te ver heeft doorgetrokken. TypeScript rekent in dit product nooit met geld, het formatteert alleen.
Kan ik zien hoe een bepaald getal tot stand is gekomen?
Ja, voor elk berekend getal op elk scherm. Elk getal houdt zijn invoer en zijn formule vast, dus je kunt het openklappen en de cijfers zien die er echt in gingen en de periode waar ze bij horen. Datzelfde maakt de engine toetsbaar: er hoort een testsuite op databaseniveau bij, met golden-mastervergelijkingen tegen de eigen cijfers van een echt fonds.
De rest van het product
Elk onderdeel van FundFlow werkt op dezelfde maandcyclus. Dit zijn de aangrenzende delen.
Reken het na op je eigen maand
Anker een fonds op de laatste maand die je met de hand afsloot, sluit de volgende in beide af en vergelijk. Dat is de enige proef die telt.
In je eerste sessie
- Maak een fonds aan en zet elke serie op met de echte beheer- en performancetarieven.
- Anker een openingspositie met de units van iedere deelnemer en hun huidige high-water mark.
- Sluit een maand hier en met de hand af, en vergelijk daarna de koers, beide feeregels en elke nieuwe mark.
Geen creditcard nodig. Er wordt niets in rekening gebracht voordat je eerste 30 dagen voorbij zijn.