PRAKHARAI SYSTEMS THAT DEFEND PEOPLE
PS©2026
← Back

01 · Cross-merchant fraud defense · 2026

Sentinel

Fraud rings in Indian digital payments do not invent new identities. They recycle them. The same device, VPA, and phone hits merchant after merchant, and every merchant individually sees a clean first-time customer. The fraud only exists between merchants.

Sentinel builds the identity link graph across the whole population, scores every payment event against it deterministically, and hands the analyst an evidence bundle instead of a bare score.

0.857
F1, held-out set
2.3 ms
p50 scoring latency
+₹38,665
net saving per 1,000 events
91%
test coverage, 160 tests
IDENTITY LINK GRAPH · THREE RECYCLED RINGS · AMBER = CONFIRMED BAD HUBTAINT DECAY 0.6 PER HOP · MOVE POINTER TO DISPERSE

The system

Payment events normalize into entities: E.164 phones, VPAs, device fingerprints, emails. The identity link graph connects them across merchants, derives fan-out counts, and propagates taint at 0.6 per hop from confirmed bad actors.

Seven published features feed a weighted ensemble scorer. Verdicts land in three bands: ALLOW, REVIEW, BLOCK_REC. Every verdict carries reason codes and its full evidence path through the graph.

An LLM writes the analyst narrative, never the score. Scoring stays deterministic and seed-reproducible. Every failure degrades explicitly: store down means spool-and-503, LLM down means SKIPPED. Nothing silently auto-blocks.

Measured, honestly

On the held-out test set: precision 0.833, recall 0.882, F1 0.857. Both planted rings caught, including the low-and-slow one. Zero fraud silently allowed; the two remaining sit in the review queue.

A GBDT baseline beats the rule ensemble on F1, 0.909 against 0.857, and that result ships in the open rather than buried. The deterministic scorer keeps the explainability contract a money-adjacent system needs, and the baseline is the measured argument for the v2 hybrid.

The adversarial evasion pack found a real blind spot: rings moving once a week slip under current weights. It is documented with the v2 fix, time-windowed fan-out, instead of quietly retuning on evaluation data. Every metric regenerates byte-identical from make calibrate && make evaluate on seed 42.

Engineering posture

Strict mypy, ruff, 160 tests at 91% coverage gated in CI. Two-key model throughout, admin actions audit-logged. Bounded LLM spend: under $0.10 across the entire build. No real PII anywhere, synthetic by construction.

Next caseGatehouse