web statistics
top of page

Car insurance fraud use case with FraudAway

Updated: Jan 11

Car insurance use case with FraudAway


Car insurance fraud is a pervasive and costly problem within the insurance industry, presenting a multifaceted challenge for insurers and law enforcement. This type of fraud occurs when individuals intentionally deceive insurance companies to gain financial benefits through false claims or manipulative practices related to auto insurance policies. The motivations behind car insurance fraud can range from financial distress and the desire for a quick payout to more elaborate schemes orchestrated by organized crime groups.

Common tactics include staged accidents, falsification of injuries or damages, and misrepresentation of facts during policy applications. Car insurance fraud not only results in substantial financial losses for insurance companies but also contributes to the overall increase in insurance premiums, affecting law-abiding policyholders.

To combat this issue, insurers employ a variety of strategies, including advanced data analytics, artificial intelligence, and rule-based systems to detect suspicious patterns and behavior.

Fraud rules example

In this example, we will implement three common rules for car insurance fraud detection. Depending on the complexity of the insurance fraud prevention system, you might consider adding additional rules or ML models, but for the start, let's see which rules we are going to implement in FraudAway:

  1. Rule1: Multiple Claims within a Short Timeframe: If a policyholder has filed more than two claims within a six-month timeframe, flag the claim as potentially fraudulent. This rule assumes that a high frequency of claims within a short period may indicate suspicious behavior.

  2. Rule2: High Claim Amount relative to Coverage If the claimed amount is unusually high relative to the coverage amount, flag the claim as potentially fraudulent.

  3. Rule3: Claim Filed Immediately after Policy Purchase: If a claim is filed very soon after the policy is purchased, flag the claim as potentially fraudulent.

As illustrated above, these are all very "common sense" rules and before getting to more complex use cases, let's see how we will implement these three in FraudAway:

Car fraud template, based on three rules that are chained

In this example, each of the rules is implemented as the lambda function. For instance, the first rather simple rule (we are looking at not more than 2 claims for the past 180 days, but of course these values can be changed from the template) is implemented as follows:

import moment from 'moment';

