De Qlik Cloud Discovery Agent – Deel 2: Insight triggers die echt werken

In deel 1 van deze serie hebben we behandeld wat de Discovery Agent is en hoe je jouw omgeving gereedmaakt. Nu de beheerdersinstellingen zijn gedaan en de juiste rechten zijn ingesteld, is de volgende stap aan de applicatieontwikkelaar: het aanmaken van insight triggers. Dit is waar de Discovery Agent van potentieel naar praktijk gaat.

Een insight trigger is de instructie die je de Discovery Agent geeft: monitor deze meetwaarde, over deze tijddimensie, en vertel me wanneer er iets interessants gebeurt. Doe je dit goed, dan ontvangen je gebruikers na elke verversing oprechte, nuttige inzichten in hun feed. Doe je het verkeerd, dan zien ze helemaal niets, of erger: een stroom meldingen die ze al snel leren negeren.

In dit blog behandelen we alles wat je moet weten om goed werkende insight triggers aan te maken: de vier componenten, de acht insight types, de datavolumevoorwaarden en de valkuilen waar de meeste mensen tegenaan lopen. 

Waar maak je insight triggers aan? 

Insight triggers worden direct in een Qlik-applicatie aangemaakt en beheerd, op een sheet in bewerk- of analysemodus. Je hoeft de applicatie niet te verlaten of naar een apart beheerdersinterface te navigeren. Het insight trigger-paneel is toegankelijk via de sheet toolbar, mits je de juiste rechten hebt. 


Een applicatie kan maximaal 50 insight triggers hebben (actief en inactief samen). Voor de gehele tenant geldt een maximum van 200 insight triggers. Houd dit in gedachten bij het plannen van welke applicaties en meetwaardes je als eerste wilt instrumenteren. 

De vier componenten van een insight trigger 

Elke insight trigger bestaat uit vier componenten. Twee van die componenten zijn verplicht, twee optioneel. Hieronder leggen we ze alle vier uit. 

  • De tijddimensie is het datum- of timestampveld dat de Discovery Agent gebruikt om bij te houden hoe je measure in de loop van de tijd verandert. Het is de ruggengraat van elke trigger. Er zijn twee strikte eisen voor dit veld. Ten eerste moet het echte datum- of timestampwaarden bevatten, geen tekstreeksen die op datums lijken. Als je load script een datumveld als platte tekst laadt in plaats van met een datumfunctie, kan de Discovery Agent het niet gebruiken. Ten tweede worden master dimensions niet ondersteund als tijddimensie. Je moet een veld rechtstreeks uit het datamodel selecteren, ook als datzelfde veld elders in de app onderdeel is van een of meer master dimensions.
  • De measure is de meetwaarde die de Discovery Agent monitort. Dit kan een master measure zijn die in de applicatie is gedefinieerd, of een inline-aggregatie op basis van een veld in het datamodel. Veelgebruikte voorbeelden zijn Sum(Sales), Sum(Margin), Count(Orders) of Sum(Cost). Als je een master measure gebruikt, past de Discovery Agent die toe zoals gedefinieerd, inclusief eventuele set-analyse of complexe expressies. Als je een inline-aggregatie definieert, houd het dan eenvoudig. Zeer complexe expressies kunnen zich onvoorspelbaar gedragen in de context van inzichtberekeningen. 
  • Een breakdown dimension instrueert de Discovery Agent om inzichten niet alleen voor de measure als geheel te berekenen, maar ook afzonderlijk voor de waarden binnen een dimensie. In plaats van alleen de totale omzet te monitoren, kun je bijvoorbeeld de omzet per productcategorie, per verkoopgebied of per accountmanager monitoren. Je kunt per trigger maximaal 3 breakdown dimensions toevoegen, en elke breakdown dimension kan maximaal 50 waarden bevatten. De totale measure over alle waarden wordt altijd berekend naast de berekeningen per waarde, zodat je het geaggregeerde beeld niet verliest door een breakdown toe te voegen. Bij het configureren van een breakdown dimension heb je vier opties voor welke waarden je wilt opnemen: 
    • Values: selecteer handmatig de specifieke waarden die je wilt volgen 
    • Search: neem waarden op op basis van een tekstpatroon 
    • Condition: neem waarden op waarbij de bijbehorende meetwaarde aan een voorwaarde voldoet, bijvoorbeeld alleen categorieën met een omzet boven een bepaalde drempelwaarde 
    • Top/bottom: neem alleen de N hoogste of laagste waarden op op basis van hun meetwaarde 

    Als je een breakdown dimension toevoegt maar geen specifieke waarden selecteert, gebruikt de Discovery Agent de eerste 50 waarden in de dimensie. Dat is vaak prima voor kleine dimensies, maar voor een dimensie met honderden waarden kan dit onverwachte resultaten opleveren. Wees expliciet over welke waarden er toe doen.

