保険金請求処理のデータテンプレート
保険金請求処理のデータテンプレート
- 収集を推奨する属性
- 追跡すべき主なアクティビティ
- Guidewire ClaimCenterからのデータ抽出手順
保険金請求処理の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 保険金請求の処理過程における特定の時点で発生した業務上の活動またはイベントの名称です。 | ||
| 説明 この属性は、保険金請求プロセスにおける特定のステップや節目を表します。たとえば、「請求の作成」「調査の開始」「保険金の支払い」などです。同じケースIDに属するこれらのアクティビティの順序から、プロセスフローを把握できます。 アクティビティの順序、発生頻度、所要時間の分析は、プロセスマイニングの中核です。プロセスモデルの発見、ボトルネックの特定、手戻りの検出、プロセス逸脱の分析に役立ちます。 重要な理由 プロセスのステップを定義し、プロセスマップを可視化するとともに、プロセスフローやボトルネックを分析できるようにします。 入手先 通常はClaimCenterのイベントテーブルや監査ログから取得します。システムイベントやステータスの変更を、標準化されたアクティビティ名に対応付ける方法がよく使われます。 例 請求作成賠償責任の判断支払いの発行請求の終了 | |||
| イベント時刻 EventTime | アクティビティが発生した正確な日時です。 | ||
| 説明 このタイムスタンプは、アクティビティがシステムに記録された正確な時刻を示します。時間に基づくプロセス分析に欠かせないデータです。 1つのケースIDに属するEventTimeを時系列に並べると、プロセスフローを再構成できます。連続するイベント間の時間差から、サイクルタイム、待ち時間、処理時間を算出できます。これらは、パフォーマンス分析、ボトルネックの特定、SLAの監視に欠かせません。 重要な理由 イベントの順序付け、サイクルタイムや所要時間の算出、プロセス内の遅延の特定に欠かせないタイムスタンプです。 入手先 Guidewire ClaimCenterの履歴テーブルや監査テーブルで、イベントまたはアクティビティのデータとともに確認できます。「CreateTime」や「UpdateTime」などのフィールドが該当します。 例 2023-05-15T09:00:00Z2023-05-16T14:30:15Z2023-06-01T11:20:00Z | |||
| 請求ID ClaimID | 各保険請求を一意に識別するIDで、主要なケース識別子として使われます。 | ||
| 説明 請求IDは、提出から終了まで各ケースを一意に識別する、請求処理分析の基盤です。関連するすべてのアクティビティ、文書、支払い、連絡を結び付け、請求のライフサイクルを漏れなく一貫して把握できるようにします。 プロセスマイニングでは、データセット内のすべてのイベントが請求IDにひも付いているため、プロセス全体の流れを再構成できます。サイクルタイムの分析、プロセスのバリアントの特定、部門や査定担当者をまたぐ請求の経路の追跡に欠かせません。 重要な理由 関連するすべてのイベントを結び付ける基本キーです。1件の請求の全経路を追跡し、分析できます。 入手先 Guidewire ClaimCenterの主キーで、通常はClaimエンティティのClaim.ClaimNumberまたは同様のフィールドにあります。 例 000-123-45678000-987-65432001-456-11223 | |||
| 保険金請求のステータス ClaimStatus | イベント発生時点での保険金請求全体のステータスです(例:受付中、完了、支払い拒否)。 | ||
| 説明 この属性は、保険金請求の大まかな状態を示します。主なステータスには、「受付中」「完了」「支払い拒否」「再開」などがあります。最終ステータスは、重要な結果指標です。 ステータスの変化を追跡すると、プロセスの節目や結果を定義できます。請求の最終的な解決状況の特定、拒否率の算出、完了後に請求が再開される頻度の分析に役立ちます。再開が多い場合、プロセス上の問題や顧客の不満が示されている可能性があります。 重要な理由 保険金請求の結果を示します。拒否率、完了の傾向、請求の再開頻度の分析に欠かせません。 入手先 Claimエンティティの基本フィールドで、通常は「State」または「Status」という名前です。 例 受付中完了支払い拒否再開 | |||
| 保険金請求の種類 ClaimType | 自動車、財物、賠償責任など、保険金請求の分類です。 | ||
| 説明 保険金請求の種類は、保険種目や損害の性質に基づいて請求を分類する基本的な属性です。種類によってプロセスや複雑さが異なり、適用される規制も変わることがあります。 保険金請求の種類ごとにプロセスを分けて分析すると、意味のあるインサイトを得られます。保険種目間のパフォーマンス比較、種類ごとのボトルネックの特定、各請求の特性に合わせたプロセス改善の検討に役立ちます。 重要な理由 保険金請求を種類別に分析できます。たとえば、自動車と財物ではプロセスやパフォーマンス目標が異なる場合があります。 入手先 ClaimCenterのPolicyまたはClaimエンティティから取得します。多くの場合、保険種目(LOB)コードに基づきます。 例 個人向け自動車保険企業向け財物保険一般賠償責任保険労働者災害補償保険 | |||
| 担当損害査定人 AssignedAdjuster | 保険金請求または特定のアクティビティを担当するユーザーの名前またはIDです。 | ||
| 説明 この属性は、特定の時点で保険金請求を担当する損害査定人を示します。損害査定人は、請求全体を担当する場合も、請求内の特定のタスクを担当する場合もあります。 担当損害査定人ごとの分析は、業務量の調整、パフォーマンス管理、研修機会の特定に役立ちます。「担当件数が最も多い損害査定人は誰か」「損害査定人によってパフォーマンスに差があるか」「業務は均等に割り当てられているか」といった問いに答えられます。 重要な理由 ユーザーの関与状況を記録し、業務量の分析、パフォーマンスの比較、リソースに関するボトルネックの特定に役立ちます。 入手先 ClaimCenterのClaimまたはExposureエンティティで確認できます。多くの場合、Userオブジェクト(例:Claim.Assignee)に関連付けられています。 例 j.doem.smiths.jones | |||
| 損害原因 LossCause | 損害が発生した具体的な原因です(例:衝突、火災、水濡れ)。 | ||
| 説明 この属性は、保険金請求の原因を詳しく示します。損害原因によって、必要な調査の手順、専門家の種類、請求処理全体の複雑さが変わることがあります。 損害原因ごとにプロセスを分析すると、見えにくい傾向を把握できます。たとえば、「水濡れ」に関する請求は、「盗難」に関する請求よりも手戻りが多く、専門家の関与が必要になる可能性があります。こうしたインサイトは、より専門的で効率的な対応手順の作成に役立ちます。 重要な理由 請求の性質を把握するための情報を提供し、損害原因によるプロセスフローや所要時間の違いを分析できます。 入手先 Claimエンティティの標準フィールドで、通常は「LossCause」という名前です。 例 衝突火災水濡れ盗難 | |||
| SLAステータス SLAState | 保険金請求が解決目標日までに完了したかどうかを示します。 | ||
| 説明 この計算属性は、完了した請求ごとにSLAの遵守状況を分類して示します。「請求の完了」アクティビティのタイムスタンプと「解決目標日」を比較して算出します。 「請求解決目標の遵守状況」ダッシュボードでは、「期限内」「期限超過」などの明確な分類を使って分析できます。フィルターや集計が容易になり、SLAの全体的な遵守率の算出や、遅延の原因のドリルダウンに役立ちます。 重要な理由 SLAの遵守状況を明確に分類して示すため、期限内の処理状況を簡単に絞り込み、集計、分析できます。 入手先 計算フィールド:IF (ActualCloseDate <= ResolutionTargetDate, 'On Time', 'Late')。 例 期限内期限超過 | |||
| ソースシステム SourceSystem | データの抽出元となるシステムです。 | ||
| 説明 この属性は、イベントデータの発生元を示します。現在の企業環境では、保険金請求に関するイベントが、Guidewireなどの基幹システム、文書管理システム、顧客ポータルなど、複数のシステムから発生することがあります。 ソースシステムを指定すると、データガバナンスやデータの不整合の調査に役立ち、プロセスを支えるシステム構成も把握しやすくなります。また、プロセスの主要なステップと、周辺システムで行われる補助的な作業を区別できます。 重要な理由 データの発生元を示します。データガバナンスや、複数の連携システムにまたがる分析に欠かせません。 入手先 通常、データの抽出、変換、読み込み(ETL)の過程で追加される固定値です。 例 Guidewire ClaimCenter v10Customer Portal APIDocumentum | |||
| 保険契約の種類 PolicyType | 保険金請求の対象となる保険契約の種類です。 | ||
| 説明 保険契約の種類は、保険金請求の種類よりも詳細な分類で、「住宅所有者向け」「企業向け自動車」「サイバー賠償責任」など、具体的な保険商品を示します。この詳細な分類から、商品ごとのプロセスの違いがわかる場合があります。 保険契約の種類ごとにプロセスを分析すると、商品固有の非効率な点を見つけられます。たとえば、新たに発売された保険商品の請求では、プロセスが十分に確立されておらず、遅延が生じることがあります。こうした分析は、商品設計やプロセスの標準化に役立ちます。 重要な理由 保険商品ごとにプロセスを分析し、契約内容による対応の違いを特定できます。 入手先 Claimに関連付けられたPolicyエンティティに記録されています。 例 住宅総合保険企業向け自動車賠償責任保険内陸海上保険 | |||
| 最終データ更新日時 LastDataUpdate | ソースシステムからデータを最後に更新または抽出した日時を示すタイムスタンプです。 | ||
| 説明 この属性は、ソースシステムからデータを最後に取得した日時を示します。分析対象のデータがどの程度新しいかを把握するために欠かせないメタデータです。 ダッシュボードや分析画面では、この情報を目立つ位置に表示し、データがいつ時点のものかを利用者が確認できるようにします。インサイトが現在の業務状況を反映しているのか、古いデータに基づいているのかを判断するのに役立ちます。 重要な理由 データの新しさを示し、プロセス分析がどの時点の状況を反映しているかを把握できるようにします。 入手先 ETL処理中に生成、保存される値で、データの読み込み日時を示します。 例 2024-07-28T04:00:00Z2024-07-29T04:00:00Z | |||
| 情報の再依頼 RepeatedInfoRequestFlag | 同じ請求について「追加情報の依頼」が複数回発生したかどうかを示すフラグです。 | ||
| 説明 同じ請求で「追加情報の依頼」アクティビティが2回以上発生した場合、この真偽値フラグがtrueになります。この状況は、初期の情報収集に非効率な点があることを示す場合があります。 この属性は、「情報再依頼率」の重要業績評価指標(KPI)に直接役立ちます。初回の事実確認が不十分な問題を定量化できます。不完全な情報収集は、大幅な遅延や顧客の不満につながることがあります。このフラグが付いた請求を分析すると、必要な情報を一度に依頼できるよう、損害査定人向けのチェックリストや手順を改善できます。 重要な理由 初回の情報収集が不十分なために遅延や手戻りが発生している箇所を特定できます。 入手先 プロセスマイニングツールで、ケースごとに「追加情報の依頼」アクティビティの発生回数を数えて算出します。 例 truefalse | |||
| 手戻りかどうか IsRework | アクティビティが手戻りを表すかどうかを示すフラグです。手戻りとは、プロセスの前の段階に戻ることです。 | ||
| 説明 この計算属性は、手戻りに含まれるアクティビティを示します。たとえば、プロセスが「調査の完了」から「調査の開始」に戻った場合、2回目の「調査の開始」アクティビティが手戻りとして記録されます。 手戻りの特定は、プロセスの非効率な点や品質上の問題を見つけるうえで欠かせません。「手戻りと拒否の頻度」ダッシュボードでは、この指標を使って、請求が理想経路から外れる頻度を測定します。手戻りの原因を分析すると、プロセスの品質や処理速度を大きく改善できる可能性があります。 重要な理由 手戻りに含まれるアクティビティを明示し、プロセスの非効率な点や品質上の問題を把握できます。 入手先 プロセスマイニングツールで、ケースごとのアクティビティの順序を分析して算出します。 例 truefalse | |||
| 損害発生日 LossDate | 保険金請求の原因となった事故または損害が発生した日付です。 | ||
| 説明 損害発生日は、保険金請求の対象となる実際の事故や損害(例:自動車事故、財物の損傷)が発生した日付です。請求が報告または作成された日付とは異なります。 損害発生日から「請求の作成」アクティビティまでの期間(報告遅延)は、重要業績評価指標(KPI)です。この期間を分析すると、顧客の行動や、事故受付窓口の有効性についてインサイトを得られます。 重要な理由 請求の発生状況を把握するための情報を提供し、事故発生から請求提出までの報告遅延を分析できます。 入手先 Claimエンティティの基本的な日付フィールドで、通常は「LossDate」という名前です。 例 2023-05-102023-04-202023-05-28 | |||
| 支払金額 PaymentAmount | 支払いアクティビティで実際に支払われた金額です。 | ||
| 説明 この属性は、保険金請求に対する個々の支払い額を記録します。1件の請求に対して、処理期間中に複数回の支払いが発生することがあります。 プロセスマイニングで財務分析を行ううえで欠かせないデータです。請求ごとの支払総額の追跡、金額に応じた支払い承認時間の分析、プロセスの非効率な点と財務上の結果との関連付けに利用できます。たとえば、サイクルタイムが長い請求では、支払総額も高くなる傾向があるかを分析できます。 重要な理由 請求に伴う金銭のやり取りを記録し、支払額とプロセス内のアクティビティとの関係を分析できます。 入手先 Claimに関連付けられた支払い関連エンティティに記録されています。取引テーブルや小切手テーブルにある場合がよくあります。 例 4500.00125000.00500.00 | |||
| 管轄州 JurisdictionState | 保険金請求を管轄する州または地域です。適用される規制要件を決定します。 | ||
| 説明 この属性は、請求処理に適用される法的管轄区域(例:米国の州)を示します。保険規制は管轄区域によって大きく異なり、必要なプロセスのステップ、連絡期限、文書化に影響します。 コンプライアンスの監視に欠かせない属性です。管轄区域ごとにプロセスを分析すると、州ごとの規制要件が満たされているかを確認できます。また、サイクルタイムやプロセス経路の違いが、業務上の非効率ではなく法的な制約によるものかを判断するのにも役立ちます。 重要な理由 管轄区域ごとに保険金請求プロセスに影響する規制が異なるため、コンプライアンス分析に欠かせません。 入手先 Claimエンティティの標準フィールドで、通常は「JurisdictionState」という名前です。 例 CANYTXFL | |||
| 終了時刻 EndTime | アクティビティが完了した日時を示すタイムスタンプです。 | ||
| 説明 終了時刻は、アクティビティが完了した時点を示します。「調査」や「文書の確認」のように、所要時間を測定できるタスクで特に役立ちます。プロセスマイニングでは、開始時刻だけで表せる瞬時のアクティビティも多くありますが、開始と終了が明確なアクティビティは、両方のタイムスタンプで記録するのが適切です。 この属性を使うと、待ち時間と区別してアクティビティの処理時間を正確に算出できます。ステップ間の遅延だけでなく、時間がかかっている個々のタスクも特定できます。 重要な理由 アクティビティの完了にかかる時間を正確に測定し、処理時間と待ち時間を区別できます。 入手先 アクティビティの完了を示す後続イベントを特定して算出する必要がある場合があります。たとえば、ステータスが「進行中」から「完了」に変わった時点を使います。 例 2023-05-15T17:00:00Z2023-05-16T15:00:00Z2023-06-02T10:00:00Z | |||
| 自動処理かどうか IsAutomated | アクティビティがシステムによって自動的に実行されたか、人が実行したかを示すフラグです。 | ||
| 説明 この真偽値属性は、システムが実行したアクティビティ(例:支払備金の自動作成、システムによる通知の作成)と、損害査定人が手作業で行ったアクティビティを区別します。 保険金請求プロセスの自動化の度合いを把握するうえで重要な属性です。手作業による介入が集中する箇所の特定、エンドツーエンド処理の取り組みの効果測定、人が行っている反復的でルールに基づくタスクを特定したうえで、自動化の新たな候補を見つけるのに役立ちます。 重要な理由 システムによるアクティビティと人によるアクティビティを区別します。自動化分析や、手作業に関するボトルネックの特定に欠かせません。 入手先 多くの場合、データから判定する必要があります。たとえば、汎用の「system」ユーザーによって記録されたイベントを、自動処理として分類できます。 例 truefalse | |||
| 解決目標日 ResolutionTargetDate | 社内または規制上のSLAに基づき、保険金請求の解決が見込まれる期限です。 | ||
| 説明 解決目標日は、保険金請求を完了する期限です。管轄区域、請求の種類、保険契約の条件などに基づいて設定されます。パフォーマンスやコンプライアンスを測定する基準となります。 SLAの遵守状況を示すダッシュボードや重要業績評価指標(KPI)の作成に欠かせない属性です。実際の「請求の完了」日と目標日を比較すると、期限を過ぎた請求を自動的に特定し、期限内に完了した割合を測定できます。また、目標達成が難しい請求の種類や部門も把握できます。 重要な理由 サービスレベル契約(SLA)の遵守状況を測定し、期限に遅れる可能性のある請求を特定するための基準です。 入手先 カスタムフィールドの場合や、ClaimCenterで設定した業務ルールに基づいて算出する場合があります。特定の請求指標に関連付けられていることもあります。 例 2023-06-142023-07-202023-08-28 | |||
| 請求金額 ClaimedAmount | 契約者が当初請求した金額の合計です。 | ||
| 説明 この属性は、請求者が申告した損害額を表します。通常は初期見積額であり、調査や支払備金の設定に伴って変わることがあります。 請求金額を分析すると、金額の規模に応じて請求を分類できます。高額請求は、少額請求よりも厳格で複雑なプロセスを経ることがよくあります。金額帯ごとにプロセスを比較すると、少額請求の対応を効率化する機会や、高額請求に対する管理を強化する必要性が見えてきます。 重要な理由 金額に応じて請求を分類できます。高額請求では、より複雑なプロセスが必要になる場合があります。 入手先 単一のフィールドではなく、Exposureに記録された初期損害見積額から算出する場合があります。 例 5000.00150000.00750.50 | |||
| 部門 Department | 保険金請求に関するアクティビティを担当する事業部門または部門です。 | ||
| 説明 この属性は、担当損害査定人が所属する部門またはチームを示します。たとえば、「自動車保険金請求」「財物保険金請求」「特別調査部門」などです。プロセスを組織の観点から捉えるために役立ちます。 部門ごとの分析は、組織全体のプロセスパフォーマンスを把握するうえで重要です。部門間の引き継ぎによる遅延を特定し、チーム間の効率を比較して、保険金請求を担当する組織全体でリソースをより適切に配分できます。 重要な理由 組織内のチームごとにパフォーマンスを分析し、部門間の引き継ぎに関する問題を把握するための情報を提供します。 入手先 通常、ClaimCenterに登録された担当ユーザーまたはグループのプロフィールに関連付けられています。 例 自動車保険金請求部門財物保険金請求チーム特別調査部門(SIU) | |||
保険金請求処理のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 初回準備金の設定 | 補償対象に対する最初の準備金取引が作成されたことを示し、請求にかかる費用を見積もります。重要な財務イベントであり、明示的に記録されます。 | ||
| 重要な理由 このマイルストーンは、財務分析と潜在的な賠償責任の評価速度を把握するうえで重要です。遅延は財務計画や報告に影響する可能性があります。 入手先 請求の補償対象に関連付けられた最初のcc_reservelineレコードの作成から取得します。取引のCreateTimeがイベントのタイムスタンプです。 記録 特定の請求に含まれる補償対象について、すべての準備金明細の作成タイムスタンプの最小値を特定します。 イベントタイプ explicit | |||
| 支払いの承認 | 示談金の支払いが正式に承認されたことを示します。重要な監査イベントであり、権限を持つユーザーが取引を承認した時点で明示的に記録されます。 | ||
| 重要な理由 この重要なマイルストーンを経て、最終的な支払いに進めます。このアクティビティの前後にかかる時間を分析すると、承認ワークフローや管理者の対応状況による遅延を切り分けられます。 入手先 多くの場合、cc_checkまたはcc_transactionエンティティに関連するcc_historyテーブルの明示的なイベントとして記録され、「承認待ち」から「承認済み」へのステータス変更を示します。 記録 特定の支払い取引について、ステータスが「承認済み」に変わったイベントを追跡します。 イベントタイプ explicit | |||
| 支払いの発行 | このアクティビティは、支払いプロセスの最終段階を示します。支払いが正式に発行され、財務システムに送られます。明示的に記録される財務取引です。 | ||
| 重要な理由 このアクティビティは、支払いの送金プロセスの効率を測定するうえで重要です。承認の遅れと、実際の資金発行の遅れを区別できます。 入手先 cc_checkまたはcc_transactionエンティティのIssueDate、またはステータスが「発行済み」か「送信済み」に変わった時点から取得します。多くの場合、タイムスタンプ付きの明示的なイベントです。 記録 支払いレコードのIssueDate、またはステータスが「発行済み」に変わったタイムスタンプを特定します。 イベントタイプ explicit | |||
| 補償対象の作成 | このアクティビティは、請求に含まれる特定の潜在的な賠償責任または損害の種類(車両の損傷、負傷など)を表す補償対象の作成を示します。Guidewireで明示的に記録されるイベントです。 | ||
| 重要な理由 補償対象は、請求を分類して分析するうえで基本となる要素です。作成を追跡すると、請求の複雑さや損害の種類によるプロセスの違いを把握できます。 入手先 cc_exposureテーブルに新しいレコードが作成された時点のCreateTimeから取得します。各レコードは1つのClaim IDに関連付けられています。 記録 Exposureエンティティテーブルで、新しいレコードが作成されたタイムスタンプを特定します。 イベントタイプ explicit | |||
| 請求の却下 | 請求を却下する最終判断を示し、プロセスの終点となります。請求のステータスが却下理由を伴う終了状態に変わったことから推定します。 | ||
| 重要な理由 これは重要な結果を示すイベントです。却下の頻度や理由、そこに至るプロセス経路を分析すると、請求受付、調査、保険契約の解釈に関する問題を特定できます。 入手先 cc_claimテーブルのStateフィールドが「終了」に変わり、CloseReasonフィールドが「却下」または同様の値になったことから推定します。イベントのタイムスタンプはCloseDateです。 記録 請求のステータスが「終了」に変わり、理由コードが却下を示すレコードを抽出します。 イベントタイプ inferred | |||
| 請求の終了 | すべてのアクティビティと支払いが完了し、請求が正常に終了したことを示します。請求のメインステータスの変更から推定する、主要な正常終了イベントです。 | ||
| 重要な理由 主要な終了イベントであるこのアクティビティは、開始から終了までのサイクルタイムの算出とSLA達成率の測定に欠かせません。請求のライフサイクルが完了したことを示します。 入手先 cc_claimテーブルのStateフィールドが「終了」に変わったことから推定します。イベントのタイムスタンプは請求レコードのCloseDateです。 記録 請求のメインステータスフィールドが「終了」に更新された時点を特定します。 イベントタイプ inferred | |||
| 請求作成 | このアクティビティは、事故の初回通知(FNOL)と、Guidewire ClaimCenterでの新しい請求レコードの正式な作成を示します。新しいClaimエンティティが初めてデータベースに保存された時点で、明示的に記録されます。 | ||
| 重要な理由 主要な開始イベントであるこのアクティビティは、請求の開始から終了までのサイクルタイムを測定するうえで欠かせません。以降のパフォーマンス指標と所要時間の重要業績評価指標(KPI)のベースラインになります。 入手先 これは、cc_claimテーブルのCreateTimeから取得する明示的なイベントです。一意のClaim IDを持つ新しいレコードの作成が、イベントの発生を示します。 記録 基底のClaimエンティティテーブルで、新しいレコードが作成されたタイムスタンプを特定します。 イベントタイプ explicit | |||
| 示談金額の算出 | 支払い承認前に示談金額が決定した時点を示します。「承認待ち」状態の支払いが作成されたことから推定できます。 | ||
| 重要な理由 評価から支払いへの移行を示します。「支払い承認リードタイム」の重要業績評価指標(KPI)を測定する起点となり、承認プロセスの遅延を明らかにします。 入手先 初期ステータスが「承認待ち」、または「承認」前の同様の状態であるcc_checkまたはcc_transactionレコードのCreateTimeから推定します。 記録 承認前のステータスで支払いまたは取引レコードが作成された時点を特定します。 イベントタイプ inferred | |||
| 調査開始 | 請求または補償対象の調査段階が正式に始まったことを示します。多くの場合、Guidewireで最初の調査関連の「アクティビティ」(タスク)が作成された時点から推定します。 | ||
| 重要な理由 このアクティビティは、重要で長期化しやすい段階の開始を示します。調査開始までの時間と調査自体の所要時間を分析すると、主なボトルネックが見えてきます。 入手先 調査に関連するActivityPattern(例:「初期調査」「目撃者への連絡」)を持つcc_activityレコードのCreateTimeから推定します。 記録 調査に関連するパターンまたは件名を持つタスクが最初に作成された時点を特定します。 イベントタイプ inferred | |||
| 請求の再開 | 追加対応のため、請求の状態が「終了」から「オープン」に戻ったことを示します。特定のステータス変更の順序から推定します。 | ||
| 重要な理由 このアクティビティは手戻りを示します。再開された請求が多い場合、最初の示談、見落とされた損害、その他のプロセス上の問題が考えられ、コストと非効率の増加につながります。 入手先 cc_historyテーブルで、cc_claimエンティティのStateフィールドが「終了」から「オープン」または別の有効な状態に戻ったことを特定して推定します。 記録 請求のメインステータスフィールドを監視し、終了状態からオープン状態への変更を確認します。 イベントタイプ inferred | |||
| 請求の割り当て | 請求を特定のユーザー(査定担当者)またはグループに割り当て、対応を依頼したことを示します。通常は、Claimエンティティの割り当てフィールドの変更を監視して推定します。 | ||
| 重要な理由 割り当てを追跡すると、査定担当者の業務負荷や振り分けのボトルネックを分析し、担当者が最初に対応するまでの時間を測定できます。 入手先 cc_historyテーブルで、特定のClaim IDに関連付けられたAssignedUserまたはAssignedGroupフィールドの変更を追跡して推定します。変更のタイムスタンプがイベントの発生時刻を示します。 記録 監査ログまたは履歴テーブルで、請求の割り当てフィールドの更新を監視します。 イベントタイプ inferred | |||
| 賠償責任の判断 | 補償対象について、賠償責任または過失に関する判断が確定した時点を示します。通常はExposureエンティティのステータス変更から推定します。 | ||
| 重要な理由 これは、示談と支払いの段階に進むための重要な判断のマイルストーンです。判断までの時間を分析すると、調査や評価の段階にあるボトルネックを特定できます。 入手先 cc_historyテーブルで、cc_exposureエンティティのStateまたはカスタムの賠償責任ステータスフィールドの変更を追跡して推定します。履歴レコードのタイムスタンプがイベントの発生時刻を示します。 記録 監査ログまたは履歴テーブルで、補償対象の状態または賠償責任ステータスの更新を監視します。 イベントタイプ inferred | |||
| 追加情報の依頼 | 請求者または第三者に、追加情報や文書を依頼したことを示します。通常はClaimCenterで作成された明示的な「アクティビティ」(タスク)として記録されます。 | ||
| 重要な理由 このアクティビティは、「追加情報収集サイクルタイム」の重要業績評価指標(KPI)を測定する起点です。頻繁に発生する場合、事故の初回通知(FNOL)のプロセスが不完全、または情報収集が非効率である可能性があります。 入手先 外部関係者への文書または情報の依頼に関連するActivityPatternを持つcc_activityレコードのCreateTimeから取得します。 記録 外部情報を依頼するタスクが作成された時点を特定します。 イベントタイプ explicit | |||
| 追加情報の受領 | 追加情報の依頼が完了したことを示します。情報依頼に対応する「アクティビティ」(タスク)のステータスが「完了」になった時点で記録されます。 | ||
| 重要な理由 これは「追加情報収集サイクルタイム」の重要業績評価指標(KPI)の終点です。依頼から受領までの長い期間は、請求処理の遅延につながる一般的な要因です。 入手先 情報依頼に関連するActivityPatternを持つcc_activityレコードのCloseTimeから取得します。アクティビティのステータスは「完了」である必要があります。 記録 外部情報を依頼するタスクが完了したタイムスタンプを特定します。 イベントタイプ explicit | |||
データ抽出ガイド
ステップ
- 前提条件の確認:Guidewire DataHub/InfoCenterのデータマートデータベースに読み取り権限でアクセスするための権限と認証情報があることを確認します。保険金請求データマートにデータを取り込むETLジョブが正常に実行され、データが最新であることも確認してください。
- データベースへの接続:標準的なSQLクライアント(DBeaver、SQL Server Management Studioなど)を使って、データマートデータベースサーバーに接続します。
- スキーマの確認:クエリ全体を実行する前に、データマートのスキーマを確認します。保険金請求、補償対象、アクティビティ、金融取引に関する主要なテーブルを特定してください。主要テーブルの名前には通常、_dim(ディメンション)や_fact(ファクト)などの接尾辞が付いています。これにより、スクリプト内の仮のテーブル名や列名を検証できます。
- SQLクエリの準備:クエリのセクションにあるSQLスクリプト全体をコピーし、SQLクライアントのクエリエディターに貼り付けます。
- プレースホルダーの置き換え:スクリプトを確認し、すべてのプレースホルダー値を置き換えます。データベース/スキーマ名(例:[YourDataMart])、日付範囲のパラメーター('[StartDate]'、'[EndDate]')、システム固有の設定値(アクティビティのパターンやステータスコードなど)が含まれます。
- クエリの実行:変更したSQLクエリをデータマートに対して実行します。実行時間は、指定した日付範囲やシステム内のデータ量によって異なります。
- 初期データの確認:クエリの完了後、結果の先頭数百行を確認します。ClaimID、ActivityName、EventTimeの各列に想定どおり値が入り、複数のアクティビティ種別が含まれていることを確認してください。
- CSVへのエクスポート:SQLクライアントから結果全体をCSVファイルにエクスポートします。ファイル名は内容が分かるものにしてください(例:guidewire_claimcenter_event_log.csv)。
- ProcessMind用の形式に整える:CSVファイルをUTF-8で保存します。ヘッダー行がSQLクエリの列別名と一致していることを確認してください。これでProcessMindにアップロードする準備が整います。
設定
- データソース:Guidewire DataHub/InfoCenterの保険金請求データマート。稼働中のClaimCenter本番データベースとは別の、レポート作成と分析向けに設計された、あらかじめ集計済みのディメンショナルデータベースです。
- 必要な権限:データマートをホストするSQLデータベースへの読み取り専用アクセスが必要です。ユーザー名、パスワード、接続情報(サーバーアドレス、データベース名)を用意してください。
- ETLジョブの状態:抽出データの正確性は、データマートにデータを取り込むGuidewireのETLジョブが正常かつ適時に実行されているかどうかに左右されます。データの鮮度を把握するため、最後に正常終了した時刻を確認してください。
- 日付範囲の指定:クエリには'[StartDate]'と'[EndDate]'のプレースホルダーを含むWHERE句があります。処理性能を保つため、まずは3~6か月程度の範囲を指定することをおすすめします。日付フィルターは請求のCreateTimeに適用されます。
- 設定固有の値:Guidewireは柔軟に設定できます。WHERE句の値を組織の設定に合わせて調整してください。対象には次の値が含まれます。
- ActivityPattern名(例:'fnol'、'investigation'、'Request additional information')
- ClaimStatus、ExposureStatus、CloseReasonのコード(例:'denied'、'closed')
- TransactionStatusのコード(例:'pendingapproval'、'approved'、'issued')
- パフォーマンス:大規模な履歴テーブルや監査テーブルへのクエリは、システムリソースを多く消費する場合があります。データ量が非常に多い場合は、業務の閑散時間帯にクエリを実行することをおすすめします。関連テーブルでClaimID列またはClaimNumber列にインデックスが設定されていることを確認してください。
クエリの例 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'; ステップ
- 組織でClaimCenter環境向けのGuidewire Cloud Data Access(CDA)Snowflakeデータ共有が有効になっていることを確認し、Guidewire Cloud管理者からSnowflakeアカウント識別子、データベース、スキーマ、ウェアハウス、ロール、認証方式、許可されたネットワーク設定を入手します。
- データ共有で公開されているCDAのデータベースオブジェクトと列を正確に確認します。CDAのスキーマ名や列名は、テナント、リリース、設定、データ共有モデルによって異なる場合があります。クエリ内の角括弧で囲まれたオブジェクト名や列名のプレースホルダーは、それぞれの環境に対応するオブジェクトに置き換えてください。ClaimCenterの運用エンティティ名がSnowflakeでもそのまま公開されているとは限りません。
- 請求の作成、請求の割り当て履歴、補償対象の作成、準備金取引、アクティビティ、補償対象のステータス履歴、支払ステータス履歴、請求ステータス履歴の各データソースを特定します。データ共有に履歴テーブルや監査レコードが含まれない場合は、必要な状態遷移ごとに変更前の値、変更後の値、イベント時刻、実行者を保持できる、承認済みのデータソースを設定してください。
- 許可されたSnowflakeクライアント、ワークシート、ノートブック、またはSQL実行ツールを使ってCDAのSnowflakeデータ共有に接続します。可能な場合は読み取り専用ロールを使用してください。クエリ内の[Start timestamp]と[End timestamp]に分析期間の開始・終了時刻を設定し、[Company filter]には承認済みの会社または事業部門のフィルターを指定します。
- クエリ内のデータソースのプレースホルダーを、確認済みのCDAオブジェクト名と列名に置き換えます。このクエリでは、必要な14種類のアクティビティすべてについて行を明示的に作成します: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、Claim Reopened。
- クエリを実行し、結果のスキーマを確認します。出力にはClaimID、ActivityName、EventTime、AssignedAdjuster、ClaimType、ClaimStatus、LossCauseが必要です。ProcessMindではClaimID、ActivityName、EventTimeが必須です。イベントごとに1行を保持し、請求単位でイベントを集計しないでください。
- エクスポート前に、タイムスタンプ、ステータス遷移、担当者の変更、重複処理、アクティビティ件数を検証します。イベント時刻のタイムゾーンが統一されていること、また別々の業務アクティビティを表すイベントが同じ時刻に発生した場合も、それぞれ別の行として保持されていることを確認してください。
- 結果をUTF-8のCSV、またはProcessMindが対応する別の表形式でエクスポートします。ClaimIDをケース識別子、ActivityNameをアクティビティ、EventTimeをイベント時刻として割り当てます。推奨属性は追加のイベント属性として保持し、抽出対象外のアクティビティを推測で追加せずにファイルをProcessMindにアップロードしてください。
設定
- 接続と権限:Guidewireが提供するSnowflakeデータ共有を、許可されたSnowflakeアカウント、ロール、ウェアハウス、ネットワーク経路から利用します。利用者側から見たCDAは読み取り専用です。必要なアクセス権はテナントの設定によって異なり、共有データベースや特定のスキーマ/ビューへのクエリ権限が必要になる場合があります。
- データソースオブジェクトの設定:角括弧で囲まれたデータソース参照はすべて、CDAのデータ共有で確認したオブジェクトに置き換えます。公開されるCDAの構造はリリースやテナントによって異なるため、このクエリではClaimCenterのテーブル名や列名を一律に定めていません。
- 日付範囲:検証と業務分析には、まず3~6か月の期間を指定します。ウェアハウスのキャパシティ、イベント履歴の保持期間、許容できるクエリ実行時間を確認してから、対象期間を広げてください。後続のアクティビティが除外されないよう、請求の作成日だけでなく、関連するイベント時刻でデータを絞り込みます。
- 必須の出力項目:すべてのイベント行にClaimID、ActivityName、EventTimeが含まれ、NULLでないことが必要です。ActivityNameには、ProcessMindのプロセスモデルで指定されているラベルを正確に使用してください。
- 推奨される出力項目:AssignedAdjuster、ClaimType、ClaimStatus、LossCauseを含めてください。利用できる場合は、イベント発生時点のスナップショットから値を取得します。現在の状態の値しか公開されていない場合、過去の属性値がイベント発生時点の値と一致しない可能性があるため、その制約を文書化してください。
- フィルター:[Company filter]は、対応するテナント固有の会社、組織、事業部門、または法人の列を確認してから適用します。ClaimCenterの設定で対象アクティビティに関係する文書種別フィールドが確認できない限り、文書種別で絞り込まないでください。
- イベント履歴:担当者の割り当て、調査、情報依頼、賠償責任の判断、支払状況、請求の再開を特定するには、履歴データまたは監査データが必要です。現在の状態を示すテーブルだけでは、過去のイベントを確実に再構成できません。
- 重複排除:利用できる場合は、確認済みのソースイベント識別子を使用します。このクエリでは、設定可能な安全策としてROW_NUMBERを使用しています。同時刻に別々のアクティビティが正当に発生する場合、ClaimIDとタイムスタンプだけを基準にイベントを重複排除しないでください。
- パフォーマンス:日付範囲を限定し、必要な列だけを選択し、各データソースをイベント時刻で絞り込み、適切なサイズのSnowflakeウェアハウスを使用します。データ量が多い場合は、検証済みのイベントビューを作成するか、増分抽出を検討してください。
- タイムゾーン:EventTimeのタイムゾーンを統一し、使用するタイムゾーンを文書化します。イベントログを読み込む前に、CDAのタイムスタンプがUTC、現地時刻、またはSnowflakeのどのタイムスタンプ型で保存されているかを確認してください。
- 前提条件:必要なClaimCenterの財務、アクティビティ、担当者割り当て、補償対象、支払、ステータス履歴のデータが共有に含まれ、保持ポリシーによって必要な過去の状態遷移が保存されていることを確認してください。
クエリの例 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; ステップ
- オンプレミスのGuidewire ClaimCenter運用データベースへの直接読み取りアクセスが許可されていること、データベースのプラットフォームとスキーマのバージョンが文書化されていること、読み取り専用の接続が利用できることを確認します。承認された抽出時間帯以外に本番データベースへクエリを実行しないでください。
- ClaimCenterの実装で使用されている物理テーブルと列を特定します。請求、補償対象、アクティビティ、担当者割り当て、準備金、支払、ステータス履歴、ユーザーまたはグループの各エンティティを、クエリ内のプレースホルダーに対応付けます。物理名や監査構造は実装やバージョンによって異なるため、データベースカタログとClaimCenterのデータモデルで確認してから各プレースホルダーを置き換えてください。
- [Start date parameter]と[End date parameter]を使って抽出期間を指定します。ステータス変更、タスク完了、金融取引が主な請求作成期間の後に記録される場合は、指定した開始日の1~2日前など、期間に重なりを設けてください。
- 読み取り専用権限でSQL文全体を実行します。各アクティビティは明示的なイベント行として出力されます。取り込み後にProcessMindがイベントを推測する仕組みではありません。フィールド変更から推測するイベントは、関連する履歴または監査レコードを使ってSQL文の中で導出されます。
- 各アクティビティのデータソースとの対応を検証します。請求の作成には最初に保存されたClaimレコード、担当者の割り当てには割り当て変更、補償対象の作成には作成レコード、初期準備金には補償対象ごとの最初の準備金取引、調査と情報依頼にはアクティビティレコード、賠償責任には設定済みの補償対象ステータス遷移、示談には承認待ちの支払状態、支払承認と支払実行にはそれぞれ対応する金融監査状態が使われていることを確認してください。
- 出力を必要なイベントログ形式に整えます。ClaimIDをケース識別子、ActivityNameを文書化された14種類のアクティビティ名のいずれか、EventTimeをタイムスタンプにします。データソースとの対応が確認できる場合は、AssignedAdjuster、ClaimType、ClaimStatus、LossCauseなどの推奨属性を保持してください。
- 重複イベントとイベントの順序を確認します。同じ業務上の状態遷移に対する監査行が複数ある場合は、該当する共通テーブル式で実装固有の重複排除キーを適用します。タイムスタンプやソース識別子が異なる別々の業務イベントをまとめないでください。
- 結果をUTF-8のCSV、またはProcessMindが対応する別の表形式でエクスポートします。ClaimID、ActivityName、EventTime、AssignedAdjuster、ClaimType、ClaimStatus、LossCauseをヘッダー行に含めます。タイムスタンプにタイムゾーン情報を含めるか、文書化されたデータベースのタイムゾーンを一貫して使用してください。ファイルをProcessMindにアップロードし、ClaimIDをケース識別子、ActivityNameをアクティビティ、EventTimeをイベント時刻として割り当てます。
設定
- データベースアクセス:必要なClaimCenterの運用テーブル、履歴テーブル、アクティビティテーブル、金融取引テーブルにクエリを実行できる読み取り専用アカウントを使用します。抽出のために書き込み、スキーマ変更、管理者の権限を付与しないでください。
- スキーマの対応付け:[Your claim table]、[Your exposure table]、[Your activity table]、[Your reserve table]、[Your payment table]、[Your claim history table]、[Your exposure history table]などのプレースホルダーを、対象の実装で確認した名前に置き換えます。Guidewireの論理エンティティ名が物理データベースのテーブル名と同じとは限りません。
- 日付範囲:まず3~6か月分のデータを対象にします。[Start date parameter]と[End date parameter]を指定し、請求作成後にイベントが記録される場合や、再開された請求が複数のレポート期間にまたがる場合は、期間に重なりを設けてください。
- フィルター:[Company Code filter]、[Document Type filter]、管轄、事業種目、その他の組織固有のフィルターは、物理列と業務上の意味を確認してから適用します。支払や補償対象がない請求もライフサイクル全体の分析に必要なため、除外しないでください。
- アクティビティ名:ProcessMindで一貫したイベントラベルを受け取れるよう、クエリで定義された14種類のActivityNameの値を正確に維持します。
- イベントの意味:推測として説明されているアクティビティは、SQL内でソースのステータス、担当者割り当て、履歴、またはアクティビティの遷移から生成されます。取り込み後にProcessMindが他の行からこれらのイベントを導出することはありません。
- パフォーマンス:抽出期間を限定し、必要な列だけを選択し、結合前にデータソースのテーブルを絞り込みます。請求識別子、補償対象識別子、イベント時刻、ステータス項目、取引識別子にインデックスがあることを確認してください。利用できる場合は、大規模な抽出をレポート用レプリカに対して実行します。
- 一貫性:レポートに適したトランザクション分離レベルを使用し、一貫性のある抽出時点を確保します。金融バッチ処理や大量のステータス更新が一部だけコミットされた状態でテーブルを読み取らないでください。
- タイムゾーン:データベースのタイムゾーンを文書化し、エクスポート前にすべてのソースのタイムスタンプを合意したタイムゾーンに変換します。アプリケーションの現地時刻とデータベースサーバーの時刻を混在させないでください。
- 前提条件:必要なClaimCenterのモジュール、財務権限、監査または履歴の保持、データベース接続が利用できることを確認します。履歴や監査データが保持されていない場合、該当する推測イベントを確実に再構成できません。
- 検証設定:エクスポートごとに、ClaimCenterのバージョン、データベースのプラットフォーム、スキーマの対応付け、抽出時刻、日付パラメーター、フィルター、行数を記録します。
クエリの例 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; 準備はできましたか?
このテンプレートを使って分析用のデータを準備し、保険金請求処理に関するインサイトを見つけてください。今すぐワークフローの改善に取り組みましょう。
保険金請求処理を迅速化し、案件の早期解決へ
滞留を解消し、不正を防止して、70%のストレートスルー処理を目指します。
クレジットカードは不要です。セットアップは数分で完了します。