export const handler = async (event, context, send) => {
    const previousClaims = event.PreviousClaims || [] ;
    const currentClaimDate = moment(event.ClaimDate, 'YYYY-MM-DD');
    const daysThreshold = event.daysThreshold || 180
    const claimsThreshold = event.claimsThreshold || 2
    const recentClaims = previousClaims.filter(
       (claim) => currentClaimDate.diff(moment(claim.ClaimDate, 'YYYY-MM-DD'), 'days') <= daysThreshold
    try {
      const observedState = recentClaims.length > claimsThreshold ? 'True' : 'False';
      send(null, { observedState })
    } catch (error) {
      send(new Error(error))

More about how to embed the lambda function in FraudAway you can find on this link

Data set

In order to test this use case, we will assume that input data set includes the following fields:

Claim Status: Indicate the status of the claim (e.g., pending, approved, denied).

Investigation Notes: Include a field for notes or comments related to the investigation of the claim.

Witness Information: If applicable, capture information about any witnesses to the incident.

Adjuster Assigned: Identify the claims adjuster or investigator assigned to the case.

Previous Claims: Track information about any previous claims filed by the policyholder.

Police Report: Note whether a police report was filed for incidents like accidents or theft.

Medical Records: Include details about medical records related to health insurance claims.

Vehicle Information: For auto insurance, capture details about the vehicles involved, including make, model, and year.

Weather Conditions: If relevant, record the weather conditions at the time of the incident.

Witness Statements: If statements were collected from witnesses, note them in the dataset.

Policy Expiry Date: Include the date when the insurance policy is set to expire.

Renewal Status: Indicate whether the policy has been renewed.

Payment Method: Specify the method used for premium payments (e.g., credit card, bank transfer).

Insured Property Details: For home insurance, provide details about the insured property, such as the type of dwelling and its features.

Additional Coverage Types: If the policy covers multiple types of insurance, list them separately.

  "PolicyID": 1,
  "PolicyHolder": "John Doe",
  "PolicyType": "Auto Insurance",
  "PolicyPurchaseDate": "2022-12-31",
  "CoverageAmount": "$50,000",
  "Premium": "$500",
  "ClaimAmount": "$0",
  "IsFraudulent": 0,
  "ClaimDate": "2023-01-15",
  "Location": "City A",
  "ClaimDescription": "Minor car accident",
  "ClaimStatus": "Approved",
  "InvestigationNotes": "Claim processed without issues.",
  "AdjusterAssigned": "Jane Investigator",
  "PreviousClaims": {"PreviousClaims": [
      "ClaimID": 101,
      "ClaimDate": "2022-06-10",
      "ClaimAmount": "$300",
      "Status": "Approved"
      "ClaimID": 102,
      "ClaimDate": "2021-04-02",
      "ClaimAmount": "$450",
      "Status": "Denied"
  "WitnessInformation": "None",
  "PoliceReportFiled": false,
  "MedicalRecords": "None",
  "VehicleInformation": {
    "Make": "Toyota",
    "Model": "Camry",
    "Year": 2019
  "WeatherConditions": "Clear",
  "PolicyExpiryDate": "2023-12-31",
  "RenewalStatus": "Renewed",
  "PaymentMethod": "Credit Card",
  "InsuredPropertyDetails": "Not applicable",
  "AdditionalCoverageTypes": ["Rental Car Coverage", "Roadside Assistance"]

Building reports

To generate reports, we leverage the Postgres database in conjunction with QuickSights for reporting. The results of rules execution, represented in the graph model by the last node, are sent to the Kinesis stream. Subsequently, these results are persisted in the database. Further details on this process can be found in the following blog post.

Here is our schema where we will store both inputs and the result of the processing:

CREATE TABLE InsuranceClaims (
                                 PolicyID SERIAL PRIMARY KEY,
                                 PolicyHolder VARCHAR(255),
                                 PolicyType VARCHAR(255),
                                 PolicyPurchaseDate DATE,
                                 CoverageAmount VARCHAR(20),
                                 Premium VARCHAR(20),
                                 ClaimAmount VARCHAR(20),
                                 IsFraudulent INT,
                                 ClaimDate DATE,
                                 Location VARCHAR(255),
                                 ClaimDescription TEXT,
                                 ClaimStatus VARCHAR(255),
                                 InvestigationNotes TEXT,
                                 AdjusterAssigned VARCHAR(255),
                                 WitnessInformation TEXT,
                                 PoliceReportFiled BOOLEAN,
                                 MedicalRecords TEXT,
                                 WeatherConditions VARCHAR(255),
                                 PolicyExpiryDate DATE,
                                 RenewalStatus VARCHAR(255),
                                 PaymentMethod VARCHAR(255),
                                 InsuredPropertyDetails TEXT,
                                 RiskRule VARCHAR(255),
                                 Risk BOOLEAN

QuickSight report for car insurance claims


In conclusion, the problem of car insurance fraud remains a significant challenge, impacting both insurers and policyholders. The prevalence of deceptive practices, such as staged accidents and falsified claims, underscores the need for vigilant and innovative approaches to fraud detection. As the insurance industry continues to leverage advanced technologies and collaborative efforts, it is crucial to remain adaptable and proactive in staying ahead of evolving fraudulent tactics. By addressing this issue comprehensively - with solution like FraudAway, insurers can enhance their ability to protect honest policyholders, minimize financial losses, and maintain the trust and integrity of the insurance ecosystem.

If you'd like to learn more, feel free to reach out to us to schedule a demo.

89 views0 comments


Obtuvo 0 de 5 estrellas.
Aún no hay calificaciones

Agrega una calificación
bottom of page