All work

Anomaly Detection · Civic Tech

Vigilant-AI

Explainable fraud detection for public distribution

Scores every ration-shop transaction for risk, then shows exactly which rules drove the score.

Why

India's public distribution system moves far too many transactions to inspect by hand — but a black-box fraud score is worse than none. An investigator who can't see why a row was flagged can't act on it, or defend the decision later.

How it works

  1. Six independent detectors

    Price inflation, hoarding, transaction velocity, off-hours activity and card misuse, each weighted separately.

  2. One score, still decomposable

    Detectors contribute points in proportion to how far past their threshold a transaction sits.

  3. Escalate, don't accuse

    Transactions past the threshold enter an investigation queue carrying their reasons with them.

  4. Follow it to the counter

    A map of Delhi NCT and a per-shop inspector trace a flag back to the rows that caused it.

What it looks like

Six rules, each with its own weight.
The network at a glance.
Counters across Delhi NCT, coloured by risk.

Built with

  • Python
  • Pandas
  • NumPy
  • Streamlit
  • Plotly
  • PyDeck

Try it

Run it yourself

Local only

Not deployed. No external services and it generates its own dataset, so it runs from a clone in two commands.

From a clone of the repository
pip install -r requirements.txt
streamlit run app.py

Scope

A decision-support tool, not an accusation engine. A high score means a transaction is worth investigating, not that fraud occurred. All figures come from a synthetic dataset — no real transaction data was used.

Next