保険金請求処理のデータテンプレート
保険金請求処理のデータテンプレート
- 収集を推奨する属性
- 追跡すべき主要なアクティビティ
- Guidewire ClaimCenterからの抽出手順
保険金請求処理の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 請求ライフサイクルの特定の時点で発生した業務アクティビティまたはイベントの名称です。 | ||
| 説明 この属性は、「Claim Created」「Investigation Started」「Payment Issued」など、保険金請求プロセスにおける特定のステップやマイルストーンを示します。特定のClaim IDにおけるこれらのアクティビティの順序が、プロセスフローを形成します。 アクティビティの順序、頻度、間隔を分析することは、プロセスマイニングの中核です。プロセスモデルの発見、ボトルネックの特定、手戻りループの検出、プロセスの逸脱分析が可能になります。 重要な理由 プロセスの各ステップを定義し、プロセスマップの可視化とプロセスフローおよびボトルネックの分析を可能にします。 入手先 通常はClaimCenterのイベントテーブルまたは監査ログから取得し、特定のシステムイベントやステータス変更を標準化されたアクティビティ名にマッピングします。 例 請求作成賠償責任の判断完了支払いを発行請求を完了 | |||
| イベント時刻 EventTime | アクティビティが発生した正確な日時です。 | ||
| 説明 このタイムスタンプは、アクティビティがシステムに記録された正確な時点を示します。時間に基づくプロセス分析の基礎となります。 1つのClaim IDにおけるEventTimeを時系列に並べることで、プロセスフローを再構成できます。連続するイベント間の時間差から、処理期間、待ち時間、処理時間を算出できます。これらは、パフォーマンス分析、ボトルネックの特定、SLA監視に欠かせません。 重要な理由 イベントの順序付け、処理期間と所要時間の算出、プロセス内の遅延特定に欠かせないタイムスタンプです。 入手先 Guidewire ClaimCenterの履歴テーブルまたは監査テーブルで、イベントやアクティビティのデータとともに確認できます。通常は「CreateTime」または「UpdateTime」フィールドとして記録されます。 例 2023-05-15T09:00:00Z2023-05-16T14:30:15Z2023-06-01T11:20:00Z | |||
| 保険金請求ID ClaimID | 各保険金請求を識別する一意の識別子であり、主要なケース識別子として機能します。 | ||
| 説明 Claim IDは、提出から完了まで各ケースを一意に識別する、保険金請求プロセス分析の基盤です。関連するすべてのアクティビティ、書類、支払い、コミュニケーションを結び付け、請求ライフサイクルを完全かつ一貫して把握できるようにします。 プロセスマイニングでは、データセット内のすべてのイベントがClaim IDに紐づくため、プロセスの開始から完了までの流れを再構成できます。処理期間の分析、プロセスのバリエーションの特定、部門や担当者をまたぐ請求の流れの追跡に欠かせません。 重要な理由 関連するすべてのイベントを結び付ける基本キーであり、1件の請求の全体の流れを追跡・分析できます。 入手先 Guidewire ClaimCenterの主キーであり、通常は中核のClaimエンティティにあるClaim.ClaimNumberまたは同様のフィールドです。 例 000-123-45678000-987-65432001-456-11223 | |||
| 保険金請求ステータス ClaimStatus | イベント発生時点における保険金請求全体のステータスです。例として、Open、Closed、Deniedなどがあります。 | ||
| 説明 この属性は、保険金請求の大まかな状態を示します。主なステータスには、「Open」「Closed」「Denied」「Reopened」があります。請求の最終ステータスは、重要な結果指標です。 保険金請求ステータスの変化を追跡すると、プロセスの主要な節目と結果を定義できます。請求の最終的な解決状況の特定、却下率の計算、クローズ後に再開される請求の頻度の分析に利用できます。再開の頻度が高い場合、プロセス上の問題や顧客満足度の低下を示していることがあります。 重要な理由 請求の結果を示し、却下率、クローズの傾向、請求が再開される頻度を分析するうえで重要です。 入手先 Claimエンティティの基本項目で、通常は「State」または「Status」という名前です。 例 オープンクローズ却下再開 | |||
| 保険金請求種別 ClaimType | 保険金請求の区分です。例として、自動車、財物、賠償責任などがあります。 | ||
| 説明 保険金請求種別は、事業種別または損害の性質に基づいて請求を分類する基本的な項目です。請求種別によって、従うプロセス、複雑さ、適用される規制が異なる場合があります。 意味のある分析結果を得るには、保険金請求種別でプロセスを分けて分析することが欠かせません。事業種別ごとのパフォーマンスを比較し、種別固有のボトルネックを特定するとともに、各請求区分の特性に合わせて改善施策を調整できます。 重要な理由 請求を区分して分析できます。例えば、自動車と財物では、異なるプロセスに従い、パフォーマンス目標も異なる場合があります。 入手先 ClaimCenterのPolicyまたはClaimエンティティから導出され、通常はLine of Business(LOB)コードに基づきます。 例 個人自動車保険企業財物保険一般賠償責任労災補償 | |||
| 担当アジャスター AssignedAdjuster | 保険金請求または特定のアクティビティを担当するユーザーの名前またはIDです。 | ||
| 説明 この属性は、特定の時点で保険金請求を担当する個々のアジャスターを識別します。アジャスターは請求全体を担当する場合もあれば、請求内の特定のタスクを担当する場合もあります。 担当アジャスター別の分析は、業務量の平準化、パフォーマンス管理、研修機会の特定に欠かせません。「最も多くの案件を抱えているアジャスターは誰か」「アジャスター間でパフォーマンスに差があるか」「業務は均等に配分されているか」といった問いに答えられます。 重要な理由 ユーザーの関与状況を追跡し、業務量の分析、パフォーマンスの比較、リソースに起因するボトルネックの特定に役立ちます。 入手先 ClaimCenterのClaimまたはExposureエンティティで利用でき、通常はUserオブジェクト(例:Claim.Assignee)に関連付けられています。 例 j.doem.smiths.jones | |||
| 損害原因 LossCause | 損害事象の具体的な理由または原因です。例として、衝突、火災、水濡れなどがあります。 | ||
| 説明 この属性は、請求が行われた理由を詳しく示します。損害原因によって、必要な調査手順、必要となる専門家の種類、請求全体の複雑さが決まることが多くあります。 損害原因別にプロセスを分析すると、隠れた傾向を明らかにできます。例えば、「Water Damage」に関する請求は、「Theft」に関する請求よりも手戻りが多く、専門家の関与が必要になる割合も高い場合があります。こうした分析結果は、より専門的で効率的な処理手順の整備に役立ちます。 重要な理由 請求の性質を把握するための情報であり、損害原因の違いがプロセスの流れや所要時間に与える影響を分析できます。 入手先 Claimエンティティの標準項目で、通常は「LossCause」という名前です。 例 衝突火災水濡れ損害盗難 | |||
| SLAステータス SLAState | 請求が解決目標日までにクローズされたかどうかを示します。 | ||
| 説明 この計算属性は、クローズ済みの請求ごとにSLA遵守状況を区分して示します。「Claim Closed」アクティビティのタイムスタンプと「Resolution Target Date」を比較して導出します。 この属性は、「Claim Resolution Target Adherence」ダッシュボードを直接支援し、「On Time」や「Late」などの明確な区分に分析結果を整理します。フィルタリングや集計が容易になり、SLA遵守率全体の計算や、遅延理由の詳細な分析が可能になります。 重要な理由 SLA遵守状況を明確な区分で示すため、期限内処理のフィルタリング、集計、分析を容易に行えます。 入手先 計算項目:IF (ActualCloseDate <= ResolutionTargetDate, 'On Time', 'Late')。 例 期限内遅延 | |||
| ソースシステム SourceSystem | データの抽出元となるシステムです。 | ||
| 説明 この属性は、イベントデータの発生元を示します。現代の企業システム環境では、請求関連のイベントがGuidewireのような中核システム、文書管理システム、顧客ポータルなど、複数のシステムから発生する場合があります。 ソースシステムを指定することは、データガバナンス、データの不整合の調査、プロセスを支える技術環境の把握に欠かせません。中核プロセスのステップと、周辺システムで行われる補助的なアクティビティを区別するのにも役立ちます。 重要な理由 データの発生元を示します。データガバナンスや、複数の統合システムにまたがる分析に欠かせない情報です。 入手先 通常は、データの抽出、変換、ロード(ETL)処理の際に追加される固定値です。 例 Guidewire ClaimCenter v10顧客ポータルAPIDocumentum | |||
| 保険契約種別 PolicyType | 請求が行われた保険契約の具体的な種別です。 | ||
| 説明 保険契約種別は、保険金請求種別よりも細かな分類であり、「Homeowners」「Commercial Auto」「Cyber Liability」など、具体的な保険商品を示します。この粒度で分析すると、特定の商品に結び付いたプロセスの違いを把握できます。 保険契約種別でプロセスを分析すると、商品固有の非効率を明らかにできます。例えば、新しく発売された保険契約ではプロセスが十分に確立されておらず、遅延が発生する場合があります。この分析結果は、商品設計やプロセスの標準化に役立ちます。 重要な理由 特定の保険商品を対象にプロセスを分析でき、契約内容に応じた処理の違いを特定するのに役立ちます。 入手先 この情報は、Claimに関連付けられたPolicyエンティティにあります。 例 住宅所有者総合保険企業自動車賠償責任内陸海上保険 | |||
| 最終データ更新日時 LastDataUpdate | データが最後に更新された、またはソースシステムから抽出された日時を示すタイムスタンプです。 | ||
| 説明 この属性は、ソースシステムから直近にデータを取得した日時を示します。分析対象データの鮮度を把握するうえで欠かせないメタデータ項目です。 ダッシュボードや分析画面では、この情報を目立つ位置に表示し、データがいつ時点のものかを利用者が確認できるようにする必要があります。分析結果が現在の業務状況を反映しているのか、それとも古いデータに基づいているのかを判断するのに役立ちます。 重要な理由 データの鮮度を示し、プロセス分析がどの時点の状況を反映しているかを把握できるようにします。 入手先 この値はETL処理中に生成・保存され、データを読み込んだ日時を示します。 例 2024-07-28T04:00:00Z2024-07-29T04:00:00Z | |||
| 情報再依頼 RepeatedInfoRequestFlag | 同じ請求に対して「Additional Info Requested」が複数回発生したかどうかを示すフラグです。 | ||
| 説明 このブール型フラグは、1件の請求で「Additional Info Requested」アクティビティが複数回発生した場合にtrueになります。この状況は、初期の情報収集段階に非効率があることを示す場合があります。 この属性は、「Repeated Info Request Rate」KPIを直接支援します。初回の事実確認が不十分であることによる問題を定量化でき、結果として大きな遅延や顧客の不満につながる可能性があります。このフラグが付いた請求を分析すると、必要な情報を一度に依頼できるよう、アジャスター向けのチェックリストや手順を改善できます。 重要な理由 情報収集を初回で完了できず、プロセスの遅延や手戻りにつながる非効率を特定します。 入手先 ケースごとに「Additional Info Requested」アクティビティの発生回数を数え、プロセスマイニングツール内で計算します。 例 truefalse | |||
| 手戻りかどうか IsRework | アクティビティが手戻りループ、つまり以前のプロセス段階への戻りを表すかどうかを示すフラグです。 | ||
| 説明 この計算属性は、手戻りループに含まれるアクティビティを示します。例えば、プロセスが「Investigation Completed」から「Investigation Started」に戻った場合、2回目の「Investigation Started」アクティビティが手戻りとして識別されます。 手戻りの特定は、プロセスの非効率や品質上の問題を明らかにするうえで基本となります。「Rework and Rejection Frequency」ダッシュボードでは、この指標を使って、請求が理想的な「happy path」からどの程度逸脱しているかを定量化します。手戻りの原因を分析すると、プロセスの品質と処理速度を大きく改善できる場合があります。 重要な理由 手戻りループに含まれるアクティビティを明示的に示し、プロセスの非効率や品質上の問題を明らかにします。 入手先 ケースごとのアクティビティの順序を分析し、プロセスマイニングツール内で計算します。 例 truefalse | |||
| 損害発生日 LossDate | 請求の原因となった事故または損害が発生した日付です。 | ||
| 説明 損害発生日は、請求の対象となる実際の事象(例:自動車事故、財物損害)が発生した日付です。請求が報告または作成された日付とは異なります。 損害発生日から「Claim Created」アクティビティまでの時間差は、報告遅延と呼ばれる重要なKPIです。これを分析すると、顧客の行動や、損害の第一報を受け付けるチャネルの有効性を把握できます。 重要な理由 請求の発生経緯を把握するための重要な情報であり、報告遅延(事故発生から請求提出までの時間)の分析に役立ちます。 入手先 Claimエンティティの基本的な日付項目で、通常は「LossDate」という名前です。 例 2023-05-102023-04-202023-05-28 | |||
| 支払金額 PaymentAmount | 支払いアクティビティで実際に支払われた金額です。 | ||
| 説明 この属性は、請求に対して行われた個々の支払いの金額を記録します。1件の請求に対して、ライフサイクル全体で複数回の支払いが発生する場合があります。 プロセスマイニングで財務面を分析するうえで欠かせない項目です。請求ごとの支払総額の追跡、金額に応じた支払承認時間の分析、プロセスの非効率と財務結果の関連付けに利用できます。例えば、処理期間が長い請求では、支払総額も高くなる傾向が見られる場合があります。 重要な理由 請求に伴う金銭取引を追跡し、支払金額とプロセスアクティビティの関係を分析できます。 入手先 請求に関連付けられたPayment関連エンティティにあり、通常は取引テーブルまたは小切手テーブルに記録されています。 例 4500.00125000.00500.00 | |||
| 管轄州 JurisdictionState | 請求を管轄し、規制要件を定める州または管轄区域です。 | ||
| 説明 この属性は、請求処理の法的管轄区域(例:米国の州)を示します。保険規制は管轄区域によって大きく異なる場合があり、必要なプロセス手順、連絡期限、文書に影響します。 コンプライアンスを監視するうえで重要な属性です。管轄区域別にプロセスを分析すると、州ごとの規制要件が満たされているかを確認できます。また、サイクルタイムやプロセス経路の違いが、業務上の非効率ではなく法的制約によるものかどうかを説明できます。 重要な理由 管轄区域ごとに規制が異なり、請求プロセスに影響するため、コンプライアンス分析に欠かせません。 入手先 Claimエンティティの標準項目で、通常は「JurisdictionState」という名前です。 例 CANYTXFL | |||
| 終了日時 EndTime | アクティビティが完了した日時を示すタイムスタンプです。 | ||
| 説明 終了日時は、アクティビティの完了時点を示します。特に、「Investigation」や「Document Review」のように、所要時間を測定できるタスクで使用します。プロセスマイニングのアクティビティの多くは瞬時に完了するため、StartTimeだけで十分な場合もありますが、開始と終了が明確に分かれるアクティビティでは、両方のタイムスタンプを記録する方が適切です。 この属性により、待ち時間とは分けて、アクティビティの処理時間を正確に計算できます。単にステップ間の遅延が長いことを確認するだけでなく、どのタスクに時間がかかっているのかを特定できます。 重要な理由 アクティビティの完了までにかかった時間を正確に測定し、処理時間と待ち時間を分けて把握できます。 入手先 「In Progress」から「Completed」へのステータス変更など、アクティビティの完了を示す後続イベントを特定して導出する必要がある場合があります。 例 2023-05-15T17:00:00Z2023-05-16T15:00:00Z2023-06-02T10:00:00Z | |||
| 自動処理かどうか IsAutomated | アクティビティがシステムによって自動的に実行されたか、人が実行したかを示すフラグです。 | ||
| 説明 このブール型属性は、システムが実行したアクティビティ(例:準備金の自動作成、システムが生成した通知)と、アジャスターが手動で実行したアクティビティを区別します。 この属性を分析すると、請求プロセスの自動化レベルを把握できます。手動介入が集中する箇所を特定し、ストレートスルー処理の取り組みの効果を測定できます。また、人が現在行っている反復的でルールベースのタスクを特定し、新たな自動化の機会を見つけられます。 重要な理由 システム主導のアクティビティと人が行うアクティビティを区別でき、自動化の分析や手作業によるボトルネックの特定に役立ちます。 入手先 導出が必要になることが多くあります。例えば、汎用の「system」ユーザーが記録したイベントを自動処理として識別できます。 例 truefalse | |||
| 解決目標日 ResolutionTargetDate | 社内SLAまたは規制上のSLAに基づき、請求を解決する予定の日付です。 | ||
| 説明 解決目標日は、請求をクローズする期限です。管轄区域、請求種別、保険契約の条件などに基づいて設定されることが多くあります。パフォーマンスとコンプライアンスを測定する基準になります。 この属性は、SLA遵守状況のダッシュボードやKPIを作成するうえで重要です。実際の「Claim Closed」日と目標日を比較することで、遅延した請求を自動的に特定し、期限内処理率を測定できます。また、目標達成に苦労している請求種別や部門を明らかにできます。 重要な理由 サービスレベル合意(SLA)の遵守状況を測定し、期限超過のリスクがある請求を特定するための基準です。 入手先 カスタム項目である場合や、ClaimCenterで設定された業務ルールに基づいて導出される場合があります。特定の請求指標に関連付けられている可能性もあります。 例 2023-06-142023-07-202023-08-28 | |||
| 請求金額 ClaimedAmount | 契約者が当初請求した金額の合計です。 | ||
| 説明 この属性は、請求者が申告した損害額を示します。多くの場合、初期見積額であり、請求の調査や準備金の設定に伴って変わる可能性があります。 請求金額を分析すると、金銭的な影響に応じて請求を区分できます。高額請求は、低額請求よりも厳格で複雑なプロセスを経ることが多くあります。金額帯ごとにプロセスを比較すると、少額請求の処理を効率化する機会や、高額請求に対してより厳格な管理を適用する機会を見つけられます。 重要な理由 金額に応じて請求を区分できます。高額請求では、異なる、より複雑なプロセスが適用される場合があります。 入手先 単一の項目ではなく、Exposureに記録された初期損害見積額から導出する場合があります。 例 5000.00150000.00750.50 | |||
| 部門 Department | 保険金請求のアクティビティを担当する事業部門または部門です。 | ||
| 説明 この属性は、担当アジャスターが所属する部門またはチームを示します。例として、「Auto Claims」「Property Claims」「Special Investigations Unit」などがあります。プロセスを組織の観点から捉えるための情報です。 部門別の分析は、組織レベルでプロセスのパフォーマンスを把握するうえで重要です。部門間の引き継ぎによる遅延を特定し、チーム間の効率を比較するとともに、保険金請求業務全体でリソースをより適切に配分できます。 重要な理由 組織上の位置付けを示し、チーム間のパフォーマンスを分析するとともに、部門間の引き継ぎに関する問題を明らかにできます。 入手先 通常は、担当ユーザーまたはグループのClaimCenter内のプロファイルに関連付けられています。 例 自動車保険金請求部門財物保険金請求部門特別調査部門(SIU) | |||
保険金請求処理のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| Exposureを作成 | このアクティビティは、請求に含まれる特定の潜在的負債または損害の種類(車両損傷や負傷など)を表すExposureの作成を示します。Guidewireで明示的に記録されるイベントです。 | ||
| 重要な理由 Exposureは、請求を分類・分析するための基本単位です。作成を追跡することで、請求の複雑さや損害の種類に応じたプロセスの違いを把握できます。 入手先 cc_exposureテーブルで新しいレコードのCreateTimeから取得します。各レコードは1つのClaim IDに関連付けられています。 取得 Exposureエンティティテーブルで、新しいレコードが作成された日時を特定します。 イベントタイプ explicit | |||
| 初期Reserveを設定 | Exposureに対する最初の財務Reserveトランザクションの作成を示し、請求にかかる可能性のある費用を見積もります。重要な財務イベントであり、明示的に記録されます。 | ||
| 重要な理由 このマイルストーンは、財務分析と潜在的負債の評価速度を把握するうえで重要です。遅延は財務計画や報告に影響する可能性があります。 入手先 請求のExposureに関連付けられた最初のcc_reservelineレコードの作成から取得します。トランザクションのCreateTimeがイベントのタイムスタンプになります。 取得 特定の請求のExposureに紐づくすべてのReserve lineについて、作成日時の最小値を取得します。 イベントタイプ explicit | |||
| 支払いを承認 | 精算金の支払いが正式に承認されたことを示します。重要な監査イベントであり、権限を持つユーザーがトランザクションを承認した時点で明示的に記録されます。 | ||
| 重要な理由 この重要なマイルストーンにより、最終支払いへ進めるようになります。このアクティビティの前後の時間を分析することで、承認ワークフローや管理者の対応可能時間による遅延を切り分けられます。 入手先 通常は、cc_checkまたはcc_transactionエンティティに関連するcc_historyテーブルに明示的なイベントとして記録され、「Pending Approval」から「Approved」へのステータス変更を示します。 取得 特定の支払いトランザクションが「Approved」に変更されたイベントを追跡します。 イベントタイプ explicit | |||
| 支払いを発行 | 支払いプロセスの最終ステップであり、支払いが正式に発行され、財務システムへ送信されたことを示します。明示的に記録される財務トランザクションです。 | ||
| 重要な理由 支払いの送付プロセスの効率を測定するうえで重要なアクティビティです。承認の遅延と、実際の資金発行の遅延を区別できます。 入手先 cc_checkまたはcc_transactionエンティティのIssueDate、またはステータスが「Issued」もしくは「Submitted」に変更された時点から取得します。通常はタイムスタンプ付きの明示的なイベントです。 取得 支払いレコードのIssueDate、またはステータスが「Issued」に変更された時点のタイムスタンプを特定します。 イベントタイプ explicit | |||
| 請求を却下 | 請求を却下する最終判断を示し、プロセスの終端となります。請求のステータスが、理由「Denied」を伴うクローズ状態に変更されたことから推定します。 | ||
| 重要な理由 重要な結果イベントです。却下の頻度、理由、却下に至ったプロセス経路を分析することで、請求受付、調査、ポリシー解釈に関する問題を特定できます。 入手先 cc_claimテーブルのStateフィールドが「Closed」に変更され、CloseReasonフィールドが「Denied」または同様の値になったことから推定します。イベント時刻はCloseDateです。 取得 請求ステータスが「Closed」に変更され、理由コードが却下を示すレコードを抽出します。 イベントタイプ inferred | |||
| 請求を完了 | すべてのアクティビティと支払いが完了した後、請求が正常に終了したことを示します。請求の主要ステータスの変更から推定される、主な正常終了イベントです。 | ||
| 重要な理由 主要な終了イベントとして、このアクティビティは開始から完了までの処理期間の算出とSLA遵守状況の測定に欠かせません。請求ライフサイクルの完了を示します。 入手先 cc_claimテーブルのStateフィールドが「Closed」に変更されたことから推定します。イベント時刻は請求レコードのCloseDateです。 取得 請求のマスターステータスフィールドが「Closed」に更新された時点を特定します。 イベントタイプ inferred | |||
| 請求作成 | このアクティビティは、事故通知の第一報(FNOL)と、Guidewire ClaimCenterにおける新しい請求レコードの正式な作成を示します。新しいClaimエンティティが初めてデータベースに保存された時点で、明示的に記録されます。 | ||
| 重要な理由 主要な開始イベントとして、このアクティビティは請求の開始から完了までの処理期間を測定するうえで欠かせません。その後のすべてのパフォーマンスKPIと期間KPIの基準点になります。 入手先 cc_claimテーブルのCreateTimeから取得する明示的なイベントです。一意のClaim IDを持つ新しいレコードの作成が、イベントのトリガーになります。 取得 基盤となるClaimエンティティテーブルで、新しいレコードが作成された日時を特定します。 イベントタイプ explicit | |||
| 精算額を算出 | 精算額が決定されたものの、支払い承認はまだ完了していない時点を示します。「Pending Approval」状態で支払いが作成されたことから推定できます。 | ||
| 重要な理由 査定から支払いへの移行点です。「支払い承認リードタイム」KPIの測定開始点となり、承認経路の遅延を明らかにします。 入手先 初期ステータスが「Pending Approval」または「Approved」になる前の同様の状態であるcc_checkまたはcc_transactionレコードのCreateTimeから推定します。 取得 承認前のステータスで支払いまたはトランザクションレコードが作成された時点を特定します。 イベントタイプ inferred | |||
| 調査を開始 | 請求またはExposureの調査段階が正式に始まったことを示します。通常は、Guidewireで調査に関連する最初の「Activity」(タスク)が作成された時点から推定します。 | ||
| 重要な理由 このアクティビティは、長期化しやすい重要な段階の開始を示します。調査開始までの時間と調査自体の期間を分析することで、主なボトルネックが明らかになります。 入手先 調査に関連するActivityPattern(例:「Initial Investigation」「Contact Witness」を持つcc_activityレコードのCreateTimeから推定します。 取得 調査に関連するパターンまたは件名を持つタスクが最初に作成された時点を特定します。 イベントタイプ inferred | |||
| 請求を再開 | 追加作業を行うため、請求が「Closed」状態から「Open」状態に戻されたことを示します。特定のステータス変更の順序から推定します。 | ||
| 重要な理由 このアクティビティは手戻りを示します。再開される請求が多い場合、初回精算の問題、損害の見落とし、その他のプロセス上の不備が原因で、コストと非効率が増加している可能性があります。 入手先 cc_historyテーブルで、cc_claimエンティティのStateフィールドが「Closed」から「Open」または別のアクティブ状態に変更されたことを特定して推定します。 取得 請求のマスターステータスフィールドを監視し、クローズ状態からオープン状態への移行を特定します。 イベントタイプ inferred | |||
| 請求担当者を割り当て | 請求を処理する特定のユーザー(担当者)またはグループへの割り当てを示します。通常は、Claimエンティティの割り当て項目の変更を監視して推定します。 | ||
| 重要な理由 割り当てを追跡することで、担当者の業務量を分析し、振り分けのボトルネックを特定し、割り当てられた担当者が最初に対応するまでの時間を測定できます。 入手先 特定のClaim IDに関連付けられたAssignedUserまたはAssignedGroupフィールドの変更をcc_historyテーブルで追跡して推定します。変更のタイムスタンプがイベントの発生時刻を示します。 取得 請求の割り当て項目に対する更新を、監査ログまたは履歴テーブルで監視します。 イベントタイプ inferred | |||
| 賠償責任の判断完了 | Exposureについて、賠償責任または過失の判断が確定した時点を示します。通常は、Exposureエンティティのステータス変更から推定します。 | ||
| 重要な理由 精算と支払いの段階へ進むための重要な判断マイルストーンです。この判断までの時間を分析することで、調査・査定段階のボトルネックを特定できます。 入手先 cc_exposureエンティティのStateまたはカスタムの賠償責任ステータスフィールドの変更をcc_historyテーブルで追跡して推定します。履歴レコードのタイムスタンプがイベント時刻を示します。 取得 ExposureのStateまたは賠償責任ステータスに対する更新を、監査ログまたは履歴テーブルで監視します。 イベントタイプ inferred | |||
| 追加情報を依頼 | 請求者または第三者に、追加情報や書類を依頼したことを示します。通常は、ClaimCenterで作成された明示的な「Activity」(タスク)として記録されます。 | ||
| 重要な理由 このアクティビティは、「追加情報収集処理期間」KPIの測定開始点です。頻繁に発生する場合、FNOLプロセスの不備や情報収集の非効率を示している可能性があります。 入手先 外部関係者への書類または情報の依頼に関連するActivityPatternを持つcc_activityレコードのCreateTimeから取得します。 取得 外部情報を依頼するタスクが作成された時点を特定します。 イベントタイプ explicit | |||
| 追加情報を受領 | 追加情報の依頼が完了したことを示します。情報依頼に対応する「Activity」(タスク)が「Completed」になった時点で記録されます。 | ||
| 重要な理由 「追加情報収集処理期間」KPIの終了点です。依頼から受領までの期間が長いことは、請求プロセスで遅延が発生する一般的な原因です。 入手先 情報依頼に関連するActivityPatternを持つcc_activityレコードのCloseTimeから取得します。アクティビティのステータスは「Completed」である必要があります。 取得 外部情報を依頼するタスクが完了した日時を特定します。 イベントタイプ explicit | |||
抽出ガイド
ステップ
- 前提条件の確認:Guidewire DataHub/InfoCenterデータマートデータベースに読み取り権限でアクセスするために必要な権限と認証情報があることを確認します。保険金請求データマートにデータを投入するETLジョブが正常に実行され、データが最新であることも確認してください。
- データベース接続:DBeaver、SQL Server Management Studioなどの標準SQLクライアントを使い、データマートデータベースサーバーへ接続します。
- スキーマの確認:完全なクエリを実行する前に、データマートのスキーマを確認します。保険金請求、エクスポージャー、アクティビティ、財務取引の主要テーブルを特定してください。通常、主要テーブル名には_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列にインデックスが設定されていることを確認してください。
a サンプルクエリ 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オブジェクト名と列名に置き換えます。クエリでは、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の14個の必須アクティビティについて、行を明示的に作成します。
- クエリを実行し、結果スキーマを確認します。出力にはClaimID、ActivityName、EventTime、AssignedAdjuster、ClaimType、ClaimStatus、LossCauseが含まれている必要があります。ProcessMindではClaimID、ActivityName、EventTimeが必須です。イベントごとに1行を保持し、保険金請求単位でイベントを集計しないでください。
- エクスポート前に、タイムスタンプ、ステータス遷移、割り当て変更、重複処理、アクティビティ数を検証します。イベント時刻が一貫したタイムゾーンで記録され、別々の業務アクティビティを表す同一時刻の複数イベントが別行として保持されていることを確認してください。
- 結果をUTF-8のCSV、またはProcessMindが対応する別の表形式でエクスポートします。ClaimIDをケース識別子、ActivityNameをアクティビティ、EventTimeをイベント時刻としてマッピングします。推奨属性は追加のイベント属性として保持し、今回の抽出範囲外の推測アクティビティを追加せずにファイルをProcessMindへアップロードしてください。
設定
- 接続と認証:承認済みのSnowflakeアカウント、ロール、ウェアハウス、ネットワーク経路を使い、Guidewireが提供する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を文書化した1つのタイムゾーンに統一します。イベントログを読み込む前に、CDAのタイムスタンプがUTC、現地時刻、またはSnowflakeのどのタイムスタンプ形式で保存されているかを確認してください。
- 前提条件:必要なClaimCenterの財務、アクティビティ、割り当て、エクスポージャー、支払い、ステータス履歴のデータが共有に含まれ、必要な履歴遷移が保持ポリシーによって保存されていることを確認します。
a サンプルクエリ 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個のアクティビティ名のいずれか1つ、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が他の行からこれらのイベントを導出することはありません。
- パフォーマンス:抽出期間を限定し、必要な列だけを選択し、結合前にソーステーブルを絞り込みます。保険金請求識別子、エクスポージャー識別子、イベント時刻、ステータス項目、取引識別子にインデックスがあることを確認してください。利用できる場合は、レポート用レプリカで大規模な抽出を実行します。
- 一貫性:レポートに適したトランザクション分離レベルを使用し、一貫した抽出境界を取得します。財務バッチやステータスの一括更新がコミット途中の状態でテーブルを読み取らないでください。
- タイムゾーン:データベースのタイムゾーンを文書化し、エクスポート前にすべてのソースタイムスタンプを合意した1つのタイムゾーンへ変換します。アプリケーションの現地時刻とデータベースサーバー時刻を混在させないでください。
- 前提条件:必要なClaimCenterモジュール、財務権限、監査または履歴の保持、データベース接続が利用できることを確認します。履歴または監査の保持が無効になっている場合、対応する推測アクティビティを正確に再構成できません。
- 検証設定:エクスポートごとに、ClaimCenterのバージョン、データベースプラットフォーム、スキーママッピング、抽出時刻、日付パラメーター、フィルター、行数を記録します。
a サンプルクエリ 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%のSTPを目指します。
クレジットカードは不要で、数分で設定できます。