Je datatemplate voor schadeafhandeling
Je datatemplate voor schadeafhandeling
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Handleiding voor data-extractie uit Guidewire ClaimCenter
Attributen van de schadeafhandeling
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De naam van de bedrijfsactiviteit of het gebeurtenis dat op een specifiek moment in de levenscyclus van de claim plaatsvond. | ||
| Omschrijving 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 vormt de kern van process mining. Zo bekijk je het onderliggende procesmodel, identificeer je knelpunten, spoor je herstelwerk-loops op en analyseer je procesafwijkingen. Het belang Bepaalt de stappen in het proces, waardoor je proceskaarten kunt visualiseren en de processtroom en knelpunten kunt analyseren. Vindplaats Dit wordt meestal afgeleid uit gebeurtenistabellen of auditlogs in ClaimCenter, vaak door specifieke systeemgebeurtenissen of statuswijzigingen te koppelen aan gestandaardiseerde activiteitsnamen. Voorbeelden Claim aangemaaktBeslissing over aansprakelijkheid genomenBetaling uitgekeerdClaim gesloten | |||
| Claim-ID ClaimID | De unieke ID voor elke schadeclaim; fungeert als primaire case-ID. | ||
| Omschrijving De Claim ID is de basis 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 gebeurtenis in de dataset gekoppeld aan een Claim ID, waardoor de end-to-end-processtroom kan worden gereconstrueerd. Dit is belangrijk om doorlooptijden te analyseren, procesvarianten te vinden en het traject van een claim door verschillende afdelingen en schadebehandelaars te volgen. Het belang Dit is de sleutel die alle gerelateerde gebeurtenissen verbindt, zodat je het volledige traject van één claim kunt reconstrueren en analyseren. Vindplaats 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. | ||
| Omschrijving 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 processtroom te reconstrueren. Het tijdsverschil tussen opeenvolgende gebeurtenissen wordt gebruikt om doorlooptijden, wachttijden en verwerkingstijden te berekenen, die belangrijk zijn voor prestatieanalyse, het opsporen van knelpunten en SLA-monitoring. Het belang Deze timestamp is belangrijk om gebeurtenissen te ordenen, doorlooptijden en activiteitsduur te berekenen en vertragingen in het proces te vinden. Vindplaats Te vinden naast gebeurtenis- 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 gebeurtenis (bijv. Open, Gesloten, Afgewezen). | ||
| Omschrijving 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 stappen in het proces 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. Het belang Geeft de uitkomst van een claim aan; belangrijk om afwijspercentages, sluitingspatronen en heropeningsfrequenties te analyseren. Vindplaats 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. | ||
| Omschrijving 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 belangrijk voor zinvolle inzichten. Hiermee kun je prestaties tussen productlijnen vergelijken, typespecifieke knelpunten vinden en verbeterinitiatieven afstemmen op de specifieke kenmerken van elke categorie. Het belang Maakt segmentatie van claims mogelijk, omdat verschillende typen (bijv. auto versus property) vaak andere processen en prestatiedoelen kennen. Vindplaats Afgeleid van de Polis- of Claim-entiteit in ClaimCenter, vaak op basis van de Line of Business (LOB)-code. Voorbeelden Particuliere autoCommercieel vastgoedAansprakelijkheidArbeidsongevallenverzekering | |||
| Schadeoorzaak LossCause | De specifieke oorzaak van de schade (bijv. botsing, brand, waterschade). | ||
| Omschrijving 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 rework of meer specialistische inzet nodig dan claims met 'Theft'. Deze inzichten helpen om gerichtere en efficiëntere werkwijzen op te zetten. Het belang Geeft context over de aard van de claim en maakt het mogelijk te analyseren hoe verschillende schadeoorzaken de processtroom en doorlooptijd beïnvloeden. Vindplaats 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. | ||
| Omschrijving 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 belangrijk voor het balanceren van werkdruk, prestaties 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?'. Het belang Legt gebruikersbetrokkenheid vast, zodat werkdrukanalyse, prestatievergelijking en het opsporen van capaciteitsknelpunten mogelijk worden. Vindplaats Beschikbaar in de Claim- of Exposure-entiteit in ClaimCenter, vaak gekoppeld aan het Gebruiker-object (bijv. Claim.Assignee). Voorbeelden j.doem.smiths.jones | |||
| Afdeling Department | Het bedrijfsonderdeel of de afdeling die verantwoordelijk is voor de claimactiviteit. | ||
| Omschrijving 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 belangrijk om de procesprestaties op organisatieniveau te begrijpen. Het helpt overdrachtsvertragingen tussen afdelingen te vinden, de efficiëntie tussen teams te vergelijken en middelen effectiever over de claimsorganisatie te verdelen. Het belang Geeft organisatorische context, zodat je prestaties tussen teams kunt vergelijken en overdrachtsproblemen tussen afdelingen zichtbaar worden. Vindplaats Deze Informatie hoort meestal bij het profiel van de toegewezen gebruiker of groep in ClaimCenter. Voorbeelden Afdeling autoclaimsOpstalclaimsteamAfdeling Bijzonder Onderzoek (SIU) | |||
| Betaalbedrag PaymentAmount | Het daadwerkelijk uitbetaalde bedrag voor een betalingsactiviteit. | ||
| Omschrijving Dit attribuut registreert het bedrag van elke afzonderlijke betaling op een claim. Eén claim kan gedurende de levenscyclus meerdere betalingen hebben. Dit is belangrijk 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. Het belang Houdt de financiële transacties binnen een claim bij, waardoor je betalingsbedragen en hun relatie tot procesactiviteiten kunt analyseren. Vindplaats Te vinden in betalingsgerelateerde entiteiten die aan de claim zijn gekoppeld, vaak in een transactie- of checktabel. Voorbeelden 4500.00125000.00500.00 | |||
| Bronsysteem SourceSystem | Het systeem waaruit de data is opgehaald. | ||
| Omschrijving Dit attribuut geeft de herkomst van de gebeurtenisdata aan. In een modern applicatielandschap kunnen claimgerelateerde gebeurtenissen uit meerdere systemen komen, zoals een core-systeem als Guidewire, een documentmanagementsysteem of een klantenportaal. Het specificeren van het bronsysteem is belangrijk voor data governance, het oplossen van datainconsistenties en om inzicht te krijgen in het technische omgeving rond het proces. Het helpt onderscheid te maken tussen kernprocesstappen en ondersteunende activiteiten uit perifere systemen. Het belang Geeft de herkomst van data aan, belangrijk voor data governance en voor analyses met meerdere gekoppelde systemen. Vindplaats Dit is doorgaans een statische waarde die tijdens het ETL-proces (extractie, transformatie en laden) wordt toegevoegd. Voorbeelden Guidewire ClaimCenter v10Klant Portal APIDocumentum | |||
| Eindtijd EndTime | De timestamp waarop een activiteit is afgerond. | ||
| Omschrijving 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 tijdstempels. 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. Het belang Maakt het mogelijk precies te meten hoe lang een activiteit duurt, met onderscheid tussen bewerkingstijd en wachttijd. Vindplaats Dit moet mogelijk worden afgeleid door een opvolgend gebeurtenis 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. | ||
| Omschrijving 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 hoogwaardige doorlopen vaak een strikter, complexer proces dan claims met een lage waarde. Processen per waardeband vergelijken kan kansen zichtbaar maken om de afhandeling van kleinere claims te vereenvoudigen of juist strengere controles toe te passen bij grote claims. Het belang Maakt segmentatie op financiële waarde mogelijk; claims met een hoogwaardige doorlopen vaak andere, complexere processen. Vindplaats 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. | ||
| Omschrijving 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. Het belang Brengt inefficiënties aan het licht wanneer Informatie niet in één keer volledig wordt verzameld, met procesvertragingen en herbehandeling tot gevolg. Vindplaats 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. | ||
| Omschrijving Deze vlag 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 belangrijk 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 bekijken door repetitieve, regelgestuurde taken te vinden die nu door mensen worden uitgevoerd. Het belang Maakt onderscheid tussen systeemgestuurde en menselijke activiteiten, belangrijk voor automatiseringsanalyse en het vinden van handmatige knelpunten. Vindplaats Dit moet vaak worden afgeleid. Zo kunnen gebeurtenissen 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 herstelwerk-lus vormt, wat betekent dat er wordt teruggekeerd naar een eerdere processtap. | ||
| Omschrijving Dit berekende attribuut markeert activiteiten die onderdeel zijn van een reworklus. Als het proces bijvoorbeeld van 'Investigation Completed' teruggaat naar 'Investigation Started', wordt de tweede 'Investigation Started'-activiteit aangemerkt als rework. Het vinden van rework is belangrijk 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 rework kan leiden tot aanzienlijke verbeteringen in kwaliteit en snelheid. Het belang Brengt procesinefficiënties en kwaliteitsproblemen aan het licht door activiteiten die onderdeel zijn van een rework-lus expliciet te markeren. Vindplaats Dit wordt in de Process Mining-tool berekend door de volgorde van activiteiten per case te analyseren. Voorbeelden truefalse | |||
| Polistype PolicyType | Het specifieke type verzekeringspolis waaronder de claim is ingediend. | ||
| Omschrijving Polistype biedt een fijnmazigere classificatie dan Claimtype en specificeert het verzekeringsproduct, zoals 'Woonhuis', 'Zakelijke auto' of 'Cyber Liability'. Dit detailniveau kan procesvarianten inzichtelijk maken die samenhangen met specifieke producten. Door het proces per polistype te analyseren, bekijk 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. Het belang Maakt procesanalyse per verzekeringsproduct mogelijk, zodat verschillen in behandeling op basis van polisdetails zichtbaar worden. Vindplaats 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. | ||
| Omschrijving 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 onmisbaar 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. Het belang Belangrijk voor compliance-analyses, omdat verschillende rechtsgebieden uiteenlopende regels kennen die het claimproces beïnvloeden. Vindplaats 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. | ||
| Omschrijving 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). Het belang Biedt belangrijke context over de herkomst van de claim en helpt de meldvertraging te analyseren (tijd tussen incident en indiening van de claim). Vindplaats Dit is een belangrijk 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. | ||
| Omschrijving 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. Het belang Levert een duidelijke, categorische uitkomst voor SLA-naleving, zodat je on-time prestaties eenvoudig kunt filteren, aggregeren en analyseren. Vindplaats Berekend veld: IF (ActualCloseDate <= ResolutionTargetDate, 'On Time', 'Late'). Voorbeelden Op tijdTe laat | |||
| Streefdatum voor afhandeling ResolutionTargetDate | De datum waarop de claim volgens interne of wettelijke SLA's afgerond moet zijn. | ||
| Omschrijving 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 belangrijk 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. Het belang Dit is de benchmark om naleving van Service Level Agreements (SLA's) te meten en schadeclaims te vinden die risico lopen op vertraging. Vindplaats 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 | |||
| Tijdstip van extractie LastDataUpdate | De timestamp die aangeeft wanneer de data voor het voor het laatst is bijgewerkt of uit het bronsysteem is opgehaald. | ||
| Omschrijving Dit attribuut bevat de timestamp van de meest recente data-extractie uit het bronsysteem. Het betreft metagegevens die belangrijk zijn om de relevantie 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. Het belang Geeft de relevantie van de data aan, zodat gebruikers weten hoe up-to-date de procesanalyse is. Vindplaats 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 | |||
Activiteiten binnen de schadeafhandeling
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Betaling goedgekeurd | Staat voor de formele goedkeuring van een uitkering. Dit is een belangrijk audit-gebeurtenis en wordt expliciet vastgelegd wanneer een bevoegde gebruiker de transactie goedkeurt. | ||
| Het belang 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. Vindplaats Dit is vaak een expliciet gebeurtenis 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. | ||
| Het belang Deze activiteit is belangrijk om de efficiëntie van het uitbetalingsproces te meten. Het helpt onderscheid te maken tussen vertraging bij goedkeuring en vertraging bij de daadwerkelijke uitbetaling. Vindplaats 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. | ||
| Het belang Als primaire startgebeurtenis is deze activiteit onmisbaar om de end-to-end doorlooptijd van claims te meten. Dit is de basis voor alle daaropvolgende prestaties- en duur-KPI’s. Vindplaats Dit is een expliciet gebeurtenis, afgeleid van CreateTime in de tabel cc_claim. Het aanmaken van een nieuw record met een unieke Claim ID is de trigger voor het gebeurtenis. Vastleggen Bepaal de aanmaaktijdstempel van het nieuwe record in de basistabel van de Claim-entiteit. Gebeurtenistype explicit | |||
| Claim gesloten | Geeft aan dat een claim succesvol is afgesloten nadat alle activiteiten en betalingen zijn afgerond. Dit is het primaire eindgebeurtenis voor een geslaagde afhandeling en wordt afgeleid uit een wijziging in de hoofdstatus van de claim. | ||
| Het belang Als primaire eindgebeurtenis is deze activiteit belangrijk 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. Vindplaats Afgeleid uit een wijziging van het veld State in de tabel cc_claim naar 'Closed'. De tijdstempel van het gebeurtenis is de CloseDate op het claimrecord. Vastleggen Bepaal wanneer het hoofdstatusveld van de claim wordt bijgewerkt naar 'Closed'. Gebeurtenistype inferred | |||
| Claim geweigerd | Geeft de definitieve afwijzing van een claim weer en vormt het eindpunt van het proces. Dit gebeurtenis wordt afgeleid wanneer de claimstatus wijzigt naar een gesloten status met reden ‘Afgewezen’. | ||
| Het belang Dit is een belangrijk uitkomstmoment. Door de frequentie, oorzaken en procespaden die tot afwijzingen leiden te analyseren, worden problemen bij schademelding, onderzoek of polisinterpretatie zichtbaar. Vindplaats 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 gebeurtenis 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. | ||
| Het belang Exposures zijn belangrijk 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. Vindplaats 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 belangrijk financieel gebeurtenis en wordt expliciet vastgelegd. | ||
| Het belang Deze mijlpaal is belangrijk 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. Vindplaats Dit gebeurtenis 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 gebeurtenis. 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 'Activiteit' (taak) voor het Informatieverzoek als 'Completed' is gemarkeerd. | ||
| Het belang 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. Vindplaats Afgeleid van de CloseTime van een cc_activity-record waarbij het ActiviteitPattern 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 'Activiteit' (taak) die in ClaimCenter is aangemaakt. | ||
| Het belang 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. Vindplaats Afgeleid van de CreateTime van een cc_activity-record waarbij het ActiviteitPattern 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 gebeurtenis wordt doorgaans afgeleid uit een statuswijziging op de Exposure-entiteit. | ||
| Het belang Dit is een belangrijke 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. Vindplaats 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 gebeurtenis 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 gebeurtenis wordt afgeleid uit een specifieke reeks statuswijzigingen. | ||
| Het belang Deze activiteit duidt op rework. 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. Vindplaats 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. | ||
| Het belang Het volgen van toewijzingen is belangrijk om de werkdruk van schadebehandelaars te analyseren, routeringsknelpunten te vinden en de tijd tot eerste actie van de toegewezen behandelaar te meten. Vindplaats Afgeleid uit de tabel cc_history door wijzigingen in de velden AssignedGebruiker of AssignedGroup voor een specifieke Claim ID te volgen. De timestamp van de wijziging geeft aan wanneer het gebeurtenis 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 'Activiteit' (taak) in Guidewire. | ||
| Het belang Deze activiteit is het begin van een belangrijke, 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. Vindplaats Afgeleid uit de CreateTime van een cc_activity-record waarbij ActiviteitPattern 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 | |||
| Uitkeringsbedrag 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'. | ||
| Het belang 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. Vindplaats 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 transacpakketecord in een vooraf goedgekeurde status. Gebeurtenistype inferred | |||
Extractiegidsen
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, ActiviteitNaam 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_gebeurtenis_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 relevantie 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:
- ActiviteitPattern-namen (bijv. 'fnol', 'investigation', 'Request additional Informapakketmation')
- 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
-- 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, ActiviteitNaam 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_gebeurtenis_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 relevantie 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:
- ActiviteitPattern-namen (bijv. 'fnol', 'investigation', 'Request additional Informapakketmation')
- 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
-- 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, ActiviteitNaam 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_gebeurtenis_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 relevantie 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:
- ActiviteitPattern-namen (bijv. 'fnol', 'investigation', 'Request additional Informapakketmation')
- 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
-- 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';