Voor een klant moest ik de netto doorlooptijd van processtappen berekenen. Hierbij rekening houdend met weekenden en werktijden. Een vooraf logische vraag die vast door meer organisaties gesteld is. Het voordeel van Tableau is dat er wereldwijd veel enthousiastelingen mee werken en er een actieve community is waar vragen gesteld kunnen worden. Ook deze vraag is gesteld in de community, maar niet volledig beantwoord.

Hierdoor moest ik zelf met een oplossing komen en aangezien deze vraag vaker voorkomt, wil ik dit graag met jullie delen.

Bruto doorlooptijd

De doorlooptijd van de verschillende processtappen bij de klant verschilt van enkele seconden tot meerdere dagen. Om een goed beeld te krijgen van de doorlooptijd en om bijvoorbeeld de gemiddelde doorlooptijd per processtap goed uit te kunnen rekenen, heb ik gekozen voor de tijdseenheid seconden. Deze kan ik eventueel later terugrekenen naar minuten, uren of dagen. (NB: naar een kleinere dimensie heeft geen zin, hierbij wordt altijd met afgeronde waarden gerekend. Bv: 1 uur is 60 minuten, maar 48 minuten is 0,8 uur.)

Het eerste deel van de calculatie, het berekenen van de bruto doorlooptijd, is relatief eenvoudig en zullen meerdere lezers bekend voorkomen. We maken gebruik van de DATEDIFF functie binnen Tableau:

DATEDIFF(‘second’, [start_date], [end_date])

Netto doorlooptijd dagen (excl. weekend)

Nu komt de uitdaging, het berekenen van de netto doorlooptijd. De DATEDIFF functie binnen Tableau kijkt naar het aantal tijdseenheden tussen de startdatum en de einddatum. Dus: indien ik het aantal dagen wil weten en het verschil tussen de startdatum en de einddatum is kleiner dan een dag, zal de waarde die terug komt 0 zijn. Dit ga ik nu in mijn voordeel gebruiken.

Om te beginnen wil ik van mijn bruto doorlooptijd de weekenden eraf halen. Een weekend komt alleen voor indien er een week voorbij is. Dit is natuurlijk een open deur, maar deze kennis helpt ons wel bij het volgende gedeelte van de berekening.

DATEDIFF(‘week’, [start_date], [end_date])

We krijgen nu een absoluut getal terug van het aantal weken (weeknummer end_date – weeknummer start_date). Dus indien de start- en einddatum in dezelfde week vallen is de uitkomst 0, indien het verschil 2 weken is (bv start week 35, eind week 37) is de uitkomst 2.

We krijgen nu het aantal weken terug, maar wij zien dat in onze calculatie als een weekend, elke week heeft immers een weekend. We moeten dit nu alleen nog vertalen naar de juiste tijdseenheid. Indien we de doorlooptijd willen berekenen in dagen is de calculatie als volgt:

(DATEDIFF(‘week’, [start_date], [end_date]))*2

Door dit van de bruto doorlooptijd af te halen rekenen we de netto doorlooptijd in werkdagen uit.

De calculatie voor de netto doorlooptijd in dagen, rekening houdend met het weekend, is als volgt:

We berekenen echter de doorlooptijd in seconden, dus moeten de uitkomst omrekenen naar het aantal seconden.

(DATEDIFF(‘week’, [start_date], [end_date]))*(2*24*60*60)

Netto doorlooptijd seconden (excl. weekend, incl. werktijden)

Wij berekenen de doorlooptijd in seconden en niet in dagen en moeten dus ook rekening houden met de werktijden. Wij passen nu eigenlijk dezelfde methode toe voor werktijden, zoals we dat ook gedaan hebben voor werkdagen.

De werktijden in dit voorbeeld lopen van 08.00 uur tot 18.00 uur. Met andere woorden, er wordt 10 uur op een dag gewerkt, dus 14 uur niet. Deze 14 uur moeten wij van de bruto doorlooptijd afhalen, maar alleen als de dag voorbij is.

Onderstaande calculatie geeft een absoluut getal terug voor het aantal dagen tussen start_date en end_date. Dus indien dit dezelfde dag betreft is de uitkomst 0, anders krijg je het aantal dagen.

DATEDIFF(‘day’, [start_date], [end_date])

Wij moeten bovenstaande calculatie nog ombouwen naar uren, we willen immers 14 uur van de bruto doorlooptijd afhalen. Daarnaast moeten we deze 14 uur ombouwen naar seconden, de tijdseenheid waarin we het verschil willen berekenen.

(DATEDIFF(‘day’, [start_date], [end_date]))*(14*60*60)

Om de netto doorlooptijd te berekenen in seconden, rekening houdend met weekenden en werktijden, moeten we de bovenstaande calculaties combineren. Er is echter nog een extra stap die we moeten zetten: de correctie voor dagen in het weekend. Zonder aanpassingen wordt er 14 uur in het weekend dubbel afgetrokken, zowel voor de DATEDIFF ‘day’ als voor de DATEDIFF ‘week’. Om dit te corrigeren passen we de calculatie aan voor het weekend. In plaats van 24 uur gaan we rekenen met 10 uur, de overige 14 uur worden eraf gehaald door de dag calculatie.

Dit ziet er dan als volgt uit:

Veel succes met het berekenen van netto doorlooptijden!

Wil je na het lezen zelf aan de slag met het berekenen van netto doorlooptijden in Tableau? Download de gratis Tableau trial of neem contact met ons op.