De acht insight types 

Elk insight type gebruikt een ander algoritme en is geschikt voor een andere analytische vraag. Als je begrijpt hoe elk type werkt, kun je voor elke meetwaarde de juiste keuze maken. 

Spike detection (Spikes up / Spikes down) 

Spike detection zoekt naar afzonderlijke datapunten die sterk afwijken van het omliggende patroon en daarna terugkeren naar normaal. Het sleutelwoord is tijdelijk: een spike is een eenmalige uitbijter, niet het begin van een aanhoudende verandering. 

Achter de schermen stelt de Discovery Agent een dynamische baseline vast op basis van de historische data en berekent hoeveel variatie normaal is voor deze meetwaarde. Een datapunt moet significant buiten dat verwachte bereik vallen om als spike te kwalificeren. De drempelwaarde is adaptief in plaats van vast, wat betekent dat het algoritme zich aanpast aan de natuurlijke volatiliteit van de meetwaarde. Een measure die normaal gesproken week-op-week met 20% schommelt, moet veel dramatischer bewegen om een spike-inzicht te activeren dan een measure die doorgaans erg stabiel is. 

De minimale datavereiste is slechts 4 datapunten voor wekelijkse en grovere aggregaties, en 7 voor dagelijkse. De relatief lage drempel weerspiegelt het feit dat spike detection gaat over het vergelijken van afzonderlijke punten met het lokale patroon, niet over het fitten van een complex model over een lange geschiedenis. Dit maakt spike detection het beste startpunt als je werkt met een dataset die nog niet veel maanden aan historie heeft. 

Gebruik Spikes up en Spikes down voor meetwaardes die over het algemeen stabiel zijn maar gevoelig voor incidentele uitbijters, zoals foutpercentages, retouren of belvolumes. 

Record high / Record low 

Deze twee types zijn conceptueel het eenvoudigst: ze controleren of het meest recente datapunt de hoogste of laagste waarde ooit is in de beschikbare historie. Er is geen statistisch model nodig, en dat verklaart waarom de minimale datavereiste even laag is als bij spike detection: 4 datapunten voor niet-dagelijkse aggregaties en 7 voor dagelijkse. 

Het inzicht is eenvoudig: je omzet vorige maand was de hoogste in de dataset. Gebruik deze types voor meetwaardes waarbij records betekenisvol zijn, zoals omzet, aantal klanten of verkochte eenheden. 

Change in trend 

Dit type zoekt naar een significante verschuiving in de richting of helling van de meetwaarde in de loop van de tijd. Het wordt niet geactiveerd door een enkel slecht datapunt of een tijdelijke spike; het zoekt het moment waarop de koers van de meetwaarde verandert. Een meetwaarde die langzaam daalde begint te stijgen. Groei die versnelde begint af te vlakken. 

Om een betekenisvolle trendwijziging te detecteren heeft het algoritme voldoende historie nodig om te bepalem hoe de trend er voor de wijziging uitzag. Daarom vereist change in trend minimaal 20 datapunten, ongeacht de aggregatieperiode. Voor maandelijkse data is dat bijna twee jaar aan historie. Voor wekelijkse data is het ongeveer vijf maanden. Als je dit type inschakelt op een dataset met te weinig datapunten, kan het algoritme een echte trendwijziging niet onderscheiden van normale schommeling, en worden er geen inzichten gegenereerd. 

Gebruik dit type voor strategische KPI’s waarbij de richting belangrijker is dan afzonderlijke datapunten, zoals marktaandeel, net promotor score of personeelsverloop. 

Change in baseline (New baseline) 

Waar change in trend een richtingswijziging detecteert, detecteert change in baseline een aanhoudende verschuiving in het gemiddelde niveau van de meetwaarde. Zie het als een meetwaarde die een nieuwe normaal vindt. Je gemiddelde dagelijkse orderaantal lag zes maanden lang consistent rond de 500 en stabiliseerde na een productlancering op een nieuw gemiddelde van 650. Die structurele verschuiving is wat dit type signaleert. 

Het algoritme vergelijkt recente waarden met het gevestigde historische gemiddelde en bepaalt of het verschil groot genoeg is, en aanhoudend genoeg, om een echte nieuwe baseline te vertegenwoordigen in plaats van tijdelijke ruis. Net als change in trend vereist dit type 20 datapunten, omdat het nauwkeurig karakteriseren van de oude baseline voldoende historie vereist. 

