Seu Template de dados para processamento de sinistros
Seu Template de dados para processamento de sinistros
- Atributos recomendados para coleta
- Principais atividades para acompanhar
- Orientações para extração de dados do Guidewire ClaimCenter
Atributos do processamento de sinistros
| Nome | Descrição | ||
|---|---|---|---|
| Horário do evento EventTime | A data e a hora exatas em que a atividade ocorreu. | ||
| Descrição Esse registro de data e hora marca o momento exato em que uma atividade foi registrada no sistema. Ele é fundamental para todas as análises de processo baseadas em tempo. A ordenação cronológica de EventTime para um único ID do caso permite reconstruir o fluxo do processo. A diferença de tempo entre eventos consecutivos é usada para calcular tempos de ciclo, tempos de espera e tempos de processamento, essenciais para analisar a performance, identificar gargalos e monitorar SLAs. Por que isso importa Esse registro de data e hora é essencial para ordenar eventos, calcular tempos de ciclo e durações e identificar atrasos no processo. Onde encontrar Encontrado junto aos dados de eventos ou atividades nas tabelas de histórico ou auditoria do Guidewire ClaimCenter, geralmente em um campo como 'CreateTime' ou 'UpdateTime'. Exemplos 2023-05-15T09:00:00Z2023-05-16T14:30:15Z2023-06-01T11:20:00Z | |||
| ID do sinistro ClaimID | Identificador exclusivo de cada sinistro, usado como identificador principal do caso. | ||
| Descrição O ID do sinistro é a base da análise do processo de sinistros, pois identifica cada caso de forma exclusiva, da abertura ao encerramento. Ele conecta todas as atividades, documentos, pagamentos e comunicações relacionados, oferecendo uma visão completa e coerente do ciclo de vida do sinistro. No Process Mining, cada evento do conjunto de dados está associado a um ID do sinistro, o que permite reconstruir o fluxo do processo de ponta a ponta. Isso é essencial para analisar o tempo de ciclo, identificar variações no processo e acompanhar a jornada do sinistro entre diferentes departamentos e reguladores. Por que isso importa É a chave fundamental que conecta todos os eventos relacionados e permite rastrear e analisar toda a jornada de um único sinistro. Onde encontrar Esta é uma chave primária no Guidewire ClaimCenter, geralmente encontrada como Claim.ClaimNumber ou em um campo semelhante na entidade principal Claim. Exemplos 000-123-45678000-987-65432001-456-11223 | |||
| Nome da atividade ActivityName | Nome da atividade de negócio ou do evento ocorrido em um momento específico do ciclo de vida do sinistro. | ||
| Descrição Este atributo descreve uma etapa ou marco específico do processo de sinistros, como 'Sinistro criado', 'Investigação iniciada' ou 'Pagamento emitido'. A sequência dessas atividades para um determinado ID do caso forma o fluxo do processo. Analisar a sequência, a frequência e o tempo entre as atividades é a base do Process Mining. Isso permite descobrir modelos de processo, identificar gargalos, detectar ciclos de retrabalho e analisar desvios do processo. Por que isso importa Define as etapas do processo, permitindo visualizar mapas de processo e analisar o fluxo e os gargalos. Onde encontrar Normalmente, esse dado é obtido de tabelas de eventos ou registros de auditoria no ClaimCenter, mapeando eventos específicos do sistema ou mudanças de status para nomes padronizados de atividades. Exemplos Sinistro criadoDecisão sobre responsabilidade definidaPagamento emitidoSinistro encerrado | |||
| Causa da perda LossCause | O motivo ou a causa específica do evento que gerou a perda, como colisão, incêndio ou dano causado por água. | ||
| Descrição Este atributo fornece detalhes sobre o motivo do registro do sinistro. A causa da perda costuma determinar as etapas necessárias da investigação, o tipo de especialista envolvido e a complexidade geral do sinistro. Analisar o processo por causa da perda pode revelar padrões ocultos. Por exemplo, sinistros relacionados a danos causados por água podem ter mais retrabalho ou exigir mais especialistas do que sinistros por roubo. Esses insights ajudam a criar procedimentos de tratamento mais especializados e eficientes. Por que isso importa Fornece contexto sobre a natureza do sinistro e permite analisar como diferentes causas de perda afetam o fluxo e a duração do processo. Onde encontrar É um campo padrão da entidade Claim, geralmente chamado 'LossCause'. Exemplos ColisãoIncêndioDano causado por águaRoubo | |||
| Regulador responsável AssignedAdjuster | O nome ou ID da pessoa responsável pelo sinistro ou por uma atividade específica. | ||
| Descrição Este atributo identifica a pessoa reguladora responsável por um sinistro em determinado momento. Ela pode ser responsável pelo sinistro inteiro ou por tarefas específicas. Analisar os dados por regulador responsável é essencial para equilibrar a carga de trabalho, gerenciar a performance e identificar oportunidades de treinamento. Isso ajuda a responder perguntas como: 'Quais reguladores têm mais sinistros sob sua responsabilidade?', 'Há diferenças de performance entre os reguladores?' e 'O trabalho está distribuído de forma equilibrada?'. Por que isso importa Acompanha o envolvimento das pessoas, permitindo analisar a carga de trabalho, comparar a performance e identificar gargalos relacionados a recursos. Onde encontrar Disponível na entidade Claim ou Exposure do ClaimCenter, geralmente vinculado ao objeto User, por exemplo, Claim.Assignee. Exemplos j.doem.smiths.jones | |||
| Status do sinistro ClaimStatus | O status geral do sinistro no momento do evento, como aberto, encerrado ou negado. | ||
| Descrição Este atributo representa o estado geral do sinistro. Entre os principais status estão 'Aberto', 'Encerrado', 'Negado' e 'Reaberto'. O status final do sinistro é uma métrica de resultado essencial. Acompanhar as mudanças no status do sinistro ajuda a definir marcos e resultados importantes do processo. Esse dado é usado para identificar a resolução final, calcular taxas de rejeição e analisar a frequência com que sinistros são reabertos após o encerramento, o que muitas vezes indica problemas no processo ou insatisfação do cliente. Por que isso importa Indica o resultado do sinistro e é essencial para analisar taxas de rejeição, padrões de encerramento e frequência de reabertura. Onde encontrar É um campo central da entidade Claim, geralmente chamado 'State' ou 'Status'. Exemplos AbertoEncerradoNegadoReaberto | |||
| Tipo de sinistro ClaimType | A categoria do sinistro de seguro, como automóvel, patrimonial ou responsabilidade civil. | ||
| Descrição O tipo de sinistro é uma classificação fundamental, baseada na linha de negócio ou na natureza da perda. Cada tipo pode seguir um processo diferente, ter um nível de complexidade próprio e estar sujeito a regulamentações específicas. Segmentar a análise do processo por tipo de sinistro é essencial para obter insights relevantes. Isso permite comparar a performance entre linhas de negócio, identificar gargalos específicos de cada tipo e adaptar as iniciativas de melhoria às características de cada categoria de sinistro. Por que isso importa Permite segmentar os sinistros, já que tipos diferentes, como automóvel e patrimonial, costumam seguir processos distintos e ter metas de performance diferentes. Onde encontrar Derivado da entidade Policy ou Claim no ClaimCenter, geralmente com base no código da linha de negócio (LOB). Exemplos Automóvel de passeioImóvel comercialResponsabilidade civil geralAcidentes de trabalho | |||
| Data da ocorrência LossDate | A data em que ocorreu o incidente ou a perda que deu origem ao sinistro. | ||
| Descrição A data da ocorrência é a data do evento em si, como um acidente de carro ou um dano ao imóvel, que deu origem ao sinistro. Ela é diferente da data em que o sinistro foi comunicado ou criado. O intervalo entre a data da ocorrência e a atividade 'Sinistro criado', conhecido como atraso na comunicação, é um KPI importante. Analisá-lo pode revelar insights sobre o comportamento dos clientes e a eficácia dos canais de comunicação inicial do sinistro. Por que isso importa Fornece contexto essencial sobre a origem do sinistro e ajuda a analisar o atraso na comunicação, ou seja, o tempo entre o incidente e o registro do sinistro. Onde encontrar É um campo de data fundamental da entidade Claim, geralmente chamado 'LossDate'. Exemplos 2023-05-102023-04-202023-05-28 | |||
| Data prevista para resolução ResolutionTargetDate | A data em que se espera que o sinistro seja resolvido, de acordo com os SLAs internos ou regulatórios. | ||
| Descrição A data prevista para resolução é o prazo definido para encerrar o sinistro, muitas vezes determinado por fatores como jurisdição, tipo de sinistro e condições da apólice. Ela serve como referência para medir a performance e a conformidade. Este atributo é essencial para criar Dashboards e KPIs de cumprimento de SLA. Ao comparar a data real da atividade 'Sinistro encerrado' com a data prevista, a análise pode sinalizar automaticamente os sinistros atrasados, medir a taxa de cumprimento do prazo e identificar os tipos de sinistro ou departamentos com dificuldade para atingir as metas. Por que isso importa É a referência para medir o cumprimento do Acordo de Nível de Serviço (SLA) e identificar sinistros com risco de atraso. Onde encontrar Pode ser um campo personalizado ou derivado de regras de negócio configuradas no ClaimCenter, possivelmente relacionadas a métricas específicas de sinistros. Exemplos 2023-06-142023-07-202023-08-28 | |||
| Departamento Department | A unidade de negócio ou o departamento responsável por tratar a atividade do sinistro. | ||
| Descrição Este atributo indica o departamento ou time ao qual o regulador responsável pertence, como 'Sinistros de automóveis', 'Sinistros patrimoniais' ou 'Unidade de investigações especiais'. Ele fornece contexto organizacional para o processo. Analisar os dados por departamento é essencial para entender a performance do processo em toda a organização. Isso ajuda a identificar atrasos nas transferências entre departamentos, comparar a eficiência dos times e alocar recursos de forma mais eficaz na área de sinistros. Por que isso importa Fornece contexto organizacional, permitindo analisar a performance de diferentes times e identificar problemas nas transferências entre departamentos. Onde encontrar Normalmente, essas informações estão associadas ao perfil do usuário ou grupo responsável no ClaimCenter. Exemplos Divisão de sinistros de automóveisUnidade de sinistros patrimoniaisUnidade de investigações especiais (SIU) | |||
| É automatizado IsAutomated | Indicador que informa se uma atividade foi realizada automaticamente pelo sistema ou por uma pessoa. | ||
| Descrição Este atributo booleano diferencia as atividades executadas pelo sistema, como a criação automática de reservas ou o envio de correspondências geradas pelo sistema, daquelas realizadas manualmente por um regulador. Analisar este atributo é essencial para entender o nível de automação do processo de sinistros. Isso ajuda a identificar pontos com muita intervenção manual, medir a eficácia das iniciativas de processamento direto e encontrar novas oportunidades de automação, identificando tarefas repetitivas e baseadas em regras que ainda são realizadas por pessoas. Por que isso importa Diferencia as atividades realizadas pelo sistema daquelas realizadas por pessoas, algo essencial para analisar a automação e identificar gargalos manuais. Onde encontrar Muitas vezes, esse dado precisa ser derivado. Por exemplo, eventos registrados por um usuário genérico do sistema podem ser sinalizados como automatizados. Exemplos truefalse | |||
| É retrabalho IsRework | Indicador que informa se uma atividade faz parte de um ciclo de retrabalho, ou seja, se representa o retorno a uma etapa anterior do processo. | ||
| Descrição Este atributo calculado sinaliza as atividades que fazem parte de um ciclo de retrabalho. Por exemplo, se o processo passa de 'Investigação concluída' para 'Investigação iniciada', a segunda atividade 'Investigação iniciada' será sinalizada como retrabalho. Identificar retrabalho é fundamental para revelar ineficiências do processo e problemas de qualidade. O Dashboard de frequência de retrabalho e rejeição usa esta métrica para quantificar com que frequência os sinistros se desviam do 'caminho ideal'. Analisar as causas do retrabalho pode melhorar significativamente a qualidade e a velocidade do processo. Por que isso importa Evidencia ineficiências do processo e problemas de qualidade ao sinalizar explicitamente as atividades que fazem parte de um ciclo de retrabalho. Onde encontrar É calculado na ferramenta de Process Mining por meio da análise da sequência de atividades de cada caso. Exemplos truefalse | |||
| Estado da jurisdição JurisdictionState | O estado ou a jurisdição que rege o sinistro e determina os requisitos regulatórios. | ||
| Descrição Este atributo especifica a jurisdição legal, como o estado dos US, sob a qual o sinistro está sendo tratado. As regulamentações de seguros podem variar bastante entre jurisdições e afetar as etapas exigidas do processo, os prazos de comunicação e a documentação. Este atributo é essencial para monitorar a conformidade. Analisar o processo por jurisdição ajuda a verificar se os requisitos regulatórios específicos de cada estado estão sendo cumpridos. Também pode explicar variações nos tempos de ciclo ou nos caminhos do processo causadas por exigências legais, e não por ineficiências operacionais. Por que isso importa Essencial para a análise de conformidade, pois as regulamentações variam entre jurisdições e afetam o processo de sinistros. Onde encontrar Campo padrão da entidade Claim, geralmente chamado 'JurisdictionState'. Exemplos CANYTXFL | |||
| Horário de término EndTime | O registro de data e hora que indica quando uma atividade foi concluída. | ||
| Descrição O horário de término marca a conclusão de uma atividade, especialmente de tarefas com duração mensurável, como 'Investigação' ou 'Análise de documentos'. Muitas atividades analisadas com Process Mining são instantâneas, e o horário de início é suficiente. Já as atividades com início e fim definidos são representadas com mais precisão usando os dois registros de data e hora. Este atributo permite calcular com precisão o tempo de processamento da atividade, separado do tempo de espera. Assim, você identifica quais tarefas específicas consomem mais tempo, em vez de apenas observar longos intervalos entre etapas. Por que isso importa Permite medir com precisão quanto tempo uma atividade leva para ser concluída, separando o tempo de processamento do tempo de espera. Onde encontrar Talvez seja necessário derivar esse dado identificando um evento posterior que conclua logicamente a atividade, como uma mudança de status de 'Em andamento' para 'Concluído'. Exemplos 2023-05-15T17:00:00Z2023-05-16T15:00:00Z2023-06-02T10:00:00Z | |||
| Sistema de origem SourceSystem | O sistema de onde os dados foram extraídos. | ||
| Descrição Este atributo identifica a origem dos dados do evento. Em um ambiente corporativo moderno, os eventos relacionados a sinistros podem vir de vários sistemas, como um sistema central, por exemplo, o Guidewire, um sistema de gestão de documentos ou um portal do cliente. Especificar o sistema de origem é essencial para a governança de dados, a investigação de inconsistências e a compreensão do ambiente tecnológico do processo. Isso ajuda a diferenciar as etapas centrais do processo das atividades de apoio realizadas em sistemas periféricos. Por que isso importa Identifica a origem dos dados, essencial para a governança de dados e para análises que envolvem vários sistemas integrados. Onde encontrar Normalmente, esse é um valor estático adicionado durante o processo de extração, transformação e carregamento (ETL) dos dados. Exemplos Guidewire ClaimCenter v10API do portal do clienteDocumentum | |||
| Solicitação repetida de informações RepeatedInfoRequestFlag | Indicador que informa se a atividade 'Informações adicionais solicitadas' ocorreu mais de uma vez para o mesmo sinistro. | ||
| Descrição Este indicador booleano recebe o valor verdadeiro quando há mais de uma atividade 'Informações adicionais solicitadas' para um sinistro. Isso costuma apontar ineficiências na etapa inicial de coleta de informações. Este atributo dá suporte direto ao KPI de taxa de solicitações repetidas de informações. Ele ajuda a quantificar o problema de uma apuração inicial incompleta, que pode causar atrasos significativos e frustração para o cliente. Analisar os sinistros sinalizados pode ajudar a melhorar os checklists e os procedimentos dos reguladores, garantindo que todas as informações necessárias sejam solicitadas de uma só vez. Por que isso importa Identifica ineficiências na coleta inicial de informações, quando ela não é completa e gera atrasos e retrabalho. Onde encontrar Calculado na ferramenta de Process Mining pela contagem das ocorrências da atividade 'Informações adicionais solicitadas' em cada caso. Exemplos truefalse | |||
| Status do SLA SLAState | Indica se o sinistro foi encerrado até a data prevista para resolução. | ||
| Descrição Este atributo calculado informa, por categoria, se cada sinistro encerrado cumpriu o SLA. Ele é derivado da comparação entre a data e a hora da atividade 'Sinistro encerrado' e a data prevista para resolução. Este atributo dá suporte direto ao Dashboard de cumprimento da data prevista para resolução do sinistro, simplificando a análise em categorias claras, como 'No prazo' ou 'Atrasado'. Ele facilita a filtragem e a agregação dos dados para calcular a taxa geral de cumprimento do SLA e aprofundar a análise das causas dos atrasos. Por que isso importa Apresenta o resultado do cumprimento do SLA em categorias claras, facilitando a filtragem, a agregação e a análise da performance dentro do prazo. Onde encontrar Campo calculado: IF (ActualCloseDate <= ResolutionTargetDate, 'No prazo', 'Atrasado'). Exemplos No prazoAtrasado | |||
| Tipo de apólice PolicyType | O tipo específico de apólice de seguro em que o sinistro foi registrado. | ||
| Descrição O tipo de apólice oferece uma classificação mais detalhada do que o tipo de sinistro, especificando o produto de seguro, como 'Residencial', 'Automóvel comercial' ou 'Responsabilidade cibernética'. Esse nível de detalhe pode revelar variações no processo relacionadas a produtos específicos. Analisar o processo por tipo de apólice ajuda a identificar ineficiências específicas de cada produto. Por exemplo, sinistros de uma apólice recém-lançada podem seguir um processo menos maduro e sofrer atrasos. Essa análise pode orientar o desenvolvimento de produtos e a padronização de processos. Por que isso importa Permite analisar o processo de produtos de seguro específicos e identificar variações no tratamento de acordo com as características da apólice. Onde encontrar Essa informação está na entidade Policy, vinculada à entidade Claim. Exemplos Seguro residencial multirriscosResponsabilidade civil de automóveis comerciaisSeguro de transporte marítimo e terrestre | |||
| Última atualização dos dados LastDataUpdate | O registro de data e hora que indica quando os dados foram atualizados ou extraídos pela última vez do sistema de origem. | ||
| Descrição Este atributo informa a data e a hora da extração mais recente de dados do sistema de origem. É um campo de metadados essencial para entender o nível de atualização da análise. Os Dashboards e as análises devem exibir essa informação em destaque para que as pessoas saibam o quanto os dados são atuais. Isso ajuda a avaliar se os insights refletem o estado atual das operações ou se têm como base dados mais antigos. Por que isso importa Indica o nível de atualização dos dados e ajuda as pessoas a entenderem o quanto a análise do processo é atual. Onde encontrar Esse valor é gerado e armazenado durante o processo de ETL e representa a data e a hora do carregamento dos dados. Exemplos 2024-07-28T04:00:00Z2024-07-29T04:00:00Z | |||
| Valor do pagamento PaymentAmount | O valor efetivamente pago em uma atividade de pagamento. | ||
| Descrição Este atributo registra o valor de cada pagamento feito para um sinistro. Um único sinistro pode ter vários pagamentos ao longo do seu ciclo de vida. Esse dado é essencial para a análise financeira no contexto do Process Mining. Ele pode ser usado para acompanhar o total pago por sinistro, analisar o tempo de aprovação dos pagamentos de acordo com o valor e relacionar ineficiências do processo a resultados financeiros. Por exemplo, sinistros com ciclos mais longos podem estar associados a pagamentos totais maiores. Por que isso importa Acompanha as transações financeiras de um sinistro e permite analisar os valores pagos e sua relação com as atividades do processo. Onde encontrar Encontrado em entidades relacionadas a pagamentos e vinculadas ao sinistro, geralmente em uma tabela de transações ou cheques. Exemplos 4500.00125000.00500.00 | |||
| Valor solicitado ClaimedAmount | O valor monetário total solicitado inicialmente pelo segurado. | ||
| Descrição Este atributo representa o valor da perda informado por quem registrou o sinistro. Muitas vezes, é uma estimativa inicial que pode mudar durante a investigação e a definição das reservas. Analisar o valor solicitado ajuda a segmentar os sinistros pelo impacto financeiro. Sinistros de alto valor costumam seguir um processo mais rigoroso e complexo do que os de baixo valor. Comparar o processo entre diferentes faixas de valor pode revelar oportunidades para simplificar o tratamento de sinistros menores ou aplicar controles mais rigorosos aos de maior valor. Por que isso importa Permite segmentar os sinistros por valor financeiro, já que os de alto valor podem seguir processos diferentes e mais complexos. Onde encontrar Essa informação talvez não esteja em um único campo e pode ser derivada das estimativas iniciais de perda registradas nas exposições. Exemplos 5000.00150000.00750.50 | |||
Atividades do processamento de sinistros
| Atividade | Descrição | ||
|---|---|---|---|
| Exposição criada | Esta atividade indica a criação de uma exposição, que representa uma responsabilidade potencial específica ou um tipo de perda relacionado ao sinistro (por exemplo, danos ao veículo ou lesão). No Guidewire, este é um evento explícito. | ||
| Por que isso importa As exposições são fundamentais para segmentar e analisar os sinistros. Acompanhar sua criação ajuda a entender as variações do processo conforme a complexidade do sinistro e o tipo de perda. Onde encontrar Registrado a partir de CreateTime de um novo registro na tabela cc_exposure. Cada registro está vinculado a um único ID do sinistro. Coleta Identifique a data e hora de criação de um novo registro na tabela da entidade Exposure. Tipo de evento explicit | |||
| Pagamento aprovado | Representa a aprovação formal de um pagamento de liquidação. Este é um evento crítico para auditoria, registrado explicitamente quando um usuário autorizado aprova a transação. | ||
| Por que isso importa Este marco importante libera a etapa final do pagamento. Analisar o tempo antes e depois desta atividade ajuda a isolar atrasos causados pelo fluxo de aprovação ou pela disponibilidade dos gestores. Onde encontrar Em geral, este é um evento explícito registrado na tabela cc_history, relacionado a uma entidade cc_check ou cc_transaction, que registra a alteração de status de 'Aguardando aprovação' para 'Aprovado'. Coleta Acompanhe a alteração de status para 'Aprovado' de uma transação de pagamento específica. Tipo de evento explicit | |||
| Pagamento emitido | Esta atividade marca a etapa final do processo de pagamento, quando o pagamento é oficialmente emitido e enviado ao sistema financeiro. Trata-se de uma transação financeira explícita e registrada. | ||
| Por que isso importa Esta atividade é essencial para medir a eficiência do envio de pagamentos. Ela ajuda a diferenciar atrasos na aprovação de atrasos na emissão efetiva dos valores. Onde encontrar Registrado a partir de IssueDate ou de uma alteração de status para 'Emitido' ou 'Enviado' na entidade cc_check ou cc_transaction. Em geral, este é um evento explícito com data e hora registradas. Coleta Identifique IssueDate ou a data e hora da alteração de status para 'Emitido' no registro do pagamento. Tipo de evento explicit | |||
| Reserva inicial definida | Marca a criação da primeira transação de reserva financeira para uma exposição, estimando o custo potencial do sinistro. Este é um evento financeiro crítico, registrado explicitamente. | ||
| Por que isso importa Este marco é essencial para a análise financeira e para entender a rapidez com que a responsabilidade potencial é avaliada. Atrasos podem afetar o planejamento e os relatórios financeiros. Onde encontrar Este evento é registrado quando o primeiro registro cc_reserveline associado a uma exposição do sinistro é criado. CreateTime da transação indica a data e hora do evento. Coleta Encontre a data e hora de criação mais antiga entre todas as linhas de reserva das exposições de um determinado sinistro. Tipo de evento explicit | |||
| Sinistro criado | Esta atividade marca o primeiro aviso de sinistro (FNOL) e a criação oficial de um novo registro de sinistro no Guidewire ClaimCenter. O evento é registrado explicitamente quando uma nova entidade Claim é salva no banco de dados pela primeira vez. | ||
| Por que isso importa Como principal evento de início, esta atividade é essencial para medir o tempo de ciclo do sinistro de ponta a ponta. Ela serve de referência para todos os KPIs subsequentes de performance e duração. Onde encontrar Este é um evento explícito, registrado a partir de CreateTime na tabela cc_claim. A criação de um novo registro com um ID do sinistro exclusivo aciona o evento. Coleta Identifique a data e hora de criação do novo registro na tabela da entidade Claim principal. Tipo de evento explicit | |||
| Sinistro encerrado | Marca o encerramento bem-sucedido de um sinistro, após a conclusão de todas as atividades e pagamentos. Este é o principal evento de encerramento bem-sucedido, inferido por uma alteração no status principal do sinistro. | ||
| Por que isso importa Como principal evento de encerramento, esta atividade é essencial para calcular o tempo de ciclo de ponta a ponta e medir o cumprimento dos SLAs. Ela indica a conclusão do ciclo de vida do sinistro. Onde encontrar Inferido quando o campo State da tabela cc_claim muda para 'Closed'. A data e hora do evento são indicadas por CloseDate no registro do sinistro. Coleta Identifique quando o campo de status principal do sinistro é atualizado para 'Closed'. Tipo de evento inferred | |||
| Sinistro negado | Representa a decisão final de negar um sinistro e marca o encerramento do processo. O evento é inferido quando o status do sinistro muda para encerrado com o motivo 'Negado'. | ||
| Por que isso importa Este é um evento de resultado crítico. Analisar a frequência, os motivos e os caminhos do processo que levam às negativas ajuda a identificar problemas na abertura do sinistro, na investigação ou na interpretação da apólice. Onde encontrar Inferido quando o campo State da tabela cc_claim muda para 'Closed' e o campo CloseReason é 'Denied' ou tem um valor semelhante. A data e hora do evento são indicadas por CloseDate. Coleta Filtre as alterações de status do sinistro para 'Closed' cujo código de motivo indique uma negativa. Tipo de evento inferred | |||
| Decisão sobre responsabilidade definida | Indica o momento em que a responsabilidade ou culpa por uma exposição é determinada. Em geral, o evento é inferido por uma alteração de status na entidade Exposure. | ||
| Por que isso importa Este marco decisório é crítico, pois libera as etapas de liquidação e pagamento. Analisar o tempo até essa decisão ajuda a identificar gargalos nas etapas de investigação e avaliação. Onde encontrar Inferido da tabela cc_history, acompanhando uma alteração em State ou em um campo personalizado de status de responsabilidade na entidade cc_exposure. A data e hora do registro de histórico indicam quando o evento ocorreu. Coleta Monitore os logs de auditoria ou as tabelas de histórico para identificar atualizações no estado ou no status de responsabilidade da exposição. Tipo de evento inferred | |||
| Informações adicionais recebidas | Marca a conclusão de uma solicitação de informações adicionais. O evento é registrado quando a Activity (tarefa) correspondente à solicitação de informações é marcada como 'Concluída'. | ||
| Por que isso importa Este é o ponto final do KPI 'Tempo de ciclo da coleta de informações adicionais'. O longo intervalo entre a solicitação e o recebimento é uma causa comum de atraso no processo de sinistros. Onde encontrar Registrado a partir de CloseTime de um registro cc_activity cujo ActivityPattern está relacionado a uma solicitação de informações. O status da atividade deve ser 'Concluída'. Coleta Identifique a data e hora de conclusão de uma tarefa de solicitação de informações externas. Tipo de evento explicit | |||
| Informações adicionais solicitadas | Representa uma solicitação enviada ao solicitante do sinistro ou a terceiros para obter mais informações ou documentos. Em geral, o evento é registrado como uma Activity (tarefa) criada explicitamente no ClaimCenter. | ||
| Por que isso importa Esta atividade marca o início da medição do KPI 'Tempo de ciclo da coleta de informações adicionais'. Ocorrências frequentes podem indicar problemas no processo de FNOL ou ineficiência na coleta de informações. Onde encontrar Registrado a partir de CreateTime de um registro cc_activity cujo ActivityPattern está relacionado à solicitação de documentos ou informações a uma parte externa. Coleta Identifique a criação de uma tarefa para solicitar informações externas. Tipo de evento explicit | |||
| Investigação iniciada | Indica o início formal da fase de investigação de um sinistro ou exposição. Muitas vezes, o evento é inferido pela criação da primeira Activity (tarefa) relacionada à investigação no Guidewire. | ||
| Por que isso importa Esta atividade marca o início de uma fase importante, que costuma ser longa. Analisar o tempo até o início da investigação e a duração da própria investigação ajuda a revelar gargalos importantes. Onde encontrar Inferido a partir de CreateTime de um registro cc_activity cujo ActivityPattern está relacionado à investigação (por exemplo, 'Investigação inicial', 'Contatar testemunha'). Coleta Identifique a primeira criação de uma tarefa com padrão ou assunto relacionado à investigação. Tipo de evento inferred | |||
| Sinistro atribuído | Representa a atribuição de um sinistro a um usuário específico (regulador) ou grupo responsável pelo tratamento. Em geral, o evento é inferido pelo monitoramento de alterações nos campos de atribuição da entidade Claim. | ||
| Por que isso importa Acompanhar as atribuições é essencial para analisar a carga de trabalho dos reguladores, identificar gargalos no encaminhamento e medir o tempo até a primeira ação do responsável pelo caso. Onde encontrar Inferido da tabela cc_history, acompanhando alterações nos campos AssignedUser ou AssignedGroup associados a um ID do sinistro específico. A data e hora da alteração indicam quando o evento ocorreu. Coleta Monitore os logs de auditoria ou as tabelas de histórico para identificar atualizações nos campos de atribuição do sinistro. Tipo de evento inferred | |||
| Sinistro reaberto | Representa a mudança do status de um sinistro de 'Closed' para 'Open' para que sejam realizados trabalhos adicionais. O evento é inferido a partir de uma sequência específica de alterações de status. | ||
| Por que isso importa Esta atividade indica retrabalho. Um grande volume de sinistros reabertos pode apontar problemas na liquidação inicial, danos não identificados ou outras falhas no processo, aumentando os custos e reduzindo a eficiência. Onde encontrar Inferido da tabela cc_history, identificando uma alteração no campo State da entidade cc_claim de 'Closed' para 'Open' ou outro status ativo. Coleta Monitore o campo de status principal do sinistro para identificar uma transição de encerrado para aberto. Tipo de evento inferred | |||
| Valor da liquidação calculado | Esta atividade representa o momento em que o valor da liquidação é definido, mas ainda não foi aprovado para pagamento. O evento pode ser inferido pela criação de um pagamento com status 'Aguardando aprovação'. | ||
| Por que isso importa Marca a transição da avaliação para o pagamento. É o ponto de partida para medir o KPI 'Tempo de autorização do pagamento' e revelar atrasos na cadeia de aprovação. Onde encontrar Inferido a partir de CreateTime de um registro cc_check ou cc_transaction cujo status inicial seja 'Aguardando aprovação' ou um status semelhante anterior a 'Aprovado'. Coleta Identifique a criação de um registro de pagamento ou transação com status anterior à aprovação. Tipo de evento inferred | |||
Guias de extração
Etapas
- Verifique os pré-requisitos: Confirme se você tem as permissões e credenciais necessárias para acessar o banco de dados do data mart do Guidewire DataHub / InfoCenter com privilégios de leitura. Verifique se os jobs de ETL que alimentam o data mart de sinistros estão sendo executados corretamente e se os dados estão atualizados.
- Conecte-se ao banco de dados: Use um cliente SQL padrão, como DBeaver, SQL Server Management Studio ou ferramenta semelhante, para se conectar ao servidor do banco de dados do data mart.
- Explore o esquema: Antes de executar a consulta completa, familiarize-se com o esquema do data mart. Identifique as tabelas principais de sinistros, exposições, atividades e transações financeiras. Em geral, os nomes das tabelas incluem sufixos como _dim (dimensão) e _fact (fato). Isso ajuda a validar os nomes de tabelas e colunas de exemplo no script fornecido.
- Prepare a consulta SQL: Copie o script SQL completo fornecido na seção de consulta e cole-o no editor de consultas do seu cliente SQL.
- Personalize os valores de exemplo: Revise o script com atenção e substitua todos os valores de exemplo. Isso inclui o nome do banco de dados/esquema (por exemplo, [YourDataMart]), os parâmetros do período ('[StartDate]', '[EndDate]') e os valores de configuração específicos do sistema (por exemplo, padrões de atividade e códigos de status).
- Execute a consulta: Execute a consulta SQL modificada no data mart. O tempo de execução pode variar conforme o período selecionado e o volume de dados do sistema.
- Faça uma revisão inicial dos dados: Quando a consulta terminar, confira as primeiras centenas de linhas do resultado. Verifique se as colunas ClaimID, ActivityName e EventTime estão preenchidas como esperado e se há diferentes tipos de atividade.
- Exporte para CSV: Exporte todo o resultado do seu cliente SQL para um arquivo CSV. Dê um nome descritivo ao arquivo, por exemplo, guidewire_claimcenter_event_log.csv.
- Formate os dados para o ProcessMind: Salve o arquivo CSV com codificação UTF-8. Verifique se o arquivo tem uma linha de cabeçalho correspondente aos aliases de coluna da consulta SQL. Agora, o arquivo está pronto para ser carregado no ProcessMind.
Configuração
- Fonte de dados: Data Mart de sinistros do Guidewire DataHub/InfoCenter. Trata-se de um banco de dados dimensional pré-agregado, desenvolvido para relatórios e análises, separado do banco de dados de produção do ClaimCenter em tempo real.
- Autorizações necessárias: Acesso somente leitura ao banco de dados SQL que hospeda o data mart. Você precisará de nome de usuário, senha e dados de conexão, como endereço do servidor e nome do banco de dados.
- Status dos jobs de ETL: A precisão desta extração depende da execução correta e pontual dos jobs de ETL do Guidewire que alimentam o data mart. Confira o horário da última execução bem-sucedida para saber se os dados estão atualizados.
- Filtro por período: A consulta fornecida inclui cláusulas WHERE com os valores de exemplo '[StartDate]' e '[EndDate]'. Recomendamos começar com um período limitado, por exemplo, de 3 a 6 meses, para controlar a performance. O filtro de data é aplicado ao CreateTime do sinistro.
- Valores específicos da configuração: O Guidewire permite muitas configurações. Ajuste os valores nas cláusulas WHERE para corresponder à configuração da sua organização. Isso inclui:
- Nomes de ActivityPattern, por exemplo, 'fnol', 'investigation', 'Request additional information'
- Códigos de ClaimStatus, ExposureStatus e CloseReason, por exemplo, 'denied', 'closed'
- Códigos de TransactionStatus, por exemplo, 'pendingapproval', 'approved', 'issued'
- Performance: Consultar tabelas extensas de histórico ou auditoria pode consumir muitos recursos. Para conjuntos de dados muito grandes, recomendamos executar a consulta fora dos horários de pico. Verifique se as colunas ClaimID ou ClaimNumber estão indexadas nas tabelas relevantes.
Consulta de exemplo 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'; Etapas
- Confirme se sua organização tem um compartilhamento de dados Snowflake ativo do Guidewire Cloud Data Access (CDA) para o ambiente ClaimCenter. Solicite ao administrador do Guidewire Cloud o identificador da conta Snowflake, o banco de dados, o esquema, o warehouse, a função, o método de autenticação e a configuração de rede autorizada.
- Confirme quais objetos e colunas do banco de dados CDA estão disponíveis no compartilhamento. Os esquemas e nomes de coluna do CDA podem variar conforme o ambiente (tenant), a versão, a configuração e o modelo de compartilhamento de dados. Substitua cada valor de exemplo entre colchetes na consulta pelo objeto correspondente ao seu ambiente. Não presuma que os nomes das entidades operacionais do ClaimCenter estejam disponíveis sem alterações no Snowflake.
- Identifique as fontes de criação e atribuição de sinistros, criação de exposições, transações de reservas, atividades, histórico de status de exposições, histórico de status de pagamentos e histórico de status de sinistros. Se o compartilhamento não disponibilizar tabelas de histórico ou registros de auditoria, configure uma fonte aprovada que preserve o valor anterior, o novo valor, a data e hora do evento e o responsável por cada transição de estado necessária.
- Conecte-se ao compartilhamento Snowflake do CDA usando um cliente, worksheet, notebook ou ferramenta de execução SQL autorizada do Snowflake. Sempre que possível, use uma função somente leitura. Defina na consulta as datas e horas de início e fim da análise usando [Start timestamp] e [End timestamp]. Aplique qualquer filtro aprovado por empresa ou unidade de negócio usando [Company filter].
- Substitua os valores de exemplo das fontes na consulta por nomes de objetos e colunas do CDA que tenham sido verificados. A consulta cria explicitamente linhas para as 14 atividades necessárias: Claim Created, Claim Assigned, Exposure Created, Initial Reserve Set, Investigation Started, Additional Info Requested, Additional Info Received, Liability Decision Made, Settlement Calculated, Payment Approved, Payment Issued, Claim Denied, Claim Closed e Claim Reopened.
- Execute a consulta e revise o esquema do resultado. A saída deve conter ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus e LossCause. O ProcessMind exige ClaimID, ActivityName e EventTime. Mantenha uma linha por evento e não agregue eventos por sinistro.
- Valide as datas e horas, as transições de status, as mudanças de atribuição, a remoção de duplicatas e a contagem de atividades antes de exportar. Confirme que as datas e horas dos eventos usam o mesmo fuso horário e que eventos distintos com a mesma data e hora permanecem em linhas separadas.
- Exporte o resultado como CSV em UTF-8 ou em outro formato tabular compatível com o ProcessMind. Mapeie ClaimID como identificador do caso, ActivityName como atividade e EventTime como data e hora do evento. Mantenha os atributos recomendados como atributos adicionais do evento e carregue o arquivo no ProcessMind sem adicionar atividades inferidas que não façam parte desta extração.
Configuração
- Conexão e autorização: Use o compartilhamento de dados Snowflake fornecido pelo Guidewire por meio de uma conta, função, warehouse e rota de rede autorizados do Snowflake. Para quem consome os dados, o CDA é somente leitura. O acesso necessário depende da configuração do seu ambiente (tenant) e pode incluir permissão para consultar o banco de dados compartilhado e esquemas ou views específicos.
- Configuração dos objetos de origem: Substitua todas as referências entre colchetes por objetos verificados no compartilhamento do CDA. A consulta não pressupõe nomes universais de tabelas ou colunas do ClaimCenter, pois as estruturas expostas pelo CDA variam conforme a versão e o ambiente (tenant).
- Período: Comece com um período de três a seis meses para validação e análise operacional. Amplie o período somente depois de confirmar a capacidade do warehouse, a retenção do histórico de eventos e um tempo de consulta aceitável. Filtre os registros de origem pela data e hora do evento relevante, não apenas pela data de criação do sinistro, para não excluir atividades posteriores.
- Saída obrigatória: ClaimID, ActivityName e EventTime devem estar presentes e preenchidos em todas as linhas de evento. ActivityName deve usar exatamente os rótulos esperados pelo modelo de processo do ProcessMind.
- Saída recomendada: Inclua AssignedAdjuster, ClaimType, ClaimStatus e LossCause. Quando disponíveis, esses valores podem vir do retrato dos dados no momento do evento. Se apenas os valores atuais estiverem disponíveis, documente essa limitação, pois os atributos históricos podem não refletir os valores existentes na data e hora do evento.
- Filtros: Aplique [Company filter] somente depois de confirmar a coluna específica do ambiente (tenant) correspondente à empresa, organização, unidade de negócio ou entidade legal. Não filtre por tipo de documento, a menos que a configuração do ClaimCenter disponibilize um campo de tipo de documento verificado e relevante para as atividades solicitadas.
- Histórico de eventos: Para identificar transições, a atribuição, a investigação, as solicitações de informações, as decisões de responsabilidade, os status de pagamento e a reabertura de sinistros exigem dados de histórico ou auditoria. Tabelas com apenas o estado atual não permitem reconstruir eventos anteriores com confiabilidade.
- Remoção de duplicatas: Quando disponível, use um identificador de evento de origem verificado. A consulta usa ROW_NUMBER apenas como uma proteção configurável. Não remova duplicatas usando somente ClaimID e data e hora, pois atividades distintas podem ocorrer legitimamente ao mesmo tempo.
- Performance: Limite o período, selecione apenas as colunas necessárias, filtre cada fonte pela data e hora do evento e use um warehouse Snowflake de tamanho adequado. Para grandes volumes, considere materializar uma view de eventos validada ou fazer uma extração incremental.
- Fuso horário: Padronize EventTime em um único fuso horário documentado. Antes de carregar o Event Log, confirme se as datas e horas do CDA estão em UTC, horário local ou em variantes de timestamp do Snowflake.
- Pré-requisitos: Confirme se o compartilhamento inclui os dados necessários de finanças, atividades, atribuições, exposições, pagamentos e histórico de status do ClaimCenter e se as políticas de retenção preservam as transições históricas necessárias.
Consulta de exemplo sql
WITH
params AS (
SELECT
TO_TIMESTAMP_TZ('[Start timestamp]') AS start_ts,
TO_TIMESTAMP_TZ('[End timestamp]') AS end_ts
),
claim_created AS (
SELECT
CAST(c.[Claim ID column] AS VARCHAR) AS ClaimID,
'Claim Created' AS ActivityName,
CAST(c.[Claim created timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(c.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(c.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(c.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(c.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(c.[Claim event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your claim source object] c
CROSS JOIN params p
WHERE c.[Claim created timestamp column] >= p.start_ts
AND c.[Claim created timestamp column] < p.end_ts
AND [Company filter]
),
claim_assigned AS (
SELECT
CAST(h.[Claim ID column] AS VARCHAR) AS ClaimID,
'Claim Assigned' AS ActivityName,
CAST(h.[Assignment event timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(h.[New assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(h.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(h.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(h.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(h.[Assignment event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your claim assignment history object] h
CROSS JOIN params p
WHERE h.[Assignment event timestamp column] >= p.start_ts
AND h.[Assignment event timestamp column] < p.end_ts
AND h.[New assigned adjuster column] IS DISTINCT FROM h.[Previous assigned adjuster column]
AND [Company filter]
),
exposure_created AS (
SELECT
CAST(e.[Claim ID column] AS VARCHAR) AS ClaimID,
'Exposure Created' AS ActivityName,
CAST(e.[Exposure created timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(e.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(e.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(e.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(e.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(e.[Exposure event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your exposure source object] e
CROSS JOIN params p
WHERE e.[Exposure created timestamp column] >= p.start_ts
AND e.[Exposure created timestamp column] < p.end_ts
AND [Company filter]
),
initial_reserve_set AS (
SELECT
CAST(r.[Claim ID column] AS VARCHAR) AS ClaimID,
'Initial Reserve Set' AS ActivityName,
CAST(r.[Reserve transaction timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(r.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(r.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(r.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(r.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(r.[Reserve transaction identifier column] AS VARCHAR) AS SourceEventID
FROM [Your reserve transaction source object] r
CROSS JOIN params p
WHERE r.[Reserve transaction timestamp column] >= p.start_ts
AND r.[Reserve transaction timestamp column] < p.end_ts
AND r.[Reserve transaction sequence or first reserve indicator column] = [Value identifying first reserve]
AND [Company filter]
),
investigation_started AS (
SELECT
CAST(a.[Claim ID column] AS VARCHAR) AS ClaimID,
'Investigation Started' AS ActivityName,
CAST(a.[Activity created timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(a.[Activity assigned user column] AS VARCHAR) AS AssignedAdjuster,
CAST(a.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(a.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(a.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(a.[Activity identifier column] AS VARCHAR) AS SourceEventID
FROM [Your activity source object] a
CROSS JOIN params p
WHERE a.[Activity created timestamp column] >= p.start_ts
AND a.[Activity created timestamp column] < p.end_ts
AND a.[Activity category or type column] = '[Configured investigation activity value]'
AND [Company filter]
),
additional_info_requested AS (
SELECT
CAST(a.[Claim ID column] AS VARCHAR) AS ClaimID,
'Additional Info Requested' AS ActivityName,
CAST(a.[Activity created timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(a.[Activity assigned user column] AS VARCHAR) AS AssignedAdjuster,
CAST(a.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(a.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(a.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(a.[Activity identifier column] AS VARCHAR) AS SourceEventID
FROM [Your activity source object] a
CROSS JOIN params p
WHERE a.[Activity created timestamp column] >= p.start_ts
AND a.[Activity created timestamp column] < p.end_ts
AND a.[Activity category or type column] = '[Configured additional information request value]'
AND [Company filter]
),
additional_info_received AS (
SELECT
CAST(a.[Claim ID column] AS VARCHAR) AS ClaimID,
'Additional Info Received' AS ActivityName,
CAST(a.[Activity completion timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(a.[Activity assigned user column] AS VARCHAR) AS AssignedAdjuster,
CAST(a.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(a.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(a.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(a.[Activity identifier column] AS VARCHAR) AS SourceEventID
FROM [Your activity source object] a
CROSS JOIN params p
WHERE a.[Activity completion timestamp column] >= p.start_ts
AND a.[Activity completion timestamp column] < p.end_ts
AND a.[Activity category or type column] = '[Configured additional information request value]'
AND a.[Activity status column] = '[Configured completed status value]'
AND [Company filter]
),
liability_decision_made AS (
SELECT
CAST(eh.[Claim ID column] AS VARCHAR) AS ClaimID,
'Liability Decision Made' AS ActivityName,
CAST(eh.[Exposure status event timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(eh.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(eh.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(eh.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(eh.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(eh.[Exposure status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your exposure status history object] eh
CROSS JOIN params p
WHERE eh.[Exposure status event timestamp column] >= p.start_ts
AND eh.[Exposure status event timestamp column] < p.end_ts
AND eh.[New exposure status column] = '[Configured liability decision status value]'
AND eh.[New exposure status column] IS DISTINCT FROM eh.[Previous exposure status column]
AND [Company filter]
),
settlement_calculated AS (
SELECT
CAST(pay.[Claim ID column] AS VARCHAR) AS ClaimID,
'Settlement Calculated' AS ActivityName,
CAST(pay.[Payment created timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(pay.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(pay.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(pay.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(pay.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(pay.[Payment identifier column] AS VARCHAR) AS SourceEventID
FROM [Your payment source object] pay
CROSS JOIN params p
WHERE pay.[Payment created timestamp column] >= p.start_ts
AND pay.[Payment created timestamp column] < p.end_ts
AND pay.[Payment status column] = '[Configured pending approval status value]'
AND [Company filter]
),
payment_approved AS (
SELECT
CAST(ph.[Claim ID column] AS VARCHAR) AS ClaimID,
'Payment Approved' AS ActivityName,
CAST(ph.[Payment approval timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(ph.[Approving user column] AS VARCHAR) AS AssignedAdjuster,
CAST(ph.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(ph.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(ph.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(ph.[Payment status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your payment status history object] ph
CROSS JOIN params p
WHERE ph.[Payment approval timestamp column] >= p.start_ts
AND ph.[Payment approval timestamp column] < p.end_ts
AND ph.[New payment status column] = '[Configured approved status value]'
AND ph.[New payment status column] IS DISTINCT FROM ph.[Previous payment status column]
AND [Company filter]
),
payment_issued AS (
SELECT
CAST(ph.[Claim ID column] AS VARCHAR) AS ClaimID,
'Payment Issued' AS ActivityName,
CAST(ph.[Payment issued timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(ph.[Issuing user column] AS VARCHAR) AS AssignedAdjuster,
CAST(ph.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(ph.[Claim status column] AS VARCHAR) AS ClaimStatus,
CAST(ph.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(ph.[Payment status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your payment status history object] ph
CROSS JOIN params p
WHERE ph.[Payment issued timestamp column] >= p.start_ts
AND ph.[Payment issued timestamp column] < p.end_ts
AND ph.[New payment status column] = '[Configured issued status value]'
AND ph.[New payment status column] IS DISTINCT FROM ph.[Previous payment status column]
AND [Company filter]
),
claim_denied AS (
SELECT
CAST(ch.[Claim ID column] AS VARCHAR) AS ClaimID,
'Claim Denied' AS ActivityName,
CAST(ch.[Claim status event timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(ch.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(ch.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(ch.[New claim status column] AS VARCHAR) AS ClaimStatus,
CAST(ch.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(ch.[Claim status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your claim status history object] ch
CROSS JOIN params p
WHERE ch.[Claim status event timestamp column] >= p.start_ts
AND ch.[Claim status event timestamp column] < p.end_ts
AND ch.[New claim status column] = '[Configured closed status value]'
AND ch.[Claim closure reason column] = '[Configured denied reason value]'
AND ch.[New claim status column] IS DISTINCT FROM ch.[Previous claim status column]
AND [Company filter]
),
claim_closed AS (
SELECT
CAST(ch.[Claim ID column] AS VARCHAR) AS ClaimID,
'Claim Closed' AS ActivityName,
CAST(ch.[Claim status event timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(ch.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(ch.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(ch.[New claim status column] AS VARCHAR) AS ClaimStatus,
CAST(ch.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(ch.[Claim status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your claim status history object] ch
CROSS JOIN params p
WHERE ch.[Claim status event timestamp column] >= p.start_ts
AND ch.[Claim status event timestamp column] < p.end_ts
AND ch.[New claim status column] = '[Configured closed status value]'
AND COALESCE(ch.[Claim closure reason column], '') <> '[Configured denied reason value]'
AND ch.[New claim status column] IS DISTINCT FROM ch.[Previous claim status column]
AND [Company filter]
),
claim_reopened AS (
SELECT
CAST(ch.[Claim ID column] AS VARCHAR) AS ClaimID,
'Claim Reopened' AS ActivityName,
CAST(ch.[Claim status event timestamp column] AS TIMESTAMP_TZ) AS EventTime,
CAST(ch.[Assigned adjuster column] AS VARCHAR) AS AssignedAdjuster,
CAST(ch.[Claim type column] AS VARCHAR) AS ClaimType,
CAST(ch.[New claim status column] AS VARCHAR) AS ClaimStatus,
CAST(ch.[Loss cause column] AS VARCHAR) AS LossCause,
CAST(ch.[Claim status event identifier column] AS VARCHAR) AS SourceEventID
FROM [Your claim status history object] ch
CROSS JOIN params p
WHERE ch.[Claim status event timestamp column] >= p.start_ts
AND ch.[Claim status event timestamp column] < p.end_ts
AND ch.[Previous claim status column] = '[Configured closed status value]'
AND ch.[New claim status column] = '[Configured open status value]'
AND ch.[New claim status column] IS DISTINCT FROM ch.[Previous claim status column]
AND [Company filter]
),
all_events AS (
SELECT * FROM claim_created
UNION ALL SELECT * FROM claim_assigned
UNION ALL SELECT * FROM exposure_created
UNION ALL SELECT * FROM initial_reserve_set
UNION ALL SELECT * FROM investigation_started
UNION ALL SELECT * FROM additional_info_requested
UNION ALL SELECT * FROM additional_info_received
UNION ALL SELECT * FROM liability_decision_made
UNION ALL SELECT * FROM settlement_calculated
UNION ALL SELECT * FROM payment_approved
UNION ALL SELECT * FROM payment_issued
UNION ALL SELECT * FROM claim_denied
UNION ALL SELECT * FROM claim_closed
UNION ALL SELECT * FROM claim_reopened
),
deduplicated_events AS (
SELECT
ClaimID,
ActivityName,
EventTime,
AssignedAdjuster,
ClaimType,
ClaimStatus,
LossCause,
SourceEventID,
ROW_NUMBER() OVER (
PARTITION BY ActivityName, COALESCE(SourceEventID, ClaimID || '|' || TO_VARCHAR(EventTime))
ORDER BY EventTime
) AS duplicate_rank
FROM all_events
WHERE ClaimID IS NOT NULL
AND ActivityName IS NOT NULL
AND EventTime IS NOT NULL
)
SELECT
ClaimID,
ActivityName,
EventTime,
AssignedAdjuster,
ClaimType,
ClaimStatus,
LossCause
FROM deduplicated_events
WHERE duplicate_rank = 1
ORDER BY ClaimID, EventTime, ActivityName; Etapas
- Confirme se o acesso direto de leitura ao banco de dados operacional local do Guidewire ClaimCenter está autorizado, se a plataforma e a versão do esquema estão documentadas e se há uma conexão somente leitura disponível. Não consulte o banco de dados de produção sem uma janela de extração aprovada.
- Identifique as tabelas físicas e colunas usadas na sua implementação do ClaimCenter. Mapeie as entidades de sinistro, exposição, atividade, atribuição, reserva, pagamento, histórico de status e usuário ou grupo para os valores de exemplo na consulta. Como os nomes físicos e as estruturas de auditoria variam conforme a implementação e a versão, substitua cada valor de exemplo somente depois de validá-lo no catálogo do banco de dados e no modelo de dados do ClaimCenter.
- Defina o período de extração usando [Start date parameter] e [End date parameter]. Use uma janela de sobreposição, como um ou dois dias antes da data inicial solicitada, quando mudanças de status, conclusão de tarefas ou transações financeiras puderem ser registradas fora do período principal de criação do sinistro.
- Execute a instrução SQL completa com privilégios somente leitura. Cada atividade é gerada como uma linha de evento explícita. Após a ingestão, o ProcessMind não infere eventos. Os eventos inferidos a partir de mudanças nos campos são derivados na própria instrução SQL, com base nos registros de histórico ou auditoria relevantes.
- Valide os mapeamentos de origem de cada atividade. Confirme que a criação do sinistro usa o primeiro registro Claim salvo; a atribuição usa as mudanças de atribuição; a criação da exposição usa os registros de criação da exposição; a reserva inicial usa a primeira transação de reserva por exposição; a investigação e as solicitações de informações usam registros de atividade; a responsabilidade usa a transição de status configurada da exposição; o cálculo do acordo usa um estado de pagamento pendente de aprovação; e a aprovação e a emissão do pagamento usam os respectivos estados de auditoria financeira.
- Normalize a saída para a estrutura necessária do Event Log. ClaimID deve ser o identificador do caso, ActivityName deve conter exatamente um dos 14 nomes de atividade documentados e EventTime deve ser uma data e hora. Preserve os atributos recomendados, incluindo AssignedAdjuster, ClaimType, ClaimStatus e LossCause, quando o mapeamento de origem os fornecer.
- Revise os eventos duplicados e a ordem dos eventos. Se a origem contiver várias linhas de auditoria para a mesma transição de negócio, aplique a chave de deduplicação específica da implementação na expressão de tabela comum relevante. Não agrupe eventos de negócio distintos que tenham datas e horas ou identificadores de origem diferentes.
- Exporte o resultado como CSV em UTF-8 ou em outro formato tabular compatível com o ProcessMind. Inclua uma linha de cabeçalho com ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus e LossCause. Verifique se as datas e horas incluem informações de fuso horário ou se seguem de forma consistente o fuso horário documentado do banco de dados. Carregue o arquivo no ProcessMind e mapeie ClaimID como identificador do caso, ActivityName como atividade e EventTime como data e hora do evento.
Configuração
- Acesso ao banco de dados: Use uma conta somente leitura com permissão para consultar as tabelas operacionais, de histórico, de atividades e de transações financeiras necessárias do ClaimCenter. Não conceda privilégios de gravação, alteração de esquema ou administração para a extração.
- Mapeamento do esquema: Substitua [Your claim table], [Your exposure table], [Your activity table], [Your reserve table], [Your payment table], [Your claim history table], [Your exposure history table] e os valores de exemplo relacionados por nomes verificados na implementação de destino. Não presuma que o nome lógico de uma entidade Guidewire seja o nome da tabela física no banco de dados.
- Período: Comece com três a seis meses de dados. Use [Start date parameter] e [End date parameter] e inclua uma janela de sobreposição quando os eventos puderem ser registrados após a criação do sinistro ou quando sinistros reabertos abrangerem vários períodos de relatório.
- Filtros: Aplique [Company Code filter], [Document Type filter], jurisdição, linha de negócio ou outros filtros específicos da organização somente depois de confirmar as colunas físicas e o significado de negócio. Evite excluir sinistros sem pagamento ou sem exposição, pois esses registros são necessários para uma análise completa do ciclo de vida.
- Nomes das atividades: Mantenha exatamente os 14 valores de ActivityName definidos na consulta para que o ProcessMind receba rótulos de evento consistentes.
- Semântica dos eventos: As atividades descritas como inferidas são geradas no SQL a partir de transições de status, atribuição, histórico ou atividade da origem. Após a ingestão, o ProcessMind não deriva esses eventos de outras linhas.
- Performance: Limite o período de extração, selecione apenas as colunas necessárias, filtre as tabelas de origem antes das junções e verifique os índices nos identificadores de sinistro e exposição, nas datas e horas dos eventos, nos campos de status e nos identificadores de transação. Quando disponível, execute extrações grandes em uma réplica de relatórios.
- Consistência: Use um nível de isolamento de transação adequado para relatórios e defina um limite consistente para a extração. Evite ler tabelas enquanto um lote financeiro ou uma atualização em massa de status estiver parcialmente confirmado.
- Fusos horários: Documente o fuso horário do banco de dados e converta todas as datas e horas de origem para um único fuso horário acordado antes da exportação. Não misture horários locais do aplicativo com horários do servidor do banco de dados.
- Pré-requisitos: Confirme se os módulos necessários do ClaimCenter, as permissões financeiras, a retenção de auditoria ou histórico e a conectividade com o banco de dados estão disponíveis. Se a retenção de histórico ou auditoria estiver desativada, não será possível reconstruir com confiabilidade as atividades inferidas correspondentes.
- Configuração de validação: Registre a versão do ClaimCenter, a plataforma do banco de dados, o mapeamento do esquema, a data e hora da extração, os parâmetros de período, os filtros e a contagem de linhas em cada exportação.
Consulta de exemplo sql
WITH
claim_created AS (
SELECT
c.[Claim ID column] AS ClaimID,
CAST('Claim Created' AS VARCHAR(100)) AS ActivityName,
c.[Claim Created Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your claim table] c
WHERE c.[Claim Created Timestamp column] >= [Start date parameter]
AND c.[Claim Created Timestamp column] < [End date parameter]
),
claim_assigned AS (
SELECT
h.[Claim ID column] AS ClaimID,
CAST('Claim Assigned' AS VARCHAR(100)) AS ActivityName,
h.[Assignment Change Timestamp column] AS EventTime,
h.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
h.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your claim assignment history table] h
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = h.[Claim ID column]
WHERE h.[Assignment Change Timestamp column] >= [Start date parameter]
AND h.[Assignment Change Timestamp column] < [End date parameter]
AND h.[Assigned Adjuster column] IS NOT NULL
),
exposure_created AS (
SELECT
e.[Claim ID column] AS ClaimID,
CAST('Exposure Created' AS VARCHAR(100)) AS ActivityName,
e.[Exposure Created Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your exposure table] e
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = e.[Claim ID column]
WHERE e.[Exposure Created Timestamp column] >= [Start date parameter]
AND e.[Exposure Created Timestamp column] < [End date parameter]
),
initial_reserve_set AS (
SELECT
x.ClaimID,
CAST('Initial Reserve Set' AS VARCHAR(100)) AS ActivityName,
x.EventTime,
x.AssignedAdjuster,
x.ClaimType,
x.ClaimStatus,
x.LossCause
FROM (
SELECT
r.[Claim ID column] AS ClaimID,
r.[Reserve Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause,
ROW_NUMBER() OVER (
PARTITION BY r.[Exposure ID column]
ORDER BY r.[Reserve Timestamp column], r.[Reserve Transaction ID column]
) AS reserve_sequence
FROM [Your reserve transaction table] r
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = r.[Claim ID column]
WHERE r.[Reserve Timestamp column] >= [Start date parameter]
AND r.[Reserve Timestamp column] < [End date parameter]
) x
WHERE x.reserve_sequence = 1
),
investigation_started AS (
SELECT
a.[Claim ID column] AS ClaimID,
CAST('Investigation Started' AS VARCHAR(100)) AS ActivityName,
a.[Activity Created Timestamp column] AS EventTime,
a.[Assigned User column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your activity table] a
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = a.[Claim ID column]
WHERE a.[Activity Created Timestamp column] >= [Start date parameter]
AND a.[Activity Created Timestamp column] < [End date parameter]
AND a.[Activity Type column] IN ([Investigation activity type value])
),
additional_info_requested AS (
SELECT
a.[Claim ID column] AS ClaimID,
CAST('Additional Info Requested' AS VARCHAR(100)) AS ActivityName,
a.[Activity Created Timestamp column] AS EventTime,
a.[Assigned User column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your activity table] a
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = a.[Claim ID column]
WHERE a.[Activity Created Timestamp column] >= [Start date parameter]
AND a.[Activity Created Timestamp column] < [End date parameter]
AND a.[Activity Type column] IN ([Additional information request activity type value])
),
additional_info_received AS (
SELECT
a.[Claim ID column] AS ClaimID,
CAST('Additional Info Received' AS VARCHAR(100)) AS ActivityName,
a.[Activity Completed Timestamp column] AS EventTime,
a.[Assigned User column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your activity table] a
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = a.[Claim ID column]
WHERE a.[Activity Completed Timestamp column] >= [Start date parameter]
AND a.[Activity Completed Timestamp column] < [End date parameter]
AND a.[Activity Type column] IN ([Additional information request activity type value])
AND a.[Activity Status column] = [Completed activity status value]
),
liability_decision_made AS (
SELECT
h.[Claim ID column] AS ClaimID,
CAST('Liability Decision Made' AS VARCHAR(100)) AS ActivityName,
h.[Status Change Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your exposure status history table] h
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = h.[Claim ID column]
WHERE h.[Status Change Timestamp column] >= [Start date parameter]
AND h.[Status Change Timestamp column] < [End date parameter]
AND h.[New Exposure Status column] IN ([Liability decision status value])
),
settlement_calculated AS (
SELECT
p.[Claim ID column] AS ClaimID,
CAST('Settlement Calculated' AS VARCHAR(100)) AS ActivityName,
p.[Payment Status Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your payment table] p
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = p.[Claim ID column]
WHERE p.[Payment Status Timestamp column] >= [Start date parameter]
AND p.[Payment Status Timestamp column] < [End date parameter]
AND p.[Payment Status column] = [Pending approval payment status value]
),
payment_approved AS (
SELECT
p.[Claim ID column] AS ClaimID,
CAST('Payment Approved' AS VARCHAR(100)) AS ActivityName,
p.[Approval Timestamp column] AS EventTime,
p.[Approved By column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your payment approval history table] p
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = p.[Claim ID column]
WHERE p.[Approval Timestamp column] >= [Start date parameter]
AND p.[Approval Timestamp column] < [End date parameter]
AND p.[Approval Status column] = [Approved payment status value]
),
payment_issued AS (
SELECT
p.[Claim ID column] AS ClaimID,
CAST('Payment Issued' AS VARCHAR(100)) AS ActivityName,
p.[Issued Timestamp column] AS EventTime,
p.[Approved By column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
c.[Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your payment issuance table] p
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = p.[Claim ID column]
WHERE p.[Issued Timestamp column] >= [Start date parameter]
AND p.[Issued Timestamp column] < [End date parameter]
AND p.[Payment Status column] = [Issued payment status value]
),
claim_denied AS (
SELECT
h.[Claim ID column] AS ClaimID,
CAST('Claim Denied' AS VARCHAR(100)) AS ActivityName,
h.[Status Change Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
h.[New Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your claim status history table] h
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = h.[Claim ID column]
WHERE h.[Status Change Timestamp column] >= [Start date parameter]
AND h.[Status Change Timestamp column] < [End date parameter]
AND h.[New Claim Status column] = [Closed claim status value]
AND h.[Status Reason column] = [Denied status reason value]
),
claim_closed AS (
SELECT
h.[Claim ID column] AS ClaimID,
CAST('Claim Closed' AS VARCHAR(100)) AS ActivityName,
h.[Status Change Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
h.[New Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your claim status history table] h
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = h.[Claim ID column]
WHERE h.[Status Change Timestamp column] >= [Start date parameter]
AND h.[Status Change Timestamp column] < [End date parameter]
AND h.[New Claim Status column] = [Closed claim status value]
AND h.[Status Reason column] <> [Denied status reason value]
),
claim_reopened AS (
SELECT
h.[Claim ID column] AS ClaimID,
CAST('Claim Reopened' AS VARCHAR(100)) AS ActivityName,
h.[Status Change Timestamp column] AS EventTime,
c.[Assigned Adjuster column] AS AssignedAdjuster,
c.[Claim Type column] AS ClaimType,
h.[New Claim Status column] AS ClaimStatus,
c.[Loss Cause column] AS LossCause
FROM [Your claim status history table] h
INNER JOIN [Your claim status history table] previous_h
ON previous_h.[Claim ID column] = h.[Claim ID column]
AND previous_h.[Status Change Timestamp column] = (
SELECT MAX(prior_h.[Status Change Timestamp column])
FROM [Your claim status history table] prior_h
WHERE prior_h.[Claim ID column] = h.[Claim ID column]
AND prior_h.[Status Change Timestamp column] < h.[Status Change Timestamp column]
)
INNER JOIN [Your claim table] c
ON c.[Claim ID column] = h.[Claim ID column]
WHERE h.[Status Change Timestamp column] >= [Start date parameter]
AND h.[Status Change Timestamp column] < [End date parameter]
AND previous_h.[New Claim Status column] = [Closed claim status value]
AND h.[New Claim Status column] = [Open claim status value]
)
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM claim_created
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM claim_assigned
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM exposure_created
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM initial_reserve_set
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM investigation_started
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM additional_info_requested
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM additional_info_received
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM liability_decision_made
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM settlement_calculated
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM payment_approved
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM payment_issued
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM claim_denied
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM claim_closed
UNION ALL
SELECT ClaimID, ActivityName, EventTime, AssignedAdjuster, ClaimType, ClaimStatus, LossCause FROM claim_reopened
ORDER BY ClaimID, EventTime, ActivityName; Pronto para começar?
Use este Template para preparar seus dados para análise e descobrir insights sobre o processamento de sinistros. Comece a otimizar seus fluxos de trabalho hoje.
Agilize o processamento de sinistros e resolva casos mais rápido
Reduza o acúmulo de casos, previna fraudes e busque atingir 70% de processamento direto, sem intervenção manual.
Não é necessário informar cartão de crédito. A configuração leva apenas alguns minutos.