Datasjabloon: claimafhandeling
Je datatemplate voor schadeafhandeling
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Handleiding voor data-extractie uit Guidewire ClaimCenter
Kenmerken van de schadeafhandeling
| Naam | Beschrijving | ||
|---|---|---|---|
Activiteitsnaam ActivityName | De naam van de bedrijfsactiviteit of het event dat op een specifiek moment in de levenscyclus van de claim plaatsvond. | ||
Beschrijving Dit attribuut beschrijft een specifieke stap of mijlpaal in het claimsproces, zoals 'Claim Created', 'Investigation Started' of 'Payment Issued'. De volgorde van deze activiteiten per Claim ID vormt het procesverloop. Het analyseren van de volgorde, frequentie en doorlooptijden tussen activiteiten is de kern van process mining. Zo ontdek je het onderliggende procesmodel, identificeer je knelpunten, spoor je herwerklussen op en analyseer je procesafwijkingen. Waarom het belangrijk is Bepaalt de stappen in het proces, waardoor je proceskaarten kunt visualiseren en de procesflow en knelpunten kunt analyseren. Waar te verkrijgen Dit wordt meestal afgeleid uit eventtabellen of auditlogs in ClaimCenter, vaak door specifieke systeemevents of statuswijzigingen te koppelen aan gestandaardiseerde activiteitsnamen. Voorbeelden Claim aangemaaktBeslissing over aansprakelijkheid genomenBetaling uitgekeerdClaim afgesloten | |||
Claim-ID ClaimID | De unieke identificatiecode voor elke schadeclaim; fungeert als primaire case-ID. | ||
Beschrijving De Claim ID is de ruggengraat van de analyse van het claimproces en identificeert elke case uniek, van melding tot sluiting. Hij koppelt alle bijbehorende activiteiten, documenten, betalingen en communicatie, en biedt zo een compleet en samenhangend beeld van de levenscyclus van een claim. In process mining is elk event in de dataset gekoppeld aan een Claim ID, waardoor de end-to-end-procesflow kan worden gereconstrueerd. Dit is essentieel om doorlooptijden te analyseren, procesvarianten te identificeren en het traject van een claim door verschillende afdelingen en schadebehandelaars te volgen. Waarom het belangrijk is Dit is de sleutel die alle gerelateerde events verbindt, zodat je het volledige traject van één claim kunt reconstrueren en analyseren. Waar te verkrijgen Dit is een primary key in Guidewire ClaimCenter, meestal beschikbaar als Claim.ClaimNumber of een vergelijkbaar veld in de kernentiteit Claim. Voorbeelden 000-123-45678000-987-65432001-456-11223 | |||
Tijdstip Gebeurtenis EventTime | De exacte datum en tijd waarop de activiteit plaatsvond. | ||
Beschrijving Deze timestamp markeert het exacte moment waarop een activiteit in het systeem is vastgelegd en vormt de basis voor alle tijdgebonden procesanalyse. De chronologische ordening van EventTime voor één Claim ID maakt het mogelijk de procesflow te reconstrueren. Het tijdsverschil tussen opeenvolgende events wordt gebruikt om doorlooptijden, wachttijden en verwerkingstijden te berekenen, die cruciaal zijn voor prestatieanalyse, het opsporen van knelpunten en SLA-monitoring. Waarom het belangrijk is Deze timestamp is essentieel om events te ordenen, doorlooptijden en activiteitsduur te berekenen en vertragingen in het proces te identificeren. Waar te verkrijgen Te vinden naast event- of activity-data in de history- of audit-tabellen van Guidewire ClaimCenter, vaak als veld 'CreateTime' of 'UpdateTime'. Voorbeelden 2023-05-15T09:00:00Z2023-05-16T14:30:15Z2023-06-01T11:20:00Z | |||
Claimstatus ClaimStatus | De algemene status van de claim op het moment van het event (bijv. Open, Gesloten, Afgewezen). | ||
Beschrijving Dit attribuut geeft de algemene status van de claim weer. Belangrijke statussen zijn 'Open', 'Closed', 'Denied' en 'Reopened'. De eindstatus van een claim is een kritieke uitkomstmaat. Het volgen van veranderingen in de Claim Status helpt om belangrijke procesmijlpalen en uitkomsten te definiëren. Het wordt gebruikt om de eindafwikkeling te bepalen, afwijspercentages te berekenen en te analyseren hoe vaak claims na sluiting worden heropend, wat vaak wijst op procesproblemen of ontevreden klanten. Waarom het belangrijk is Geeft de uitkomst van een claim aan; essentieel om afwijspercentages, sluitingspatronen en heropeningsfrequenties te analyseren. Waar te verkrijgen Dit is een kernveld op de Claim-entiteit, doorgaans 'State' of 'Status' genoemd. Voorbeelden OpenGeslotenGeweigerdHeropend | |||
Claimtype ClaimType | De categorie van de schadeclaim, zoals auto, opstal of aansprakelijkheid. | ||
Beschrijving Claimtype is een basisindeling van een claim op basis van de productlijn of de aard van de schade. Verschillende claimtypes volgen vaak uiteenlopende processen, hebben verschillende complexiteitsniveaus en vallen onder andere regelgeving. De procesanalyse per claimtype segmenteren is essentieel voor zinvolle inzichten. Hiermee kun je prestaties tussen productlijnen vergelijken, typespecifieke knelpunten vinden en verbeterinitiatieven afstemmen op de specifieke kenmerken van elke categorie. Waarom het belangrijk is Maakt segmentatie van claims mogelijk, omdat verschillende typen (bijv. auto versus property) vaak andere processen en prestatiedoelen kennen. Waar te verkrijgen Afgeleid van de Polis- of Claim-entiteit in ClaimCenter, vaak op basis van de Line of Business (LOB)-code. Voorbeelden Particuliere autoZakelijke eigendommenAansprakelijkheidArbeidsongevallenverzekering | |||
Schadeoorzaak LossCause | De specifieke oorzaak van de schade (bijv. botsing, brand, waterschade). | ||
Beschrijving Dit attribuut geeft aan waarom de claim is ingediend. De schadeoorzaak bepaalt vaak de benodigde onderzoekstappen, de soort specialisten en de complexiteit van de claim. Het proces analyseren op basis van de schadeoorzaak kan verborgen patronen zichtbaar maken. Zo hebben claims met 'Water Damage' mogelijk meer herwerk of meer specialistische inzet nodig dan claims met 'Theft'. Deze inzichten helpen om gerichtere en efficiëntere werkwijzen op te zetten. Waarom het belangrijk is Geeft context over de aard van de claim en maakt het mogelijk te analyseren hoe verschillende schadeoorzaken de procesflow en doorlooptijd beïnvloeden. Waar te verkrijgen Dit is een standaardveld op de Claim-entiteit, doorgaans 'LossCause' genoemd. Voorbeelden AanrijdingBrandWaterschadeDiefstal | |||
Toegewezen schadebehandelaar AssignedAdjuster | De naam of ID van de gebruiker die de claim of een specifieke activiteit behandelt. | ||
Beschrijving Dit attribuut identificeert de schadebehandelaar die op een bepaald moment verantwoordelijk is voor een claim. Een behandelaar kan aan de volledige claim of aan specifieke taken binnen de claim zijn toegewezen. Analyseren per toegewezen schadebehandelaar is cruciaal voor het balanceren van werkdruk, performance management en het signaleren van trainingsbehoeften. Het helpt vragen te beantwoorden als: 'Welke behandelaars hebben de grootste werkvoorraad?', 'Zijn er prestatieverschillen tussen behandelaars?' en 'Is het werk evenwichtig verdeeld?'. Waarom het belangrijk is Legt gebruikersbetrokkenheid vast, zodat werkdrukanalyse, prestatievergelijking en het opsporen van capaciteitsknelpunten mogelijk worden. Waar te verkrijgen Beschikbaar in de Claim- of Exposure-entiteit in ClaimCenter, vaak gekoppeld aan het User-object (bijv. Claim.Assignee). Voorbeelden j.doem.smiths.jones | |||
Afdeling Department | Het bedrijfsonderdeel of de afdeling die verantwoordelijk is voor de claimactiviteit. | ||
Beschrijving Dit attribuut geeft de afdeling of het team aan waartoe de toegewezen behandelaar behoort, zoals 'Auto Claims', 'Property Claims' of 'Special Investigations Unit'. Het biedt organisatorische context voor het proces. Analyseren per afdeling is cruciaal om de procesprestaties op organisatieniveau te begrijpen. Het helpt overdrachtsvertragingen tussen afdelingen te identificeren, de efficiëntie tussen teams te vergelijken en middelen effectiever over de claimsorganisatie te verdelen. Waarom het belangrijk is Geeft organisatorische context, zodat je prestaties tussen teams kunt vergelijken en overdrachtsproblemen tussen afdelingen zichtbaar worden. Waar te verkrijgen Deze informatie hoort meestal bij het profiel van de toegewezen gebruiker of groep in ClaimCenter. Voorbeelden Afdeling autoclaimsProperty-claimsteamAfdeling Bijzonder Onderzoek (SIU) | |||
Betaalbedrag PaymentAmount | Het daadwerkelijk uitbetaalde bedrag voor een betalingsactiviteit. | ||
Beschrijving Dit attribuut registreert het bedrag van elke afzonderlijke betaling op een claim. Eén claim kan gedurende de levenscyclus meerdere betalingen hebben. Dit is essentieel voor financiële analyse in de context van process mining. Je kunt er de totale uitkering per claim mee volgen, goedkeurtijden per bedrag mee analyseren en procesinefficiënties koppelen aan financiële uitkomsten. Claims met lange doorlooptijden correleren bijvoorbeeld vaak met hogere totale uitkeringen. Waarom het belangrijk is Houdt de financiële transacties binnen een claim bij, waardoor je betalingsbedragen en hun relatie tot procesactiviteiten kunt analyseren. Waar te verkrijgen Te vinden in betalingsgerelateerde entiteiten die aan de claim zijn gekoppeld, vaak in een transactie- of checktabel. Voorbeelden 4500.00125000.00500.00 | |||
Bewerkingstijd ProcessingTime | De tijd die actief aan een activiteit is besteed. | ||
Beschrijving Bewerkingstijd meet hoe lang er actief aan een activiteit is gewerkt en wordt berekend als het verschil tussen End Time en Start Time. Dit is iets anders dan de doorlooptijd, die ook wachttijd omvat. Deze berekende metric is essentieel voor prestatieanalyse omdat hij de echte inspanning voor een taak loskoppelt van idle- of wachttijd. Zo zie je precies welke stappen écht tijdrovend zijn en waar je met training, betere tools of procesontwerp winst kunt boeken. Waarom het belangrijk is Meet de actieve werktijd voor een activiteit en helpt onderscheid te maken tussen waardetoevoegende tijd en wachttijd. Waar te verkrijgen Berekend veld: EndTime - StartTime. Vereist dat beide tijdstempels beschikbaar zijn in de brondata. Voorbeelden PT8HPT15MP2D | |||
Bronsysteem SourceSystem | Het systeem waaruit de data is geëxtraheerd. | ||
Beschrijving Dit attribuut geeft de herkomst van de eventdata aan. In een modern applicatielandschap kunnen claimgerelateerde events uit meerdere systemen komen, zoals een core-systeem als Guidewire, een documentmanagementsysteem of een klantenportaal. Het specificeren van het bronsysteem is essentieel voor data governance, het oplossen van datainconsistenties en om inzicht te krijgen in het technologische landschap rond het proces. Het helpt onderscheid te maken tussen kernprocesstappen en ondersteunende activiteiten uit perifere systemen. Waarom het belangrijk is Geeft de herkomst van data aan, cruciaal voor data governance en voor analyses met meerdere gekoppelde systemen. Waar te verkrijgen Dit is doorgaans een statische waarde die tijdens het ETL-proces (extractie, transformatie en laden) wordt toegevoegd. Voorbeelden Guidewire ClaimCenter v10Customer Portal APIDocumentum | |||
Eindtijd EndTime | De timestamp waarop een activiteit is afgerond. | ||
Beschrijving De End Time markeert het einde van een activiteit, met name voor taken met een meetbare duur, zoals ‘Investigation’ of ‘Document Review’. Hoewel veel process-miningactiviteiten momentopnames zijn (StartTime volstaat), worden activiteiten met een duidelijke begin- en eindtijd beter weergegeven met beide timestamps. Dit attribuut maakt het mogelijk de verwerkingstijd van activiteiten precies te berekenen, los van de wachttijd. Zo wordt zichtbaar welke taken echt tijdrovend zijn, in plaats van alleen lange pauzes tussen stappen te zien. Waarom het belangrijk is Maakt het mogelijk precies te meten hoe lang een activiteit duurt, met onderscheid tussen bewerkingstijd en wachttijd. Waar te verkrijgen Dit moet mogelijk worden afgeleid door een opvolgend event te zoeken dat de activiteit logisch beëindigt (bijv. een statuswijziging van 'In Progress' naar 'Completed'). Voorbeelden 2023-05-15T17:00:00Z2023-05-16T15:00:00Z2023-06-02T10:00:00Z | |||
Geclaimd bedrag ClaimedAmount | Het totale bedrag dat de polishouder aanvankelijk heeft geclaimd. | ||
Beschrijving Dit attribuut staat voor het schadebedrag zoals door de melder is opgegeven. Het is vaak een eerste inschatting die kan wijzigen naarmate de claim wordt onderzocht en reserveringen worden vastgesteld. Analyse van het geclaimde bedrag helpt om claims naar financiële impact te segmenteren. Claims met een hoge waarde doorlopen vaak een strikter, complexer proces dan claims met een lage waarde. Processen per waardeband vergelijken kan kansen onthullen om de afhandeling van kleinere claims te vereenvoudigen of juist strengere controles toe te passen bij grote claims. Waarom het belangrijk is Maakt segmentatie op financiële waarde mogelijk; claims met een hoge waarde doorlopen vaak andere, complexere processen. Waar te verkrijgen Deze informatie staat mogelijk niet in één veld, maar kan worden afgeleid uit de initiële schaderamingen die op schadeposten zijn vastgelegd. Voorbeelden 5000.00150000.00750.50 | |||
Herhaald informatieverzoek RepeatedInfoRequestFlag | Een indicator die aangeeft of 'Additional Info Requested' meer dan één keer is voorgekomen voor dezelfde claim. | ||
Beschrijving Deze booleaanse vlag staat op true als een claim meer dan één activiteit 'Additional Info Requested' bevat. Dit wijst vaak op inefficiënties in de initiële informatieverzameling. Dit attribuut ondersteunt direct de KPI 'Repeated Info Request Rate'. Het helpt het probleem van onvolledige initiële informatieverzameling te kwantificeren, wat kan leiden tot forse vertragingen en klantfrustratie. Analyse van claims met deze vlag helpt checklists en procedures voor behandelaars te verbeteren, zodat alle benodigde informatie in één keer wordt opgevraagd. Waarom het belangrijk is Brengt inefficiënties aan het licht wanneer informatie niet in één keer volledig wordt verzameld, met procesvertragingen en herbehandeling tot gevolg. Waar te verkrijgen Wordt in de process-miningtool berekend door te tellen hoe vaak de activiteit 'Additional Info Requested' per claim voorkomt. Voorbeelden truefalse | |||
Is Geautomatiseerd IsAutomated | Een indicator die aangeeft of een activiteit automatisch door het systeem is uitgevoerd of door een gebruiker. | ||
Beschrijving Dit booleaanse attribuut onderscheidt activiteiten die door een systeem worden uitgevoerd (bijv. het automatisch aanmaken van reserveringen, systeemgegenereerde correspondentie) van activiteiten die handmatig door een behandelaar worden gedaan. Analyse van dit attribuut is cruciaal om het automatiseringsniveau in het claimsproces te begrijpen. Het helpt hotspots van handmatige interventie te vinden, de effectiviteit van straight-through processing (STP) te meten en nieuwe automatiseringskansen te ontdekken door repetitieve, regelgestuurde taken te identificeren die nu door mensen worden uitgevoerd. Waarom het belangrijk is Maakt onderscheid tussen systeemgestuurde en menselijke activiteiten—essentieel voor automatiseringsanalyse en het identificeren van handmatige knelpunten. Waar te verkrijgen Dit moet vaak worden afgeleid. Zo kunnen events die zijn gelogd door een generieke 'system'-gebruiker worden aangemerkt als geautomatiseerd. Voorbeelden truefalse | |||
Is herstelwerk IsRework | Een indicator die aangeeft of een activiteit een rework-lus vormt, wat betekent dat er wordt teruggekeerd naar een eerdere processtap. | ||
Beschrijving Dit berekende attribuut markeert activiteiten die onderdeel zijn van een herwerklus. Als het proces bijvoorbeeld van 'Investigation Completed' teruggaat naar 'Investigation Started', wordt de tweede 'Investigation Started'-activiteit aangemerkt als herwerk. Het identificeren van herwerk is essentieel om procesinefficiënties en kwaliteitsproblemen bloot te leggen. Het dashboard 'Rework and Rejection Frequency' is gebaseerd op deze metriek om te kwantificeren hoe vaak claims afwijken van het ideale 'happy path'. Analyse van de oorzaken van herwerk kan leiden tot aanzienlijke verbeteringen in kwaliteit en snelheid. Waarom het belangrijk is Brengt procesinefficiënties en kwaliteitsproblemen aan het licht door activiteiten die onderdeel zijn van een herwerk-lus expliciet te markeren. Waar te verkrijgen Dit wordt in de Process Mining-tool berekend door de volgorde van activiteiten per case te analyseren. Voorbeelden truefalse | |||
Laatste data-update LastDataUpdate | De timestamp waarop de data voor het laatst is ververst of uit het bronsysteem is geëxtraheerd. | ||
Beschrijving Dit attribuut bevat de timestamp van de meest recente data-extractie uit het bronsysteem. Het betreft metagegevens die essentieel zijn om de actualiteit van de analyse te beoordelen. Dashboards en analyses moeten deze informatie duidelijk tonen, zodat gebruikers weten hoe actueel de data is. Dit helpt te beoordelen of de inzichten de huidige situatie weerspiegelen of op oudere data zijn gebaseerd. Waarom het belangrijk is Geeft de actualiteit van de data aan, zodat gebruikers weten hoe up-to-date de procesanalyse is. Waar te verkrijgen Deze waarde wordt tijdens het ETL-proces gegenereerd en opgeslagen en vertegenwoordigt de timestamp van de dataload. Voorbeelden 2024-07-28T04:00:00Z2024-07-29T04:00:00Z | |||
Polistype PolicyType | Het specifieke type verzekeringspolis waaronder de claim is ingediend. | ||
Beschrijving Polistype biedt een fijnmazigere classificatie dan Claimtype en specificeert het verzekeringsproduct, zoals 'Woonhuis', 'Zakelijke auto' of 'Cyber Liability'. Dit detailniveau kan procesvarianten aan het licht brengen die samenhangen met specifieke producten. Door het proces per polistype te analyseren, ontdek je productgebonden inefficiënties. Claims voor een nieuw gelanceerd product volgen bijvoorbeeld vaak een minder volwassen proces, wat leidt tot vertraging. Deze analyse ondersteunt productontwerp en inspanningen voor processtandaardisatie. Waarom het belangrijk is Maakt procesanalyse per verzekeringsproduct mogelijk, zodat verschillen in behandeling op basis van polisdetails zichtbaar worden. Waar te verkrijgen Deze informatie is te vinden in de Policy-entiteit, die aan de Claim is gekoppeld. Voorbeelden Woonhuisverzekering (Multi-Peril)Aansprakelijkheid bedrijfsauto'sTransportverzekering | |||
Rechtsgebied (staat) JurisdictionState | Het rechtsgebied (bijv. staat/provincie) dat voor de claim geldt en de wettelijke vereisten bepaalt. | ||
Beschrijving Dit attribuut specificeert het rechtsgebied (bijv. de Amerikaanse staat) waarbinnen de claim wordt afgehandeld. Verzekeringsregels kunnen sterk per rechtsgebied verschillen en beïnvloeden verplichte processtappen, communicatietermijnen en documentatie. Dit is een essentieel attribuut voor compliancebewaking. Het proces analyseren per rechtsgebied zorgt ervoor dat specifieke wettelijke vereisten worden nageleefd. Het kan ook variaties in doorlooptijden of procespaden verklaren die voortkomen uit juridische beperkingen in plaats van operationele inefficiëntie. Waarom het belangrijk is Cruciaal voor compliance-analyses, omdat verschillende rechtsgebieden uiteenlopende regels kennen die het claimproces beïnvloeden. Waar te verkrijgen Een standaardveld op de Claim-entiteit, doorgaans 'JurisdictionState' genoemd. Voorbeelden CANYTXFL | |||
Schadedatum LossDate | De datum waarop het incident of de schade die de claim veroorzaakte plaatsvond. | ||
Beschrijving De Schadedatum is de datum van de daadwerkelijke gebeurtenis (bijv. auto-ongeluk, schade aan eigendom) waarvoor de claim wordt ingediend. Dit is iets anders dan de datum waarop de claim is gemeld of aangemaakt. Het tijdsverschil tussen de Schadedatum en de activiteit ‘Claim Created’ (de zogeheten rapportagevertraging) is een belangrijke KPI. Analyse hiervan geeft inzicht in klantgedrag en de effectiviteit van FNOL-kanalen (First Notice of Loss). Waarom het belangrijk is Biedt cruciale context over de herkomst van de claim en helpt de meldvertraging te analyseren (tijd tussen incident en indiening van de claim). Waar te verkrijgen Dit is een essentieel datumveld op de Claim-entiteit, vaak 'LossDate' genoemd. Voorbeelden 2023-05-102023-04-202023-05-28 | |||
SLA-Status SLAState | Geeft aan of de claim binnen de streefdatum voor afhandeling is gesloten. | ||
Beschrijving Dit berekende attribuut geeft een categorische status van SLA-naleving voor elke gesloten claim. Het wordt bepaald door de timestamp van de activiteit 'Claim Closed' te vergelijken met de 'Resolution Target Date'. Dit attribuut ondersteunt direct het dashboard 'Claim Resolution Target Adherence' door de analyse te herleiden tot duidelijke categorieën zoals 'On Time' of 'Late'. Zo kun je eenvoudig filteren en aggregeren om de totale SLA-naleving te berekenen en in te zoomen op de oorzaken van vertraging. Waarom het belangrijk is Levert een duidelijke, categorische uitkomst voor SLA-naleving, zodat je on-time performance eenvoudig kunt filteren, aggregeren en analyseren. Waar te verkrijgen Berekend veld: IF (ActualCloseDate <= ResolutionTargetDate, 'On Time', 'Late'). Voorbeelden Op tijdTe laat | |||
Streefdatum afwikkeling ResolutionTargetDate | De datum waarop de claim volgens interne of wettelijke SLA's afgerond moet zijn. | ||
Beschrijving De Resolution Target Date is een deadline voor het sluiten van een claim, vaak bepaald door factoren als rechtsgebied, claimtype en polisvoorwaarden. Deze datum fungeert als ijkpunt voor prestaties en compliance. Dit attribuut is cruciaal voor SLA-dashboards en KPI’s. Door de daadwerkelijke datum van ‘Claim Closed’ te vergelijken met de streefdatum kan de analyse claims die te laat zijn automatisch markeren, het percentage tijdige afhandeling meten en inzicht geven in welke claimtypes of afdelingen moeite hebben hun doelen te halen. Waarom het belangrijk is Dit is de benchmark om naleving van Service Level Agreements (SLA's) te meten en schadeclaims te identificeren die risico lopen op vertraging. Waar te verkrijgen Dit kan een aangepast veld zijn of worden afgeleid op basis van bedrijfsregels in ClaimCenter, mogelijk gekoppeld aan specifieke claimkengetallen. Voorbeelden 2023-06-142023-07-202023-08-28 | |||
Activiteiten in de schadeafhandeling
| Activiteit | Beschrijving | ||
|---|---|---|---|
Betaling goedgekeurd | Staat voor de formele goedkeuring van een uitkering. Dit is een cruciaal audit-event en wordt expliciet vastgelegd wanneer een bevoegde gebruiker de transactie goedkeurt. | ||
Waarom het belangrijk is Deze mijlpaal maakt de laatste stap, de uitbetaling, mogelijk. Door de tijd vóór en na deze activiteit te analyseren, kun je vertragingen isoleren die worden veroorzaakt door goedkeuringsworkflows of de beschikbaarheid van managers. Waar te verkrijgen Dit is vaak een expliciet event dat wordt gelogd in de tabel cc_history, gekoppeld aan een entiteit cc_check of cc_transaction, waarin een statuswijziging van 'Pending Approval' naar 'Approved' wordt vastgelegd. Vastleggen Volg de statuswijziging naar 'Approved' voor een specifieke betalingstransactie. Gebeurtenistype explicit | |||
Betaling uitgekeerd | Deze activiteit is de laatste stap in het betalingsproces, waarin de betaling officieel wordt uitgevoerd en naar het financiële systeem wordt gestuurd. Dit is een expliciet geregistreerde financiële transactie. | ||
Waarom het belangrijk is Deze activiteit is cruciaal om de efficiëntie van het uitbetalingsproces te meten. Het helpt onderscheid te maken tussen vertraging bij goedkeuring en vertraging bij de daadwerkelijke uitbetaling. Waar te verkrijgen Afgeleid van IssueDate of van een statuswijziging naar 'Issued' of 'Submitted' op de entiteiten cc_check of cc_transaction. Dit is vaak een expliciete gebeurtenis met tijdstempel. Vastleggen Bepaal de IssueDate of de tijdstempel van de statuswijziging naar 'Issued' op het betalingsrecord. Gebeurtenistype explicit | |||
Claim aangemaakt | Deze activiteit staat voor de eerste schademelding (FNOL) en de officiële aanmaak van een nieuw claimrecord in Guidewire ClaimCenter. Dit wordt expliciet vastgelegd zodra een nieuwe Claim-entiteit voor het eerst in de database wordt opgeslagen. | ||
Waarom het belangrijk is Als primaire startgebeurtenis is deze activiteit onmisbaar om de end-to-end doorlooptijd van claims te meten. Dit is de basis voor alle daaropvolgende performance- en duur-KPI’s. Waar te verkrijgen Dit is een expliciet event, afgeleid van CreateTime in de tabel cc_claim. Het aanmaken van een nieuw record met een unieke Claim ID is de trigger voor het event. Vastleggen Bepaal de aanmaaktijdstempel van het nieuwe record in de basistabel van de Claim-entiteit. Gebeurtenistype explicit | |||
Claim afgesloten | Geeft aan dat een claim succesvol is afgesloten nadat alle activiteiten en betalingen zijn afgerond. Dit is het primaire eindevent voor een geslaagde afhandeling en wordt afgeleid uit een wijziging in de hoofdstatus van de claim. | ||
Waarom het belangrijk is Als primaire eindgebeurtenis is deze activiteit essentieel voor het berekenen van de end-to-end doorlooptijd en het meten van SLA-naleving. Deze markeert de voltooiing van de levenscyclus van de claim. Waar te verkrijgen Afgeleid uit een wijziging van het veld State in de tabel cc_claim naar 'Closed'. De tijdstempel van het event is de CloseDate op het claimrecord. Vastleggen Bepaal wanneer het hoofdstatusveld van de claim wordt bijgewerkt naar 'Closed'. Gebeurtenistype inferred | |||
Claim afgewezen | Geeft de definitieve afwijzing van een claim weer en vormt het eindpunt van het proces. Dit event wordt afgeleid wanneer de claimstatus wijzigt naar een gesloten status met reden ‘Afgewezen’. | ||
Waarom het belangrijk is Dit is een cruciaal uitkomstmoment. Door de frequentie, oorzaken en procespaden die tot afwijzingen leiden te analyseren, worden problemen bij schademelding, onderzoek of polisinterpretatie zichtbaar. Waar te verkrijgen Afgeleid uit een wijziging van het veld State in de tabel cc_claim naar 'Closed', gecombineerd met het veld CloseReason met waarde 'Denied' of iets vergelijkbaars. De tijdstempel van het event is de CloseDate. Vastleggen Filter op claimstatuswijzigingen naar 'Closed' waarbij de reason code een afwijzing aangeeft. Gebeurtenistype inferred | |||
Exposure aangemaakt | Deze activiteit geeft de aanmaak van een schadepost (Exposure) aan, die een specifieke potentiële aansprakelijkheid of schadecategorie binnen de claim vertegenwoordigt (bijv. autoschade, letsel). Dit is een expliciete gebeurtenis in Guidewire. | ||
Waarom het belangrijk is Exposures zijn essentieel voor het segmenteren en analyseren van claims. Door hun aanmaak te volgen, begrijp je variaties in het proces op basis van claimcomplexiteit en type schade. Waar te verkrijgen Afkomstig van de CreateTime van een nieuw record in de tabel cc_exposure. Elk record is gekoppeld aan één Claim-ID. Vastleggen Bepaal de aanmaaktijdstempel van een nieuw record in de tabel van de Exposure-entiteit. Gebeurtenistype explicit | |||
Initiële reserve vastgelegd | Geeft aan dat de eerste financiële reserve voor een exposure (schadepost) is geboekt, als inschatting van de potentiële kosten van de claim. Dit is een cruciaal financieel event en wordt expliciet vastgelegd. | ||
Waarom het belangrijk is Deze mijlpaal is cruciaal voor financiële analyse en om te begrijpen hoe snel de potentiële aansprakelijkheid wordt beoordeeld. Vertragingen kunnen de financiële planning en rapportage beïnvloeden. Waar te verkrijgen Dit event wordt vastgelegd bij de aanmaak van het eerste cc_reserveline-record dat is gekoppeld aan een Exposure op de claim. De CreateTime van de transactie is de timestamp van het event. Vastleggen Zoek de vroegste creatietimestamp van alle reserve lines voor de exposures van een claim. Gebeurtenistype explicit | |||
Additional Info Received | Markeert de afronding van een verzoek om aanvullende informatie. Dit wordt vastgelegd zodra de bijbehorende 'Activity' (taak) voor het informatieverzoek als 'Completed' is gemarkeerd. | ||
Waarom het belangrijk is Dit is het eindpunt voor de KPI 'Additional Info Gathering Cycle Time'. Lange periodes tussen verzoek en ontvangst zijn een veelvoorkomende oorzaak van vertraging in het claimproces. Waar te verkrijgen Afgeleid van de CloseTime van een cc_activity-record waarbij het ActivityPattern betrekking heeft op een informatieverzoek. De status van de activiteit moet 'Completed' zijn. Vastleggen Bepaal de tijdstempel van de voltooiing van een taak voor het opvragen van externe informatie. Gebeurtenistype explicit | |||
Additional Info Requested | Staat voor een verzoek aan de verzekerde of een derde partij om extra informatie of documentatie. Dit wordt doorgaans vastgelegd als een expliciete 'Activity' (taak) die in ClaimCenter is aangemaakt. | ||
Waarom het belangrijk is Deze activiteit is het startpunt voor het meten van de KPI ‘Doorlooptijd aanvullende informatie’. Veelvuldig voorkomen kan duiden op een onvolledig FNOL-proces of inefficiënte informatieverzameling. Waar te verkrijgen Afgeleid van de CreateTime van een cc_activity-record waarbij het ActivityPattern betrekking heeft op het opvragen van documentatie of informatie bij een externe partij. Vastleggen Identificeer de aanmaak van een taak voor het opvragen van externe informatie. Gebeurtenistype explicit | |||
Beslissing over aansprakelijkheid genomen | Markeert het moment waarop een beslissing over aansprakelijkheid of schuld is genomen voor de Exposure. Dit event wordt doorgaans afgeleid uit een statuswijziging op de Exposure-entiteit. | ||
Waarom het belangrijk is Dit is een cruciale beslissingsmijlpaal die bepaalt wanneer de afwikkelings- en betalingsfase kan starten. Door de tijd tot deze beslissing te analyseren, spoor je knelpunten op in de onderzoeks- en beoordelingsfase. Waar te verkrijgen Afgeleid uit de tabel cc_history door een wijziging in State of een aangepast aansprakelijkheidsstatusveld op de entiteit cc_exposure te volgen. De tijdstempel van het history-record geeft het moment van het event aan. Vastleggen Houd auditlogs of historietabellen in de gaten op updates van de status van de exposure (schadepost) of de aansprakelijkheidsstatus. Gebeurtenistype inferred | |||
Claim heropend | Geeft aan dat een claim van 'Closed' teruggaat naar 'Open' om extra werk uit te voeren. Dit event wordt afgeleid uit een specifieke reeks statuswijzigingen. | ||
Waarom het belangrijk is Deze activiteit duidt op herwerk. Een hoog aantal heropende claims wijst op problemen bij de initiële afwikkeling, gemiste schades of andere procesfouten, met hogere kosten en inefficiëntie tot gevolg. Waar te verkrijgen Afgeleid uit de tabel cc_history door een wijziging in het veld State van de entiteit cc_claim te herkennen van 'Closed' terug naar 'Open' of een andere actieve status. Vastleggen Controleer het hoofdstatusveld van de claim op een overgang van een gesloten naar een open status. Gebeurtenistype inferred | |||
Claim toegewezen | Geeft aan dat een claim is toegewezen aan een specifieke gebruiker (schadebehandelaar) of groep voor behandeling. Dit wordt doorgaans afgeleid door wijzigingen in de toewijzingsvelden van de Claim-entiteit te volgen. | ||
Waarom het belangrijk is Het volgen van toewijzingen is cruciaal om de werkdruk van schadebehandelaars te analyseren, routeringsknelpunten te identificeren en de tijd tot eerste actie van de toegewezen behandelaar te meten. Waar te verkrijgen Afgeleid uit de tabel cc_history door wijzigingen in de velden AssignedUser of AssignedGroup voor een specifieke Claim ID te volgen. De timestamp van de wijziging geeft aan wanneer het event plaatsvond. Vastleggen Houd auditlogs of historietabellen in de gaten op wijzigingen in de toewijzingsvelden van de claim. Gebeurtenistype inferred | |||
Onderzoek gestart | Markeert de formele start van de onderzoeksfase van een claim of exposure. Dit blijkt vaak uit de aanmaak van de eerste aan onderzoek gerelateerde 'Activity' (taak) in Guidewire. | ||
Waarom het belangrijk is Deze activiteit is het begin van een cruciale, vaak langdurige fase. Door de tijd tot de start van het onderzoek en de duur van het onderzoek zelf te analyseren, komen grote knelpunten aan het licht. Waar te verkrijgen Afgeleid uit de CreateTime van een cc_activity-record waarbij ActivityPattern betrekking heeft op onderzoek (bijv. 'Initial Investigation', 'Contact Witness'). Vastleggen Identificeer de eerste aanmaak van een taak met een aan onderzoek gerelateerd patroon of onderwerp. Gebeurtenistype inferred | |||
Uitkering berekend | Deze activiteit geeft aan dat een uitkeringsbedrag is vastgesteld, maar nog niet is goedgekeurd voor betaling. Dit is af te leiden uit het aanmaken van een betaling met de status 'Pending Approval'. | ||
Waarom het belangrijk is Markeert de overgang van beoordeling naar betaling. Dit is het startpunt voor het meten van de KPI 'Payment Authorization Lead Time' en maakt vertragingen in de goedkeuringsketen zichtbaar. Waar te verkrijgen Afgeleid uit de CreateTime van een cc_check- of cc_transaction-record waarvan de initiële status 'Pending Approval' is of vergelijkbaar vóór 'Approved'. Vastleggen Identificeer de aanmaak van een betalings- of transactierecord in een vooraf goedgekeurde status. Gebeurtenistype inferred | |||
Extractie Guides
Stappen
- Controleer de vereisten: Zorg dat je de juiste rechten en inloggegevens hebt om met leesrechten toegang te krijgen tot de Guidewire DataHub/InfoCenter-datamart. Controleer ook of de ETL-jobs die de claims-datamart vullen succesvol draaien en of de data actueel is.
- Databaseverbinding: Gebruik een standaard SQL-client (zoals DBeaver, SQL Server Management Studio of vergelijkbaar) om verbinding te maken met de datamart-server.
- Schema verkennen: Maak je, voordat je de volledige query draait, vertrouwd met het datamart-schema. Bepaal de belangrijkste tabellen voor claims, exposures, activiteiten en financiële transacties. Belangrijke tabellen hebben vaak de suffixen _dim (dimension) en _fact (fact). Zo kun je de placeholdernamen voor tabellen en kolommen in het script controleren.
- SQL-query voorbereiden: Kopieer het volledige SQL-script uit de sectie query naar de query-editor van je SQL-client.
- Placeholders invullen: Loop het script zorgvuldig na en vervang alle placeholders. Dit betreft de database-/schemanaam (bijv. [YourDataMart]), parameters voor het datumbereik ('[StartDate]', '[EndDate]') en eventuele systeemspecifieke configuraties (bijv. activity patterns en statuscodes).
- Query uitvoeren: Voer de aangepaste SQL-query uit op de datamart. De looptijd varieert per gekozen periode en het datavolume in je systeem.
- Eerste datacontrole: Bekijk na afloop de eerste paar honderd rijen van het resultaat. Controleer of de kolommen ClaimID, ActivityName en EventTime gevuld zijn zoals verwacht en of verschillende activiteitstypen aanwezig zijn.
- Exporteren naar CSV: Exporteer het volledige resultaat vanuit je SQL-client naar een CSV-bestand. Geef het bestand een duidelijke naam, bijvoorbeeld guidewire_claimcenter_event_log.csv.
- Formaat voor ProcessMind: Sla het CSV-bestand op met UTF-8-codering. Controleer of het een header bevat die overeenkomt met de kolomaliassen in de SQL-query. Het bestand is nu klaar om te uploaden naar ProcessMind.
Configuratie
- Databron: Guidewire DataHub/InfoCenter Claims Data Mart. Dit is een vooraf geaggregeerde, dimensionele database voor rapportage en analyse, losstaand van de live ClaimCenter-productiedatabase.
- Benodigde autorisaties: Alleen-lezen toegang tot de SQL-database waarop de datamart draait. Je hebt een gebruikersnaam, wachtwoord en verbindingsgegevens nodig (serveradres, databasenaam).
- Status van ETL-jobs: De juistheid van deze extractie hangt af van het tijdig en succesvol draaien van de Guidewire ETL-jobs die de datamart vullen. Controleer de tijd van de laatste geslaagde run om de actualiteit van de data te bepalen.
- Filteren op datumbereik: De meegeleverde query bevat WHERE-clausules met de placeholders '[StartDate]' en '[EndDate]'. Begin bij voorkeur met een beperkt bereik (bijv. 3-6 maanden) voor betere prestaties. De datumfilter wordt toegepast op de CreateTime van de claim.
- Configuratiespecifieke waarden: Guidewire is zeer configureerbaar. Pas waarden in WHERE-clausules aan op de inrichting van je organisatie. Denk aan:
- ActivityPattern-namen (bijv. 'fnol', 'investigation', 'Request additional information')
- ClaimStatus-, ExposureStatus- en CloseReason-codes (bijv. 'denied', 'closed')
- TransactionStatus-codes (bijv. 'pendingapproval', 'approved', 'issued')
- Prestaties: Het bevragen van grote historie- of audit-tabellen kan zwaar zijn. Voer de query voor zeer grote datasets bij voorkeur buiten piekuren uit. Zorg dat de kolommen ClaimID of ClaimNumber op de relevante tabellen zijn geïndexeerd.
a Voorbeeldquery sql
`sql
-- This query extracts a process mining event log for claims processing from a Guidewire DataHub/InfoCenter Data Mart.
-- Replace placeholders: [YourDataMart], [StartDate], [EndDate], and any configuration-specific string literals.
WITH ClaimHistory AS (
-- Pre-process claim history to identify status changes, especially for Reopened events.
SELECT
ClaimID,
Status,
UpdateTime,
LAG(Status, 1) OVER (PARTITION BY ClaimID ORDER BY UpdateTime) AS PreviousStatus
FROM [YourDataMart].[dbo].[ClaimHistory_dim] -- Placeholder for claim history/audit table
),
BaseClaims AS (
-- Select the set of claims to be analyzed based on a date range.
SELECT
c.ClaimID AS ClaimPublicID, -- Using PublicID as it's often the user-facing ID
c.ClaimNumber AS ClaimID,
c.AssignedAdjusterName AS AssignedAdjuster,
c.PolicyType AS ClaimType,
c.ClaimStatus AS ClaimStatus,
c.LossCause AS LossCause,
c.CreateTime
FROM [YourDataMart].[dbo].[Claim_dim] c
WHERE c.CreateTime >= '[StartDate]' AND c.CreateTime < '[EndDate]'
)
-- 1. Claim Created
SELECT
bc.ClaimID AS ClaimID,
'Claim Created' AS ActivityName,
bc.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
UNION ALL
-- 2. Claim Assigned
-- This captures the first assignment event from the history table.
SELECT
bc.ClaimID,
'Claim Assigned' AS ActivityName,
MIN(ch.UpdateTime) AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ClaimHistory_dim] ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.EventType = 'Assignment' -- Assumes an EventType column exists to identify assignment changes
GROUP BY bc.ClaimID, bc.AssignedAdjuster, bc.ClaimType, bc.ClaimStatus, bc.LossCause
UNION ALL
-- 3. Exposure Created
SELECT
bc.ClaimID,
'Exposure Created' AS ActivityName,
e.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Exposure_dim] e ON bc.ClaimPublicID = e.ClaimID
UNION ALL
-- 4. Initial Reserve Set
-- Finds the very first reserve transaction for any exposure on the claim.
SELECT
x.ClaimID,
'Initial Reserve Set' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY t.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Reserve'
) x
WHERE x.rn = 1
UNION ALL
-- 5. Investigation Started
-- Finds the creation of the first investigation-related activity.
SELECT
x.ClaimID,
'Investigation Started' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY a.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Investigation%'
) x
WHERE x.rn = 1
UNION ALL
-- 6. Additional Info Requested
SELECT
bc.ClaimID,
'Additional Info Requested' AS ActivityName,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%'
UNION ALL
-- 7. Additional Info Received
SELECT
bc.ClaimID,
'Additional Info Received' AS ActivityName,
a.CompletionTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%' AND a.CompletionTime IS NOT NULL
UNION ALL
-- 8. Liability Decision Made
-- Captures when an exposure's liability decision is first set.
SELECT
x.ClaimID,
'Liability Decision Made' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
eh.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY eh.UpdateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ExposureHistory_dim] eh ON bc.ClaimPublicID = eh.ClaimID
WHERE eh.LiabilityDecision IS NOT NULL AND eh.PreviousLiabilityDecision IS NULL -- Captures the first time it was set
) x
WHERE x.rn = 1
UNION ALL
-- 9. Settlement Calculated
-- Captures the creation of a payment transaction that is pending approval.
SELECT
bc.ClaimID,
'Settlement Calculated' AS ActivityName,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.TransactionStatus = 'PendingApproval'
UNION ALL
-- 10. Payment Approved
SELECT
bc.ClaimID,
'Payment Approved' AS ActivityName,
t.ApprovalDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.ApprovalDate IS NOT NULL AND t.TransactionStatus = 'Approved'
UNION ALL
-- 11. Payment Issued
SELECT
bc.ClaimID,
'Payment Issued' AS ActivityName,
t.IssueDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.IssueDate IS NOT NULL AND t.TransactionStatus = 'Issued'
UNION ALL
-- 12. Claim Denied
SELECT
bc.ClaimID,
'Claim Denied' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Denied' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 13. Claim Closed
SELECT
bc.ClaimID,
'Claim Closed' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Closed' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND NOT EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 14. Claim Reopened
SELECT
bc.ClaimID,
'Claim Reopened' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Open' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.PreviousStatus = 'Closed' AND ch.Status <> 'Closed';
`Stappen
- Controleer de vereisten: Zorg dat je de juiste rechten en inloggegevens hebt om met leesrechten toegang te krijgen tot de Guidewire DataHub/InfoCenter-datamart. Controleer ook of de ETL-jobs die de claims-datamart vullen succesvol draaien en of de data actueel is.
- Databaseverbinding: Gebruik een standaard SQL-client (zoals DBeaver, SQL Server Management Studio of vergelijkbaar) om verbinding te maken met de datamart-server.
- Schema verkennen: Maak je, voordat je de volledige query draait, vertrouwd met het datamart-schema. Bepaal de belangrijkste tabellen voor claims, exposures, activiteiten en financiële transacties. Belangrijke tabellen hebben vaak de suffixen _dim (dimension) en _fact (fact). Zo kun je de placeholdernamen voor tabellen en kolommen in het script controleren.
- SQL-query voorbereiden: Kopieer het volledige SQL-script uit de sectie query naar de query-editor van je SQL-client.
- Placeholders invullen: Loop het script zorgvuldig na en vervang alle placeholders. Dit betreft de database-/schemanaam (bijv. [YourDataMart]), parameters voor het datumbereik ('[StartDate]', '[EndDate]') en eventuele systeemspecifieke configuraties (bijv. activity patterns en statuscodes).
- Query uitvoeren: Voer de aangepaste SQL-query uit op de datamart. De looptijd varieert per gekozen periode en het datavolume in je systeem.
- Eerste datacontrole: Bekijk na afloop de eerste paar honderd rijen van het resultaat. Controleer of de kolommen ClaimID, ActivityName en EventTime gevuld zijn zoals verwacht en of verschillende activiteitstypen aanwezig zijn.
- Exporteren naar CSV: Exporteer het volledige resultaat vanuit je SQL-client naar een CSV-bestand. Geef het bestand een duidelijke naam, bijvoorbeeld guidewire_claimcenter_event_log.csv.
- Formaat voor ProcessMind: Sla het CSV-bestand op met UTF-8-codering. Controleer of het een header bevat die overeenkomt met de kolomaliassen in de SQL-query. Het bestand is nu klaar om te uploaden naar ProcessMind.
Configuratie
- Databron: Guidewire DataHub/InfoCenter Claims Data Mart. Dit is een vooraf geaggregeerde, dimensionele database voor rapportage en analyse, losstaand van de live ClaimCenter-productiedatabase.
- Benodigde autorisaties: Alleen-lezen toegang tot de SQL-database waarop de datamart draait. Je hebt een gebruikersnaam, wachtwoord en verbindingsgegevens nodig (serveradres, databasenaam).
- Status van ETL-jobs: De juistheid van deze extractie hangt af van het tijdig en succesvol draaien van de Guidewire ETL-jobs die de datamart vullen. Controleer de tijd van de laatste geslaagde run om de actualiteit van de data te bepalen.
- Filteren op datumbereik: De meegeleverde query bevat WHERE-clausules met de placeholders '[StartDate]' en '[EndDate]'. Begin bij voorkeur met een beperkt bereik (bijv. 3-6 maanden) voor betere prestaties. De datumfilter wordt toegepast op de CreateTime van de claim.
- Configuratiespecifieke waarden: Guidewire is zeer configureerbaar. Pas waarden in WHERE-clausules aan op de inrichting van je organisatie. Denk aan:
- ActivityPattern-namen (bijv. 'fnol', 'investigation', 'Request additional information')
- ClaimStatus-, ExposureStatus- en CloseReason-codes (bijv. 'denied', 'closed')
- TransactionStatus-codes (bijv. 'pendingapproval', 'approved', 'issued')
- Prestaties: Het bevragen van grote historie- of audit-tabellen kan zwaar zijn. Voer de query voor zeer grote datasets bij voorkeur buiten piekuren uit. Zorg dat de kolommen ClaimID of ClaimNumber op de relevante tabellen zijn geïndexeerd.
a Voorbeeldquery sql
`sql
-- This query extracts a process mining event log for claims processing from a Guidewire DataHub/InfoCenter Data Mart.
-- Replace placeholders: [YourDataMart], [StartDate], [EndDate], and any configuration-specific string literals.
WITH ClaimHistory AS (
-- Pre-process claim history to identify status changes, especially for Reopened events.
SELECT
ClaimID,
Status,
UpdateTime,
LAG(Status, 1) OVER (PARTITION BY ClaimID ORDER BY UpdateTime) AS PreviousStatus
FROM [YourDataMart].[dbo].[ClaimHistory_dim] -- Placeholder for claim history/audit table
),
BaseClaims AS (
-- Select the set of claims to be analyzed based on a date range.
SELECT
c.ClaimID AS ClaimPublicID, -- Using PublicID as it's often the user-facing ID
c.ClaimNumber AS ClaimID,
c.AssignedAdjusterName AS AssignedAdjuster,
c.PolicyType AS ClaimType,
c.ClaimStatus AS ClaimStatus,
c.LossCause AS LossCause,
c.CreateTime
FROM [YourDataMart].[dbo].[Claim_dim] c
WHERE c.CreateTime >= '[StartDate]' AND c.CreateTime < '[EndDate]'
)
-- 1. Claim Created
SELECT
bc.ClaimID AS ClaimID,
'Claim Created' AS ActivityName,
bc.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
UNION ALL
-- 2. Claim Assigned
-- This captures the first assignment event from the history table.
SELECT
bc.ClaimID,
'Claim Assigned' AS ActivityName,
MIN(ch.UpdateTime) AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ClaimHistory_dim] ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.EventType = 'Assignment' -- Assumes an EventType column exists to identify assignment changes
GROUP BY bc.ClaimID, bc.AssignedAdjuster, bc.ClaimType, bc.ClaimStatus, bc.LossCause
UNION ALL
-- 3. Exposure Created
SELECT
bc.ClaimID,
'Exposure Created' AS ActivityName,
e.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Exposure_dim] e ON bc.ClaimPublicID = e.ClaimID
UNION ALL
-- 4. Initial Reserve Set
-- Finds the very first reserve transaction for any exposure on the claim.
SELECT
x.ClaimID,
'Initial Reserve Set' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY t.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Reserve'
) x
WHERE x.rn = 1
UNION ALL
-- 5. Investigation Started
-- Finds the creation of the first investigation-related activity.
SELECT
x.ClaimID,
'Investigation Started' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY a.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Investigation%'
) x
WHERE x.rn = 1
UNION ALL
-- 6. Additional Info Requested
SELECT
bc.ClaimID,
'Additional Info Requested' AS ActivityName,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%'
UNION ALL
-- 7. Additional Info Received
SELECT
bc.ClaimID,
'Additional Info Received' AS ActivityName,
a.CompletionTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%' AND a.CompletionTime IS NOT NULL
UNION ALL
-- 8. Liability Decision Made
-- Captures when an exposure's liability decision is first set.
SELECT
x.ClaimID,
'Liability Decision Made' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
eh.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY eh.UpdateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ExposureHistory_dim] eh ON bc.ClaimPublicID = eh.ClaimID
WHERE eh.LiabilityDecision IS NOT NULL AND eh.PreviousLiabilityDecision IS NULL -- Captures the first time it was set
) x
WHERE x.rn = 1
UNION ALL
-- 9. Settlement Calculated
-- Captures the creation of a payment transaction that is pending approval.
SELECT
bc.ClaimID,
'Settlement Calculated' AS ActivityName,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.TransactionStatus = 'PendingApproval'
UNION ALL
-- 10. Payment Approved
SELECT
bc.ClaimID,
'Payment Approved' AS ActivityName,
t.ApprovalDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.ApprovalDate IS NOT NULL AND t.TransactionStatus = 'Approved'
UNION ALL
-- 11. Payment Issued
SELECT
bc.ClaimID,
'Payment Issued' AS ActivityName,
t.IssueDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.IssueDate IS NOT NULL AND t.TransactionStatus = 'Issued'
UNION ALL
-- 12. Claim Denied
SELECT
bc.ClaimID,
'Claim Denied' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Denied' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 13. Claim Closed
SELECT
bc.ClaimID,
'Claim Closed' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Closed' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND NOT EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 14. Claim Reopened
SELECT
bc.ClaimID,
'Claim Reopened' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Open' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.PreviousStatus = 'Closed' AND ch.Status <> 'Closed';
`Stappen
- Controleer de vereisten: Zorg dat je de juiste rechten en inloggegevens hebt om met leesrechten toegang te krijgen tot de Guidewire DataHub/InfoCenter-datamart. Controleer ook of de ETL-jobs die de claims-datamart vullen succesvol draaien en of de data actueel is.
- Databaseverbinding: Gebruik een standaard SQL-client (zoals DBeaver, SQL Server Management Studio of vergelijkbaar) om verbinding te maken met de datamart-server.
- Schema verkennen: Maak je, voordat je de volledige query draait, vertrouwd met het datamart-schema. Bepaal de belangrijkste tabellen voor claims, exposures, activiteiten en financiële transacties. Belangrijke tabellen hebben vaak de suffixen _dim (dimension) en _fact (fact). Zo kun je de placeholdernamen voor tabellen en kolommen in het script controleren.
- SQL-query voorbereiden: Kopieer het volledige SQL-script uit de sectie query naar de query-editor van je SQL-client.
- Placeholders invullen: Loop het script zorgvuldig na en vervang alle placeholders. Dit betreft de database-/schemanaam (bijv. [YourDataMart]), parameters voor het datumbereik ('[StartDate]', '[EndDate]') en eventuele systeemspecifieke configuraties (bijv. activity patterns en statuscodes).
- Query uitvoeren: Voer de aangepaste SQL-query uit op de datamart. De looptijd varieert per gekozen periode en het datavolume in je systeem.
- Eerste datacontrole: Bekijk na afloop de eerste paar honderd rijen van het resultaat. Controleer of de kolommen ClaimID, ActivityName en EventTime gevuld zijn zoals verwacht en of verschillende activiteitstypen aanwezig zijn.
- Exporteren naar CSV: Exporteer het volledige resultaat vanuit je SQL-client naar een CSV-bestand. Geef het bestand een duidelijke naam, bijvoorbeeld guidewire_claimcenter_event_log.csv.
- Formaat voor ProcessMind: Sla het CSV-bestand op met UTF-8-codering. Controleer of het een header bevat die overeenkomt met de kolomaliassen in de SQL-query. Het bestand is nu klaar om te uploaden naar ProcessMind.
Configuratie
- Databron: Guidewire DataHub/InfoCenter Claims Data Mart. Dit is een vooraf geaggregeerde, dimensionele database voor rapportage en analyse, losstaand van de live ClaimCenter-productiedatabase.
- Benodigde autorisaties: Alleen-lezen toegang tot de SQL-database waarop de datamart draait. Je hebt een gebruikersnaam, wachtwoord en verbindingsgegevens nodig (serveradres, databasenaam).
- Status van ETL-jobs: De juistheid van deze extractie hangt af van het tijdig en succesvol draaien van de Guidewire ETL-jobs die de datamart vullen. Controleer de tijd van de laatste geslaagde run om de actualiteit van de data te bepalen.
- Filteren op datumbereik: De meegeleverde query bevat WHERE-clausules met de placeholders '[StartDate]' en '[EndDate]'. Begin bij voorkeur met een beperkt bereik (bijv. 3-6 maanden) voor betere prestaties. De datumfilter wordt toegepast op de CreateTime van de claim.
- Configuratiespecifieke waarden: Guidewire is zeer configureerbaar. Pas waarden in WHERE-clausules aan op de inrichting van je organisatie. Denk aan:
- ActivityPattern-namen (bijv. 'fnol', 'investigation', 'Request additional information')
- ClaimStatus-, ExposureStatus- en CloseReason-codes (bijv. 'denied', 'closed')
- TransactionStatus-codes (bijv. 'pendingapproval', 'approved', 'issued')
- Prestaties: Het bevragen van grote historie- of audit-tabellen kan zwaar zijn. Voer de query voor zeer grote datasets bij voorkeur buiten piekuren uit. Zorg dat de kolommen ClaimID of ClaimNumber op de relevante tabellen zijn geïndexeerd.
a Voorbeeldquery sql
`sql
-- This query extracts a process mining event log for claims processing from a Guidewire DataHub/InfoCenter Data Mart.
-- Replace placeholders: [YourDataMart], [StartDate], [EndDate], and any configuration-specific string literals.
WITH ClaimHistory AS (
-- Pre-process claim history to identify status changes, especially for Reopened events.
SELECT
ClaimID,
Status,
UpdateTime,
LAG(Status, 1) OVER (PARTITION BY ClaimID ORDER BY UpdateTime) AS PreviousStatus
FROM [YourDataMart].[dbo].[ClaimHistory_dim] -- Placeholder for claim history/audit table
),
BaseClaims AS (
-- Select the set of claims to be analyzed based on a date range.
SELECT
c.ClaimID AS ClaimPublicID, -- Using PublicID as it's often the user-facing ID
c.ClaimNumber AS ClaimID,
c.AssignedAdjusterName AS AssignedAdjuster,
c.PolicyType AS ClaimType,
c.ClaimStatus AS ClaimStatus,
c.LossCause AS LossCause,
c.CreateTime
FROM [YourDataMart].[dbo].[Claim_dim] c
WHERE c.CreateTime >= '[StartDate]' AND c.CreateTime < '[EndDate]'
)
-- 1. Claim Created
SELECT
bc.ClaimID AS ClaimID,
'Claim Created' AS ActivityName,
bc.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
UNION ALL
-- 2. Claim Assigned
-- This captures the first assignment event from the history table.
SELECT
bc.ClaimID,
'Claim Assigned' AS ActivityName,
MIN(ch.UpdateTime) AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ClaimHistory_dim] ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.EventType = 'Assignment' -- Assumes an EventType column exists to identify assignment changes
GROUP BY bc.ClaimID, bc.AssignedAdjuster, bc.ClaimType, bc.ClaimStatus, bc.LossCause
UNION ALL
-- 3. Exposure Created
SELECT
bc.ClaimID,
'Exposure Created' AS ActivityName,
e.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Exposure_dim] e ON bc.ClaimPublicID = e.ClaimID
UNION ALL
-- 4. Initial Reserve Set
-- Finds the very first reserve transaction for any exposure on the claim.
SELECT
x.ClaimID,
'Initial Reserve Set' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY t.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Reserve'
) x
WHERE x.rn = 1
UNION ALL
-- 5. Investigation Started
-- Finds the creation of the first investigation-related activity.
SELECT
x.ClaimID,
'Investigation Started' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY a.CreateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Investigation%'
) x
WHERE x.rn = 1
UNION ALL
-- 6. Additional Info Requested
SELECT
bc.ClaimID,
'Additional Info Requested' AS ActivityName,
a.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%'
UNION ALL
-- 7. Additional Info Received
SELECT
bc.ClaimID,
'Additional Info Received' AS ActivityName,
a.CompletionTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Activity_dim] a ON bc.ClaimPublicID = a.ClaimID
WHERE a.ActivityPatternName LIKE '%Request%Information%' AND a.CompletionTime IS NOT NULL
UNION ALL
-- 8. Liability Decision Made
-- Captures when an exposure's liability decision is first set.
SELECT
x.ClaimID,
'Liability Decision Made' AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
bc.ClaimID,
eh.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause,
ROW_NUMBER() OVER(PARTITION BY bc.ClaimID ORDER BY eh.UpdateTime) as rn
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[ExposureHistory_dim] eh ON bc.ClaimPublicID = eh.ClaimID
WHERE eh.LiabilityDecision IS NOT NULL AND eh.PreviousLiabilityDecision IS NULL -- Captures the first time it was set
) x
WHERE x.rn = 1
UNION ALL
-- 9. Settlement Calculated
-- Captures the creation of a payment transaction that is pending approval.
SELECT
bc.ClaimID,
'Settlement Calculated' AS ActivityName,
t.CreateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.TransactionStatus = 'PendingApproval'
UNION ALL
-- 10. Payment Approved
SELECT
bc.ClaimID,
'Payment Approved' AS ActivityName,
t.ApprovalDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.ApprovalDate IS NOT NULL AND t.TransactionStatus = 'Approved'
UNION ALL
-- 11. Payment Issued
SELECT
bc.ClaimID,
'Payment Issued' AS ActivityName,
t.IssueDate AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
bc.ClaimStatus,
bc.LossCause
FROM BaseClaims bc
JOIN [YourDataMart].[dbo].[Transaction_fact] t ON bc.ClaimPublicID = t.ClaimID
WHERE t.TransactionType = 'Payment' AND t.IssueDate IS NOT NULL AND t.TransactionStatus = 'Issued'
UNION ALL
-- 12. Claim Denied
SELECT
bc.ClaimID,
'Claim Denied' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Denied' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 13. Claim Closed
SELECT
bc.ClaimID,
'Claim Closed' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Closed' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.Status = 'Closed' AND ch.PreviousStatus <> 'Closed'
AND NOT EXISTS (SELECT 1 FROM [YourDataMart].[dbo].[Claim_dim] c2 WHERE c2.ClaimID = bc.ClaimPublicID AND c2.CloseReason = 'Denied')
UNION ALL
-- 14. Claim Reopened
SELECT
bc.ClaimID,
'Claim Reopened' AS ActivityName,
ch.UpdateTime AS EventTime,
bc.AssignedAdjuster,
bc.ClaimType,
'Open' AS ClaimStatus, -- Overriding status for clarity
bc.LossCause
FROM BaseClaims bc
JOIN ClaimHistory ch ON bc.ClaimPublicID = ch.ClaimID
WHERE ch.PreviousStatus = 'Closed' AND ch.Status <> 'Closed';
`