DATA VOLWASSENHEID
Beschrijver
WAT VINDT DE ONDERNEMER?
5/5
SECTOR
Merford is een leverancier voor geluidsdichte materialen en ruimtes. Een groter project bestaat hier bijvoorbeeld uit het geluidsdicht maken van een grote industriële machine of productielijn. Deze projecten verschillen in grootte, zowel qua prijs als in tijd. Het is lastig om van tevoren in te schatten wat de winstmarge van deze projecten gaat zijn, omdat de kosten afhankelijk zijn van verschillende factoren. Hierdoor kan het zijn dat een project een lagere winstmarge heeft dan vooraf werd verwacht. Wij zijn aan de slag gegaan met een model dat de uiteindelijke marge op een project voorspelt. Door een Early Warning System te maken kan Merford direct ancitperen en worden onvoorziene kosten beperkt.
Het is een use case die voor veel bedrijven misschien bekend klinkt. Hoe kun je van te voren zo nauwkeurig mogelijk het budget en de marge op een project bepalen? Merford wil graag meer grip op het verloop van deze projecten en daarmee ook op de bijkomende kosten. Door hun grote diversiteit aan geluidsoplossingen, verschillende veiligheidsprocedures en risico’s door verschillende uitvoering- en montageomstandigheden is er geen standaard procedure waarop een project verloopt. Hierdoor kunnen de kosten hoger uitvallen dan verwacht, wat leidt tot een lagere marge op het project. De faalkans is altijd aanwezig en een fout kan enkele tonnen verlies veroorzaken. Het is dus noodzaak om dit ten alle tijden te voorkomen.
Momenteel houden projectleiders en financial controlers al overzicht op deze kosten, maar toch is er ruimte voor verbetering. De verslaglegging is nu vaak achteraf, waardoor je niet meer kunt ingrijpen. Ook zijn de prognoses van de projectleiders hoe een project zal verlopen subjectief, wat voor een vertekend beeld kan zorgen. Merford wil graag tijdens de uitvoering van het project op de hoogte blijven van de (verwachte) uitgaves en een signaal krijgen zodra een project dreigt te mislukken of duurder uit lijkt te vallen dan in eerste instantie werd gedacht. Door deze financiële risico’s tijdig in kaart te brengen, kan er waar nodig worden bijgestuurd om uiteindelijk grote onvoorziene kostenposten te voorkomen.
DATA VOLWASSENHEID
WAT VINDT DE ONDERNEMER?
Uiteindelijk hebben we voor Merford een dynamische koppeling gemaakt tussen een Python script en de SQL Database van Merford. Deze berekent automatisch iedere week een nieuwe voorspelling voor de marges voor de projecten en plaatst deze direct in de SQL Database. In totaal zijn er 4 projecten voor nodig geweest om tot dit resultaat te komen, welke hieronder stapsgewijs zijn uitgewerkt.
Een eerste stap in het voorspellen van de marge op projecten, is kijken naar de factoren die de kosten beïnvloeden. Hiervoor beginnen we met een data analyse om de verschillende databronnen en de kwaliteit hiervan in kaart te brengen. De kwaliteit leek op het eerste oog goed, maar zodra we ons gingen verdiepen bleek dat er geen consistent startmoment voor een volgende fase werd genoteerd, welke van invloed zijn op de uiteindelijke kosten per fase. Als resultaat van dit project is er een rapportage gemaakt die de bevindingen uit de data beschrijft. Ook is er een simpel Linear Regressie model in Python gemaakt welke de marge voorspelt per project, maar dit model is nog niet optimaal.
Tijdens het tweede project hebben we een verbeterslag gemaakt op het model van het eerste project. Hiermee hebben we een Linear Regressie model kunnen maken wat met 72% nauwkeurigheid de verwachte marge per project kan voorspellen. Vervolgens hebben we toegewerkt naar bruikbare een proof of concept waarbij Merford met een druk op de knop het Python script kan uitvoeren en een Excel bestand krijgt met de verwachte marges per project. Voor deze proof of concept hebben ze geen enkele kennis van Python nodig, maar krijgen ze wel al eerste inzichten die uitschieters in de kosten kunnen signaleren!
Het bestaande Lineare Regressie model kijkt naar verschillende factoren over het hele project en probeert daarmee de uiteindelijke marge over het hele project te voorspellen. Echter is het voor Merford interssant om te weten of het mogelijk is om per verschillende fase (ontwerpen, assemblage, engeneering, etc) ook de marge te voorspellen. Op die manier kunnen ze per fase controleren of het project buiten het budget gaat of niet, en daar tijdens het project al op anticiperen. In plaats van vooraf gedefinieerde fases kunnen we ook kijken of het mogelijk is om de marges te voorspellen per verschillende tijdseenheden, bijv. op 10% van de verwachte doorlooptijd. Helaas bracht het verder specificeren van het model niets op, waardoor we met het vorige algemene model zijn doorgegaan.
We hebben een werkend Linear Regressie model gemaakt, nu is het de kunst om deze ook werkend te krijgen zodat Merford zonder al te veel moeite de voorspelde marges kan achterhalen. Hiervoor hebben we een Windows Task Scheduler aangemaakt die automatisch het Python script uitvoert om nieuwe voorspellingen te maken. Deze voorspellingen worden gelijk in de SQL database verwerkt.
Doordat er met ieder project ook weer nieuwe data vrijkomt, hebben we ervoor gezorgd dat het model één keer in de maand update met deze nieuwe data. Om ervoor te zorgen dat het Python script makkelijk draait op de SQL server hebben we met Docker een “pakketje” gemaakt welke in zijn geheel op de server gezet kan worden. Dit maakt het installeren makkelijker. Om al deze kennis te waarborgen is er ook een Github account aangemaakt die de verschillende versies van de applicatie beheert.
Toen Joost tijdens de workshop tegen ons zei dat hij graag een Early Warning System wilde, moesten wij aan hem uitleggen dat we hier naar toe kunnen werken, maar niet in één project. Door het project op te knippen in verschillende sprints met duidelijke einddoelen, is het ons uiteindelijk wel gelukt om de lange termijn ambitie te realiseren.
Super leuk dat je bij ons lustrum aanwezig bent!
De inloop is vanaf 15:00 en om 15:30 zullen we beginnen met het programma.