Persoonlijke demo

  • Dit veld is bedoeld voor validatiedoeleinden en moet niet worden gewijzigd.
18-11-2021

Harmony engine

Nummers. Ze zijn overal. Maar cijfers betekenen niet veel zonder te weten waar ze voor staan. Met 20.000 op je bankrekening… zijn dat euro’s of Japanse yen? Met het eerste kan je een kleine auto kopen, de tweede een diner voor twee. De eenheid van een hoeveelheid, in dit geval de valuta, is een belangrijk detail.

Je weet vaak wat de cijfers betekenen als je ze in een bepaalde context bekijkt, bijvoorbeeld je bankrekening. Maar wat als deze cijfers het resultaat zijn van een complexe berekening op een diverse dataset, laten we zeggen het valutarisico van een beleggingsportefeuille? Hoe weet je absoluut zeker dat de cijfers en berekeningen kloppen?

De meeste softwaretoepassingen, databases en programmeertalen hebben geen begrip van meeteenheden. Dit omvat Excel en andere softwaretoepassingen die veel worden gebruikt in de financiële sector. Ze behandelen hoeveelheden als gewone getallen zonder enige betekenis. Dit betekent dat tools zoals Excel eenvoudig getallen zullen optellen en vermenigvuldigen, zelfs als die bewerkingen onnozel zijn.

Probeer het maar eens. Open Excel en voer een willekeurig getal in twee cellen in. Formatteer het eerste getal als euro en het andere als Amerikaanse dollar. Voeg vervolgens in een derde cel die twee getallen bij elkaar.

excel-

Excel zal de getallen graag bij elkaar optellen en zelfs ‘intelligent’ het resultaat weergeven als euro of Amerikaanse dollar, afhankelijk van naar welk veld als eerste in de formule werd verwezen. Maar zo werkt wiskunde niet!

Fouten zijn onvermijdelijk

Grote bedrijven die miljarden activa beheren, draaien op systemen die niet eens de basisregels van de wiskunde begrijpen. Natuurlijk hebben ze allerlei processen, controles en audits om fouten te beperken, maar deze zijn vaak duur en tijdrovend. Dit zijn menselijke controles en mensen hebben de neiging om van tijd tot tijd fouten te maken. En die mensen gebruiken dezelfde soort fundamenteel gebrekkige software om hun controles uit te voeren.

Enge dingen.

Toen we begonnen met het bouwen van Alloq, wilden we de processen voor allocatie management robuuster en sneller maken. Onderdeel daarvan is het faciliteren van de menselijke kant van het proces. Tegelijkertijd wilden we ook het hierboven geïllustreerde fundamentele probleem aanpakken; we wilden software maken die de wiskunde goed kan doen. Daarom hebben we iteratief de Harmony-engine gebouwd die de kern vormt van de berekeningen die in Alloq worden uitgevoerd.

De Harmony engine van Alloq begrijpt eenheden en houdt daar bij elke wiskundige bewerking rekening mee. De initiële dataset wordt geladen, samen met eenheden die aangeven wat elke hoeveelheid betekent. Daarna geven we een reeks berekeningen door aan Harmony om uit te voeren. Aan de uitkomsten worden automatisch de juiste eenheden toegewezen.

De cijfers liegen niet

Toen ik met de Harmony-engine bezig was om het valutarisico van een pensioenfonds te berekenen, hebben deze functies me behoorlijk wat tijd bespaard. Ik ben ook maar een mens, dus ik heb een paar fouten gemaakt bij het opzetten van de berekeningen.

Op een gegeven moment zag ik een waarde die werd aangegeven in USD²/EUR. Hierdoor realiseerde ik me dat ik iets verkeerd deed met de EUR-USD-wisselkoers. Ik wilde Amerikaanse dollars omrekenen naar euro’s en in plaats van te delen door de EUR-USD-koers (die een eenheid heeft van USD/EUR, of ‘USD per EUR’) heb ik vermenigvuldigd met de wisselkoers: USD × USD/EUR = USD²/ EUR. Ik realiseerde me meteen mijn fout toen ik deze onverwachte uitkomst zag. Met het inzicht kon ik vlot de formule aanpassen om deling te gebruiken: USD / (USD/EUR) = EUR.

Kort daarna zag ik een bedrag in euro’s op het scherm terwijl ik een percentage (een eenheidsloze hoeveelheid) van een andere formule verwachtte. In dit geval heb ik gewoon de verkeerde variabele geselecteerd om weer te geven en deze met een paar toetsaanslagen gecorrigeerd.

Dankzij de gedetailleerde output van de Harmony-engine kon ik beide fouten in minder dan een minuut opsporen, lokaliseren en corrigeren. In andere tools, zoals Excel, kan het uren of dagen duren voordat je merkt dat er iets mis is met het resultaat. In dit specifieke voorbeeld met waarden zoals de EUR-USD- of EUR-GBP-wisselkoersen, zou de fout zelfs nog langer onopgemerkt kunnen blijven. Dat komt omdat deze tarieven relatief dicht bij één liggen, dus deling of vermenigvuldiging geeft resultaten die ongeveer in dezelfde marge liggen.

Samengevatte conclusie

De Harmony-engine begrijpt de betekenis van de getallen in uw gegevens en houdt zich aan de regels van de wiskunde, iets wat de meeste software niet doet. Dit heeft een aantal krachtige voordelen:

1. De uitkomsten worden weergegeven in de juiste eenheden, wat helpt bij een eerste verificatie van de resultaten. Als er wordt gewerkt met invoer in euro’s en een uitkomst in Amerikaanse dollars verwacht door wisselkoersen toe te passen, weet je dat er iets mis is als de gerapporteerde uitkomst nog steeds in euro’s wordt weergegeven.

2. Het bovenstaande Excel-voorbeeld waarbij twee bedragen in verschillende valuta worden opgeteld, werkt gewoon niet. Als Harmony de opdracht krijgt om twee getallen met verschillende eenheden op te tellen of af te trekken, stopt het onmiddellijk om onjuiste resultaten te voorkomen. Een fout als deze houdt in dat er een fundamentele fout in de rekenregels zit.

3. Bovendien geeft Harmony een foutmelding terug met precies de specifieke berekening waar het mis gaat. Dat maakt het opsporen van de oorzaak stukken makkelijker. Zelfs zonder input data kan Harmony dimensionale analyse op de berekeningen uitvoeren om fouten te detecteren en het type uitkomst af te leiden.

4. Alle tussenliggende rekenstappen zijn beschikbaar in Alloq, zodat je alle getallen kunt herleiden tot aan de initieel ingeladen data. Controles en audits worden zo een stuk makkelijker omdat Alloq geen black box is.

Wij zijn van mening dat Alloq als oplossing voor vermogensbeheer van binnenuit correct moet zijn. Daarom hebben we de Harmony-engine ontwikkeld; we willen erop kunnen vertrouwen dat elke berekening wiskundig klopt en dat elke uitkomst correct is.