Gebruik dit type voor operationele meetwaardes waarbij het normale bereik zelf het belangrijkst is, zoals gemiddelde afhandeltijd, basisconversieratio of gemiddelde orderwaarde. 

Above model / Below model 

Deze twee types zijn het meest geavanceerd. In plaats van waarden te vergelijken met een eenvoudig historisch gemiddelde, bouwt de Discovery Agent een voorspellend model op basis van de historische data en evalueert of de werkelijke waarden significant hoger of lager uitvallen dan de voorspelling van dat model. 

Het model houdt rekening met patronen in de data, waaronder onderliggende trends en terugkerende cycli, bij het genereren van voorspellingen. Dit maakt above model en below model bijzonder waardevol voor meetwaardes met seizoensgedrag. Een spike detection-algoritme zou een piek in de detailhandelsomzet in december als afwijkend kunnen markeren zonder te beseffen dat december altijd hoog is. Een modelgebaseerde aanpak verwerkt dat seizoenspatroon in de voorspelling en activeert alleen een inzicht als december uitzonderlijk hoog is, zelfs voor december-begrippen. 

De minimale datavereiste is 4 datapunten voor niet-dagelijkse aggregaties en 7 voor dagelijkse, hetzelfde als spike detection. Het model kan worden gebouwd op basis van een relatief kleine hoeveelheid data, maar meer historie levert uiteraard betere voorspellingen op. Als je data een sterk seizoenscomponent heeft en je merkt dat spike detection te veel ruis produceert, is overstappen op above/below model de logische volgende stap. 

Datavolume vereisten in een oogopslag 

Voordat je je eerste trigger aanmaakt, is het de moeite waard de minimale datavereisten te begrijpen. Een trigger aanmaken op een meetwaarde met onvoldoende data geeft geen foutmelding, maar er worden ook nooit inzichten gegenereerd. Dat kan lastig te diagnosticeren zijn als je niet weet waar je op moet letten. 

Insight type Aggregatieperiode  Minimum datapunten  Maximum datapunten 
Spike detection Jaar, kwartaal, maand, week  4 50
Spike detection Dag  7 365
Record high of record low  Jaar, kwartaal, maand, week  4 50
Record high of record low  Dag  7 365
Change in trend  Jaar, kwartaal, maand, week  20 50
Change in trend  Dag  20 365
Change in baseline  Jaar, kwartaal, maand, week  20 50
Change in baseline  Dag  20 365
Above model of below model  Jaar, kwartaal, maand, week  4 50
Above model of below model  Dag  7 365

 

Wanneer worden inzichten gegenereerd? 

De Discovery Agent evalueert insight triggers maximaal eenmaal per dag, telkens wanneer de applicatiedata verandert als gevolg van een verversing. Als een applicatie meerdere keren per dag wordt ververst, activeert alleen de eerste verversing van die dag de inzichtevaluatie. 

Er is een belangrijk onderscheid tussen de eerste evaluatie en alle daaropvolgende: 

  • Eerste evaluatie: wanneer je een trigger aanmaakt en de data voor de eerste keer wordt bijgewerkt, worden inzichten berekend over de afgelopen zeven datapunten. Voor een dagelijkse trigger zijn dat zeven dagen; voor een maandelijkse trigger zijn dat zeven maanden. Historische data buiten die zeven punten kan als analytische context worden gebruikt, maar inzichten worden alleen gegenereerd voor de meest recente zeven. 
  • Volgende evaluaties: na die eerste update kijkt de Discovery Agent alleen naar datapunten die nieuw zijn sinds de laatste evaluatie. Als je dagelijks ververst, genereert elke dagelijkse verversing alleen inzichten voor de nieuwe data van die dag. 

Dit heeft een praktische implicatie: als je vandaag een trigger aanmaakt op een applicatie die al jaren draait, zien je gebruikers niet meteen een achterstand aan historische inzichten. Ze zien inzichten voor de afgelopen zeven datapunten, en daarna verschijnen nieuwe inzichten naarmate er verse data binnenkomt. 

Nog een timing-detail dat het waard is te kennen: huidige en toekomstige tijdsperioden worden altijd uitgesloten van inzichtberekeningen. Een maandelijkse trigger genereert geen inzichten voor de huidige maand totdat die maand voorbij is. Dit is logisch, maar gemakkelijk te vergeten bij het testen van een nieuw aangemaakte trigger waarbij je je afvraagt waarom er niets verschijnt.

