Blog over Oracle BI ervaringen in de praktijk Blog over Oracle BI ervaringen in de praktijk
business-intelligence-bi

Blog BI: Even iets in de week leggen

Logo candran analytics

Alles te weten komen over BI & Analytics?

Cadran-analytics.nl is hier dé plek voor. Ontdek de mogelijkheden van Business Intelligence & Analytics tools om waardevolle inzichten te krijgen in uw data.

Recentelijk werd mij tijdens een Oracle BI project gevraagd naar een inzicht van de te verwachte goederen per week. De logistiek manager had dit inzicht nodig voor zijn operationele planning van bemensing in het magazijn en voor afspraken over bloktijden met de transporteurs.

Deze heldere vraag ging rap tot verduivelde details leiden en al snel was ik weer “die vervelende meneer, die alleen maar nare vragen stelde”.

Op de weg terug naar huis was ik zelf ook redelijk met stomheid geslagen. Dat iets ogenschijnlijk zo evident als deze eenvoudige vraag van een lijstje met gegevens per week zoveel stof zou doen opwaaien. Stof genoeg om een blog aan te wijden: De ene week is de andere niet…

Weken in de wereld

Een bedrijf, dat binnen Europa rapporteert, komt er nog wel mee weg, maar zodra een bedrijf globaal opereert, beginnen de verschillen in definitie. Over de wereld heen beginnen weken op andere dagen, variërend van zaterdag tot en met maandag. Dat betekent dat weeknummers hieraan onderhevig zijn.

En wat is week 1 eigenlijk? In Europa nemen we de eerste week met vier dagen in het nieuwe jaar als week 1. In Amerika is de week waarin 1 januari valt week 1.

En wat als 1 januari dan nog eigenlijk onder week 52 of soms 53 valt? Hoort 1 januari dan bij het vorige jaar?

Hoe zit dat eigenlijk met de overgang tussen maanden en kwartalen? Hoort bijvoorbeeld 1 april 2017 dan bij kwartaal 1 of is dat al kwartaal 2?

Weken in de wereld

 

 

Tijdshiërarchie en vergelijking vorige jaren

Ik heb jaren geleden tijdens een implementatie van Oracle BI hard mijn neus gestoten aan een dimensie Tijd met bijbehorende hiërarchie, waarin de klant vroeg om het weeknummer hierin op te nemen. De constructie was snel gefabriceerd.

Oracle BI - Even iets in de week leggen

En zo gaat het dus niet

Deze hiërarchie was prima te gebruiken voor drill-down. De gebruiker kon op elke laag klikken om zo via deze structuur af te zakken naar onderliggende niveaus. Het ging echter faliekant mis toen naast het feit Geleverde Hoeveelheid ook de kolom Vorig Jaar werd gezet. De cijfers gingen alle kanten op, maar niet de juiste. Ook wanneer vanuit dagen werd opgerold naar boven ging het scheef. De datum 2 april bleek soms opeens in maand 3 en kwartaal 1 terecht te komen.

Wat nu een open deur is, was destijds voor mij (en de klant waarbij deze implementatie speelde) een enorme aha-erlebnis.

Valkuil

De week bleek de valkuil en de boosdoener. Bij weken midden in een maand ging het nog wel, maar dat was eerder toeval te noemen. Weken op de rand van maanden en jaren gingen hopeloos scheef. Zo bleek week 13 in het ene jaar bij kwartaal 1 en bij het andere jaar bij kwartaal 2 te horen. Week 53 kwam het ene jaar wel en het andere jaar niet voor. De datum 1 januari was soms onderdeel van de laatste week van het voorgaande jaar. En waar zouden we in de illustratie rechts de datum 1 april 2017 toe rekenen? Tot week 13 en dus de maand maart? Probeer dat maar eens uit te leggen. Kortom: een wespennest was een feit.

De instinker kan ook ontstaan door werkweken van vijf dagen. Wordt de afgelopen werkweek met die van vorig jaar vergeleken, dan is het waarschijnlijk dat dan een periode wordt geselecteerd, waarin ook een weekend valt. Dan worden dus data van vijf werkdagen vergeleken met die van drie werkdagen in het jaar daarvoor…

Oraclle BI - Even iets in de week leggen

 

Hoe dan wel?

Wat is een week eigenlijk? Dit wil ook nog wel per bedrijf verschillen. Bij 24×7 productiebedrijven doet het weekend hier niet aan af. Bij bedrijven, die werkweken aanhouden, is de maandag tot en met de vrijdag het interessante tijdsvenster.

Het is natuurlijk wel degelijk mogelijk om een week als aggregatie te gebruiken. Ik som hieronder een aantal vuistregels op, die dit mogelijk maken en de valkuilen vermijden:

  • Stop Week nooit in de hiërarchie van de dimensie Tijd. Dit gaat nooit goed op.
  • Gebruik Week als attribuut in de dimensie Tijd om op te aggregeren, maar probeer hier nooit een kolom Vorig Jaar naast te zetten.
  • Uniformeer Week als over de wereld heen wordt gerapporteerd. Er zal een eenduidige definitie nodig zijn. Kies of voor Amerikaanse of voor Europese. Uniformeer start van de week (zondag of maandag) en uniformeer Week nummer 1.
  • Werk liever met de afgelopen zeven dagen als tijdsvenster. Dit levert een datum vanaf en een datum tot en met op. Dit is prima te vergelijken met dezelfde periode van vorig jaar. In beide vensters zullen waarschijnlijk 2 dagen weekend zitten, maar het levert een vergelijkbare dataset op. Neem dan voor lief dat er soms wel en soms niet een feestdag in zit.
  • Creëer desgewenst zogenoemde bins van periodes van 7 aansluitende dagen, of maak hier een formule van, en noem dat ‘weeknummers’. Zeker bij 24×7 bedrijven levert dit veel zinvoller informatie op. Gecombineerd met dagnaam of dagnummer in de week zijn prima inzichten te maken.
  • Bij eerder genoemde implementatie is onder meer een slimme dashboardprompt bedacht, die de afgelopen werkweek als default selecteert. De datums van vorige week maandag tot en met vorige week vrijdag worden hierdoor automatisch gefilterd.

Oracle BI - Even iets in de week leggen

En zo gaat het dus wel: Oracle BI – dimensie Tijd met een hiërarchie zonder de week, maar de week als attribuut.

Uiteraard heeft de bovengenoemde klant een dashboard in Oracle BI voor de leveringen bij klanten in de afgelopen weken gesommeerd per week. Op hetzelfde dashboard is een pagina met te verwachten verzendingen per week gemaakt (zie voorbeeld hieronder). Uiteraard is er ook een dashboard met de te verwachten goederenontvangsten in de komende week per uur van de dag. Deze weken zijn echter geüniformeerd naar Europese standaard. Met de leverancier wordt gecommuniceerd op gewenste leverdatum en nooit op gewenste week. De kans dat een bestelling geplaatst in Amerika dan namelijk een week eerder komt dan verwacht, is nu een voor de hand liggend verhaal geworden.

Oracle BI - Even iets in de week leggen

Oracle BI dashboard – te verwachten goederenontvangst