LIVE MONITORING

Fraud Detection & Transaction Monitoring

SQL-based risk scoring · 6,000 transactions · FY 2024
Dataset: transactions.csv
Engine: DuckDB / PostgreSQL
Updated: Jan–Dec 2024
Total Fraud Cases
556
9.3% of all transactions
High Risk Txns
51
Score ≥ 60 · Immediate review
Fraud Amount
₹12.3M
Total flagged value
Safe Transactions
4,973
Low risk · Score < 30
Monthly Fraud Trend
Fraud cases detected per month (Jan–Dec 2024)
Risk Score Distribution
Transactions by risk category
Fraud by Category
Which merchant categories trigger most fraud flags
Fraud Rule Triggers
Which rules fire most often
Core Detection Queries
Rule 1 · High Amount Flag
SELECT transaction_id, amount,
  CASE
    WHEN amount > 10000 THEN 'HIGH_AMOUNT'
    ELSE 'NORMAL'
  END AS amount_flag
FROM transactions;
Rule 2 · Location Mismatch
SELECT transaction_id,
  home_location, transaction_location,
  CASE
    WHEN home_location != transaction_location
    THEN 1 ELSE 0
  END AS location_mismatch
FROM transactions;
Rule 3 · Risk Scoring (CTE)
WITH base AS (
  SELECT *,
    CASE WHEN amount > 10000       THEN 40 ELSE 0 END s1,
    CASE WHEN home_loc != txn_loc  THEN 30 ELSE 0 END s2,
    CASE WHEN is_international=1   THEN 20 ELSE 0 END s3
  FROM transactions
)
SELECT transaction_id,
  s1+s2+s3 AS risk_score
FROM base;
Rule 4 · Final Output Table
SELECT transaction_id,
  risk_score,
  CASE
    WHEN risk_score >= 60 THEN 'HIGH'
    WHEN risk_score >= 30 THEN 'MEDIUM'
    ELSE 'LOW'
  END AS risk_category,
  fraud_flag
FROM scored
ORDER BY risk_score DESC;