Tips en tricks 

Begin met Spike detection 

Als je triggers voor de eerste keer instelt, begin dan met Spikes up en Spikes down. Ze hebben de laagste datavolume vereisten en beginnen snel inzichten te genereren. Zodra je hebt bevestigd dat de pipeline van begin tot eind werkt, kun je geleidelijk meer insight types toevoegen.

Controleer je datumvelden voordat je begint 

Controleer voordat je triggers aanmaakt of de datumvelden die je als tijddimensie wilt gebruiken ook daadwerkelijk als datumwaarden in het datamodel zijn geladen. Open de datamodelviewer, zoek het veld op en controleer of het type als datum of timestamp wordt weergegeven in plaats van als tekstreeks. Als het een tekstreeks is, werk je load script bij met date()- of timestamp()-functies. Dit is een van de meest voorkomende redenen waarom een nieuw aangemaakte trigger geen inzichten produceert, en het kan lastig te diagnosticeren zijn als je niet weet waar je op moet letten. 

Wees bewust in je keuze van insight types 

Alle acht insight types inschakelen voor elke trigger voelt grondig, maar het levert een drukke feed op. Denk na over wat elke meetwaarde eigenlijk betekent. Voor een stabiele operationele meetwaarde zoals gemiddelde orderwaarde zijn spike detection en above/below model zinvol. Voor een strategische KPI zoals net promoter score zijn change in baseline en change in trend waarschijnlijk wat je zoekt. Kies de types die aansluiten bij de vraag die je werkelijk probeert te beantwoorden. 

Gebruik breakdown dimensions strategisch 

Breakdown dimensions vermenigvuldigen het aantal berekeningen en het aantal inzichten in de feed. Een breakdown dimension met 50 productwaarden toevoegen betekent dat elke evaluatie nu 51 berekeningen uitvoert: 50 afzonderlijke waarden plus het totale aggregaat. Dat is krachtig, maar alleen als de uitsplitsing op productniveau ook echt nuttig is voor je gebruikers. Begin zonder breakdown dimensions, laat gebruikers eerst met de geaggregeerde inzichten werken en voeg uitsplitsingen toe zodra je weet op welke dimensies ze daadwerkelijk willen filteren. 

Wat publiceren en dupliceren doet met je triggers 

Insight triggers leven in een applicatie, maar worden niet in alle scenario’s meegenomen. Wanneer je een applicatie publiceert naar een managed space, moeten de triggers opnieuw worden aangemaakt in de gepubliceerde versie. Wanneer je een applicatie dupliceert, of exporteert en opnieuw importeert, geldt hetzelfde: triggers overleven duplicatie niet. 

Een applicatie verplaatsen tussen spaces is het enige scenario waarbij triggers behouden blijven. Houd dit in gedachten bij het plannen van je ontwikkel- en deploymentworkflow, met name als je een ontwikkelversie van een app bijhoudt die je periodiek naar productie publiceert. 

Section access is een harde blokkade 

Als je applicatie section access gebruikt voor beveiliging op rijniveau, zijn insight triggers voor die applicatie helemaal niet beschikbaar. Dit is een fundamentele beperking van de huidige versie van de Discovery Agent, geen configuratieprobleem dat je kunt omzeilen. Houd hier rekening mee als section access een vereiste is in jouw omgeving. 

In het volgende deel 

Nu je insight triggers geconfigureerd zijn en je verversingsschema staat, begint de Discovery Agent de feeds van je gebruikers te vullen na de volgende data-update. In deel 3 van deze serie wisselen we van perspectief naar de eindgebruiker en bekijken we hoe je de feed effectief leest en navigeert, hoe je filters gebruikt om door de ruis heen te snijden en hoe je Qlik Answers inzet om dieper in te gaan op een inzicht dat je aandacht trekt. 

Contact

Wil je weten hoe je de Qlik Cloud Discovery Agent kunt inzetten binnen jouw organisatie? E-mergo helpt organisaties bij het implementeren van Qlik Cloud Analytics, het configureren van AI-functionaliteiten zoals de Discovery Agent en het optimaal benutten van data en inzichten binnen Qlik. Neem gerust contact met ons op om de mogelijkheden te bespreken.

Contact opnemen

Blijf op de hoogte

Wil je geen blog missen? Schrijf je dan in voor onze nieuwsbrief. Zo ontvang je elke maand alle nieuwste content direct in je mailbox. Je kunt je inschrijven via de knop hieronder.

schrijf je hier in

Geschreven door Lennaert van den Brink
Cluster Manager/Senior BI Consultant