← Work

Backend · team of 2

Can a claim be flagged before it reaches a person, without automating the rejection?

InsureTrust — Insurance Claim Fraud Detection

Two independent signals on every claim: a gradient-boosted model scores behaviour and metadata, while image forensics checks the submitted documents for manipulation.

Role
Backend developer, two-person team
Award
1st Prize, FinTech domain — MIT ADT AI Grand Challenge
Built with
Python · XGBoost · Computer Vision · Image Forensics · Django
InsureTrust, cover image

A claims screening pipeline combining two independent signals. A gradient-boosted model scores each claim on behavioural and metadata features, while a separate image forensics stage inspects submitted document photographs for signs of digital manipulation. The two scores combine into one verdict that routes a claim to review rather than approving or rejecting it outright. Built as backend developer on a two-person team.

Problem

Fraudulent insurance claims are rarely obviously fake. The documents look right and the numbers are plausible, but the submitted images often carry traces of editing, and the claim metadata often carries patterns that a human adjuster reviewing one case in isolation cannot see. The brief for the FinTech domain of the national MIT ADT AI Grand Challenge was to surface both kinds of evidence before a claim reaches a person.

Approach

The two signals are deliberately kept independent, because they fail differently. The XGBoost model reasons over tabular claim features and is good at spotting claims that are statistically unusual, but it has no view of the documents themselves. The image forensics stage inspects photographs for tampering artefacts and metadata inconsistencies, and can catch a doctored document attached to an otherwise ordinary-looking claim. Combining them means a claim has to look clean on both axes to pass. Output is a risk verdict that flags a claim for human review, which keeps the adjuster in the decision rather than automating a rejection. The system took 1st Prize in the FinTech domain.

How the model splits claims

Round 10 of 10 · 118 of 420 sent for review

Illustrative: 420 made-up claims, not InsureTrust's data. Amount runs across on a log scale and hours since the policy started run up the side; filled dots are fraud. 10 rounds of gradient boosting with depth-one trees, the kind of model behind InsureTrust's XGBoost score, each cut along one axis. Orange regions score above 0.5, and ringed claims go to a person: 98 of 140 frauds, and 20 honest claims with them.

Screens

Launch film · 21 seconds, with sound.
The InsureTrust claim submission screen, with drop zones for an insurance document, a car damage photo and a supporting document
Intake. A claim arrives as a document, a damage photograph and any supporting file — the two evidence streams the pipeline scores separately.
The manual entry form: claimant name, policy ID, claim amount, claim date, hospital name, incident coordinates and a description field
Manual entry for claims that arrive without a parseable document, carrying the same metadata fields the model reads.
The adjuster dashboard, showing claim routing distribution as a donut chart, the most frequently triggered RFI rules, and a table of recent claims
The adjuster's view: how claims were routed, which RFI rules fired most often, and the queue itself.
A single claim opened up, showing a risk score gauge, a SHAP analysis of feature contributions, the RFI violations it triggered, and a fraud ring network panel
One claim, explained. The SHAP panel shows which features pushed the score toward fraud rather than reporting a verdict alone.

Watch the walkthrough on YouTube Walkthrough of the claim screening pipeline.