Fraud Risk and Operational Insights from 100,000+ Digital Payment Transactions
A comprehensive end-to-end data analytics project spanning Excel, SQL, Python, statistical testing, and Power BI β uncovering actionable fraud signals and platform health insights across the Indian UPI ecosystem.
Understanding the business context, challenges, and purpose of this analysis
Unified Payments Interface (UPI) is India's real-time payment system enabling instant bank-to-bank transfers. The platform processes hundreds of millions of transactions monthly, making fraud detection and operational reliability critical to financial stability and user trust.
This dataset captured 2,000 fraud transactions (2.00% rate) across 100,000 transactions β above industry benchmarks of <0.5%. The critical finding: transactions from rooted devices carry a 20.69% fraud rate, compared to just 1.39% on secure devices.
A 5.87% transaction failure rate was identified, split evenly between customer errors (incorrect PIN, blocked accounts: ~50.5%) and technical failures (network errors, bank downtime: ~49.5%). Both streams require targeted intervention to protect platform reliability.
The analysis covers 10,000 customers and 500 merchants across 5 Indian regions. Electronics and apparel merchants show slightly higher fraud rates (2.24% and 2.22% respectively), while the reversal success rate of 0.00% across 1,451 attempts was flagged as a critical operational issue.
This project delivers a 5-stage analytical pipeline β Excel validation β SQL analysis β Python EDA β Statistical testing β Power BI dashboards β converting raw transactional data into actionable risk controls and operational recommendations for platform stakeholders.
Statistical hypothesis testing (chi-square, ANOVA, t-tests, correlation) confirmed that rooted device status is the only statistically significant fraud predictor in this dataset (ΟΒ² = 5,825.1, p < 0.001), enabling precise, evidence-based policy interventions.
All KPIs calculated directly from the 100,000-transaction dataset. Use filters to explore segments.
Interactive charts showing transaction distribution, volume trends, and regional performance
Transaction volume grew steadily from ~12,000 in January 2025 to ~14,000 by mid-2025. August 2025 shows partial data. Growth reflects increasing platform adoption.
Total transaction value closely tracks volume, confirming a consistent average transaction amount of βΉ42.37 across the analysis period.
Success 92.14%, Failed 5.87%, Pending 1.99%
App (33,365), Intent (33,356), QR Code (33,279) β near-equal distribution
Feature phones lead slightly; Android, iOS, and tablets are nearly equal
North leads with 20,787 transactions; Central has the lowest share (19,677). Regional distribution is largely uniform, suggesting consistent nationwide adoption.
Average amounts are strikingly uniform across all regions (βΉ42.21ββΉ42.53), confirming UPI is used for small, daily micro-transactions regardless of geography.
Detailed breakdown of fraud patterns, alert resolution, and high-risk entities
Headline finding: Rooted devices have a 20.69% fraud rate β nearly 15Γ higher than non-rooted devices (1.39%). This is the single strongest statistically significant fraud signal.
Alert types are broadly distributed. Unusual transaction amount and frequent failure patterns are the leading triggers, requiring dynamic fraud rule adjustment.
Fraud rates are consistent across all regions (1.94%β2.09%), suggesting fraud actors target users uniformly without strong geographic concentration.
Electronics (2.24%) and Apparel (2.22%) show the highest fraud rates, though differences across merchant types are not statistically significant (ANOVA p=0.628).
87.6% of fraud alerts have been resolved. The 248 unresolved alerts (12.4%) represent an active operational risk requiring urgent attention.
Failures split almost evenly: Customer errors (Incorrect PIN 26.2%, Account Blocked 24.3%) vs. Technical failures (Network Error 25.8%, Bank Down 23.7%).
Merchants ranked by fraud rate with a minimum volume filter of 40 transactions applied to avoid misleading rankings from low-volume outliers.
| Merchant | Category | Total Txns | Fraud Txns | Fraud Rate |
|---|
Source: Python EDA β merchant_fraud_ratio (min 40 txns filter). Platform average fraud rate: 2.00%.
The single most significant finding: device root status is the strongest statistically confirmed fraud predictor in this dataset
1,344 fraud / 96,829 txns
656 fraud / 3,171 txns
Higher fraud risk on rooted devices
Rooted devices allow system-level overrides that bypass standard security controls, making them significantly associated with fraudulent activity. The chi-square test confirms this relationship is not due to chance (p < 0.001) β it is a real, stable signal across the 100,000-transaction dataset.
Business impact: Blocking high-risk transaction types on rooted devices could directly address the disproportionate fraud concentration. Of the 2,000 fraud transactions, 32.8% (656) originated from rooted devices β which represent only 3.17% of all transaction sources.
Note: This analysis identifies statistical association, not definitive causation. Observational data; controlled experiments are needed to confirm causal effects.
A five-stage analytical pipeline where each stage validates and extends the previous one
Data validation across 7 source tables. Column profiling, data type checks, blank/null analysis, and date-range verification on the cleaned UPI dataset.
Database design, table creation, constraint definition, multi-table joins, views, CTEs, window functions, and 50+ business intelligence queries in MySQL.
Data cleaning, relational merges with Pandas (100K Γ 27 feature space), feature engineering, and exploratory data analysis with Matplotlib and Seaborn.
Hypothesis testing with SciPy: Welch's t-test, one-way ANOVA, chi-square tests (with CramΓ©r's V), Pearson and Spearman correlation, and CLT-based inference.
Executive KPI dashboard, fraud analyst dashboard, and detailed operational dashboard with interactive filters, slicers, and cross-report drill-through.
Hypothesis testing conducted in Python using SciPy. Exact test statistics and p-values from the verified analysis.
Hβ: Mean transaction amounts are equal across Android and iOS users.
Fail to reject Hβ. Android (mean βΉ42.38) and iOS (mean βΉ42.54) users spend similarly β no OS-specific transaction size strategy is warranted based on this data.
Hβ: Fraud rates are equal across all merchant categories.
Fail to reject Hβ. Fraud rates across Apparel (2.22%), Electronics (2.24%), Food (1.97%), Grocery (1.80%), Online (2.05%), and Transport (1.97%) are not significantly different. A single fraud detection strategy is likely sufficient across merchant types.
Hβ: Mean transaction amounts are equal across all regions.
Fail to reject Hβ. Average transaction amounts (βΉ42.21ββΉ42.53) are uniform across North, South, East, West, and Central regions. No region-specific pricing strategies are indicated.
Hβ: Fraud occurrence is independent of payment channel.
Fail to reject Hβ. App (2.02%), Intent (1.89%), and QR Code (2.10%) channels show similar fraud rates with no statistically significant difference.
Hβ: Transaction status is independent of device type.
Fail to reject Hβ. Success/failure rates are consistent across Android, iOS, Feature Phone, and Tablet. No device-specific routing or failure intervention is needed.
Hβ: Fraud occurrence is independent of device rooting status.
Reject Hβ. Rooted device status and fraud flag are NOT independent β the association is highly significant and not due to chance. This is the cornerstone finding of the project. Rooted devices (3.17% of transactions) account for 32.8% of all fraud.
Hβ: Customer risk_score has no linear relationship with transaction fraud rate.
Fail to reject Hβ. The existing customer risk_score is negligibly correlated with actual fraud behaviour (r β 0.002). The risk scoring model should be rebuilt to incorporate device root status, transaction velocity, and merchant type as features.
Summary: Of 7 statistical tests conducted, only one yielded a significant result β the Chi-Square test for rooted device status vs. fraud flag (ΟΒ² = 5,825.1, p < 0.001). All other tested dimensions (region, merchant type, channel, device OS, transaction amount) showed no statistically significant association with fraud or failure rates. This finding simplifies the fraud risk framework: device root detection is the single most impactful lever available.
50+ business intelligence queries spanning database design, fraud analysis, merchant performance, and advanced window functions
Business objective: Quantify platform scale and measure operational health.
-- Query 1: Total Transaction Volume & Value SELECT COUNT(transaction_id) AS total_transactions, ROUND(SUM(amount), 2) AS total_value_inr FROM upi_transaction_history; -- Query 2: Success Rate SELECT COUNT(CASE WHEN status = 'success' THEN 1 END) AS successful, ROUND( COUNT(CASE WHEN status = 'success' THEN 1 END) * 100.0 / COUNT(transaction_id), 2 ) AS success_rate_pct FROM upi_transaction_history;
β Result: 1,00,000 transactions | Total value β βΉ42.37L | Success rate 92.14%
Business objective: Quantify the portion of transaction volume flagged as fraudulent.
SELECT COUNT(CASE WHEN fraud_flag = 1 THEN 1 END) AS fraud_txns, ROUND( COUNT(CASE WHEN fraud_flag = 1 THEN 1 END) * 100.0 / COUNT(transaction_id), 2 ) AS fraud_rate_pct FROM upi_transaction_history;
β Result: 2,000 fraud transactions | Fraud rate 2.00% β above the typical industry benchmark of <0.5%
Business objective: Determine whether rooted devices present significantly higher fraud risk.
SELECT d.is_rooted, COUNT(t.transaction_id) AS total_txns, COUNT(CASE WHEN t.fraud_flag = 1 THEN 1 END) AS fraud_txns, ROUND( COUNT(CASE WHEN t.fraud_flag = 1 THEN 1 END) * 100.0 / COUNT(t.transaction_id), 4 ) AS fraud_rate_pct FROM upi_transaction_history t JOIN device_info d ON t.device_id = d.device_id GROUP BY d.is_rooted;
π¨ Major finding: Rooted devices β 20.69% fraud rate. Non-rooted β 1.39%. Rooted devices are ~15Γ higher risk. Confirmed statistically via chi-square (ΟΒ² = 5,825.10, p < 0.001).
Business objective: Measure risk operations capacity by tracking unresolved fraud alerts.
SELECT COUNT(alert_id) AS total_alerts, COUNT(CASE WHEN resolved = 1 THEN 1 END) AS resolved_alerts, COUNT(CASE WHEN resolved = 0 THEN 1 END) AS open_alerts, ROUND( COUNT(CASE WHEN resolved = 1 THEN 1 END) * 100.0 / COUNT(alert_id), 2 ) AS resolution_rate_pct FROM fraud_alert_history;
β Result: 2,000 total alerts | 1,752 resolved (87.60%) | 248 still open (12.40%) β backlog requires staffing allocation
Business objective: Measure month-on-month processing volume growth using window functions.
WITH monthly_ttv AS ( SELECT DATE_FORMAT(timestamp, '%Y-%m') AS ym, ROUND(SUM(amount), 2) AS ttv FROM upi_transaction_history WHERE status = 'success' GROUP BY DATE_FORMAT(timestamp, '%Y-%m') ) SELECT ym, ttv AS current_month_ttv, LAG(ttv) OVER(ORDER BY ym) AS prev_month_ttv, ROUND( (ttv - LAG(ttv) OVER(ORDER BY ym)) / NULLIF(LAG(ttv) OVER(ORDER BY ym), 0) * 100, 2 ) AS mom_growth_pct FROM monthly_ttv ORDER BY ym;
β CTE + LAG window function demonstrates platform growth trajectory. Consistent positive MoM growth across the analysis period confirms healthy adoption.
Business objective: Identify top-spending customers within each region for targeted marketing.
WITH ranked_cust AS ( SELECT c.region, c.customer_id, c.full_name, ROUND(SUM(t.amount), 2) AS total_spend, DENSE_RANK() OVER ( PARTITION BY c.region ORDER BY SUM(t.amount) DESC ) AS spend_rank FROM upi_transaction_history t JOIN customer_master c ON t.customer_id = c.customer_id WHERE t.status = 'success' GROUP BY c.region, c.customer_id, c.full_name ) SELECT * FROM ranked_cust WHERE spend_rank <= 3;
β Identifies top 3 spenders per region using DENSE_RANK partitioning. Top customers transacted 40+ times and spent over βΉ2,000 each β prime targets for loyalty programmes.
Business objective: Create a reusable daily executive KPI view for dashboards.
CREATE OR REPLACE VIEW view_daily_executive_metrics AS SELECT DATE(timestamp) AS txn_date, COUNT(*) AS total_attempts, SUM(CASE WHEN status='success' THEN 1 ELSE 0 END) AS success_count, ROUND( SUM(CASE WHEN status='success' THEN 1 ELSE 0 END) * 100.0 / NULLIF(COUNT(*), 0), 2 ) AS success_rate_pct, ROUND(SUM(CASE WHEN status='success' THEN amount ELSE 0 END), 2) AS successful_ttv, SUM(CASE WHEN fraud_flag=1 THEN 1 ELSE 0 END) AS fraud_alerts FROM upi_transaction_history GROUP BY DATE(timestamp);
β Virtual view pre-aggregates daily KPIs for reporting. Simplifies dashboard queries and enables real-time monitoring when connected to a live data feed.
Business objective: Segment customers into loyalty tiers based on total transaction spend.
WITH customer_spend AS ( SELECT customer_id, SUM(amount) AS total_spend FROM upi_transaction_history WHERE status = 'success' GROUP BY customer_id ) SELECT CASE WHEN total_spend < 100 THEN 'Bronze (Low < βΉ100)' WHEN total_spend <= 1000 THEN 'Silver (Medium βΉ100β1000)' ELSE 'Gold (High > βΉ1000)' END AS loyalty_tier, COUNT(customer_id) AS customer_count, ROUND(COUNT(*)*100.0 / (SELECT COUNT(*) FROM customer_master), 2) AS pct_of_customers FROM customer_spend GROUP BY loyalty_tier;
β Result: 88.29% of customers are Silver tier (βΉ100ββΉ1,000 total spend); only 10.21% are Gold spenders. Significant opportunity to drive engagement and loyalty upgrades.
Evidence-based findings derived from the 100,000-transaction dataset
Transactions from rooted devices carry a 20.69% fraud rate vs. 1.39% on secure devices β a 14.9Γ higher risk. Despite representing only 3.17% of all transactions, rooted devices account for 32.8% (656) of all fraud transactions. Confirmed highly significant (ΟΒ² = 5,825.1, p < 0.001).
Transaction failure rates by region range from 5.70% (Central) to 6.01% (North) β no single region or channel dominates failures. Technical failures (network error, bank down: ~49.5%) and customer errors (incorrect PIN, blocked: ~50.5%) contribute equally, requiring parallel technical and UX fixes.
Certain merchants show fraud rates well above the 2.00% platform average β top offenders in the qualified sample (min. 40 txns) reach up to 10.64% fraud rate. Electronics (2.24%) and Apparel (2.22%) merchant types show the highest category-level rates, warranting enhanced monitoring.
While the overall fraud resolution rate is strong at 87.60%, 248 alerts remain unresolved. The average resolution time of approximately 35 hours (1.46 days) exceeds recommended SLAs for critical fraud alerts. The 0.00% reversal success rate across 1,451 attempts was also identified as a critical operational issue.
Monthly transaction count grew from approximately 12,000 in January 2025 to 14,000+ by mid-2025, reflecting ~17% growth over the analysis period. Monthly TTV grew proportionally with a stable average transaction value of βΉ42.37, confirming consistent user behaviour.
Android (25,145), Feature Phones (25,596), iOS (24,783), and Tablets (24,476) have near-equal transaction shares. However, Android dominates across all payment channels per the EDA heatmap. Feature phones show the highest device-type fraud rate at 2.15%, possibly due to limited biometric authentication options.
Priority-labelled actions derived from the analytical findings
Honest assessment of analytical boundaries and opportunities for extended work
All source files and documentation supporting this analysis
UPI_Data_Cleaned.xlsx β 7 worksheets covering all transaction, customer, device, merchant, account, fraud alert, and feedback tables. 100,000 transactions across 15 columns.
advance_sql_queries.sql β 50+ business intelligence queries in MySQL covering KPIs, joins, aggregations, CTEs, window functions, views, and fraud analysis.
UPI_Analysis.ipynb β Complete exploratory data analysis with Pandas, Matplotlib, and Seaborn. Statistical testing with SciPy including 7 hypothesis tests. 100K Γ 27 feature analysis.
Three-panel executive dashboard: Operations overview, Fraud analyst view, and detailed transaction drill-through. Built on the same 7-table data model with interactive slicers.
UPI_Analysis_Presentation.pptx β Business story, methodology overview, headline findings, statistical summary, and strategic recommendations for non-technical stakeholders.
Project_5_Capstone_Problem_Statement.pdf β Original business context, analytical objectives, expected deliverables, data dictionary, and success criteria for this capstone project.
Project source files and supporting documentation are available in the GitHub repository.
Akshat Raghav is a Data Analyst with hands-on experience in Excel, SQL, Python, statistics, and Power BI. He focuses on converting raw data into clear business insights, interactive dashboards, and actionable recommendations. This UPI Transaction Analysis project demonstrates a full end-to-end analytical capability β from data validation and relational modelling to statistical hypothesis testing and strategic advisory.