Skip to content
OnlyProjects
B.Tech / B.E. · Data ScienceFor educational purposes only
Code included

A Decade of UPI: Transaction Growth Analytics with SQL and Python

From NPCI's monthly tables to growth curves, seasonality and a trend forecast — one clean dataset, done properly

Mapped to your syllabusAnna University Regulation 2021 · CS3811 Project Work / Internship · Semester 8

Overview

1 min read

A Decade of UPI is a compact, beginner-level analytics study built on one clean, real, verifiable Indian dataset: the Unified Payments Interface product statistics published every month by the National Payments Corporation of India (NPCI) — monthly transaction volume (in millions) and value (in ₹ crore) since launch.

UPI is the payments story of the decade: from about a lakh transactions a month at launch to billions now, it has overtaken every other retail instrument in India. The raw numbers are public and trustworthy, but the analysis — how fast did it grow, when, and what patterns repeat every year? — is what this project answers.

The workflow is deliberately small enough for a first project yet honest enough to defend in a viva: the monthly tables are saved as CSVs, cleaned with pandas (headers, placeholders, unit columns), loaded into MySQL, and then interrogated two ways. SQL computes the structural metrics — year-over-year and month-over-month growth, compound annual growth rate, records by value and volume, average ticket size. Python (pandas, Matplotlib) does exploratory data analysis: growth curves on a log scale, festival-month seasonality, the volume–value divergence as small-ticket payments exploded. A simple linear-regression trend forecast with a held-out test set closes the study. Every chart in the report traces to a query or notebook cell, and every number can be re-derived from the public source in minutes — that reproducibility is the point of the project. Three members split the work: data and database, SQL metrics, and visualisation with forecast.

Relevant for
Tamil Nadu
Level
Beginner · 12 weeks · team of 3
Common at
Anna University, Chennai, Jawaharlal Nehru Technological University Hyderabad, Dr. A.P.J. Abdul Kalam Technical University
Updated
Oct 2026

Syllabus alignment

Anna University · Regulation 2021

CS3811 · Project Work / Internship · Semester 8 · 10 credits

Subjects this project applies
  • CS3481 DBMS Laboratory (SQL / PL-SQL)
  • CS3361 Data Science Laboratory (NumPy, pandas, Matplotlib)
  • CS3491 Artificial Intelligence and Machine Learning (introductory regression)
How it is evaluated

Team: individually or as a group (number set by college, typically 3–4)

report in university-prescribed format + viva-voce by panel including external examiner

Also fits: JNTUH R22, AKTU NEP scheme (3rd yr 2024-25, 4th yr 2025-26).

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

UPI's growth is quoted everywhere but analysed almost nowhere: claims float around social media and news tickers with cherry-picked start and end points, mixed units, and no way to verify them. Students and researchers who want to understand the real growth pattern — how fast volumes actually doubled, which months consistently spike, how average ticket size fell as street-vendor payments grew — have no clean, reproducible starting point.

There is a need for a small, rigorous analytics study that takes one authoritative public dataset (NPCI's monthly UPI statistics), stores it in a proper database rather than loose spreadsheets, derives trustworthy growth and seasonality metrics with SQL, visualises them honestly with Python, and reports a trend forecast whose accuracy is measured — so that any claim made in the report can be reproduced from the source data in minutes.

Synopsis

Abstract

This project studies the growth of UPI, India's instant retail payment system, using a single authoritative dataset: NPCI's monthly UPI product statistics. The monthly volume and value series are cleaned, loaded into MySQL, and analysed with SQL queries and Python-based exploratory data analysis. The study quantifies growth (CAGR, YoY, doubling time), identifies seasonal patterns around festivals and financial-year end, examines the divergence between transaction volume and value as small-ticket payments grew, and produces a simple, honestly evaluated trend forecast. The output is a reproducible analytics report: database, notebooks, charts and a findings document that anyone can re-run from the public source.

Introduction

When UPI launched in 2016, cash and cards dominated Indian retail payments. Within a few years, UPI monthly volumes crossed every other instrument, driven by QR codes at street vendors, zero-cost P2P transfers and smartphone growth. NPCI publishes the monthly totals — volume in millions, value in ₹ crore — on its product statistics page. That series is a gift for a first data-analytics project: it is real, national in scale, small enough to understand completely, and rich enough to demonstrate every core skill from the Anna University R2021 labs — SQL querying (CS3481) and pandas-based EDA with Matplotlib (CS3361).

Existing System

  • News articles quote one or two headline numbers each month; the underlying series is rarely examined.
  • Social-media charts cherry-pick start and end months, ignoring seasonality and scale.
  • Common analyses are not reproducible: no database, no queries, no way to check a claim.
  • Limitations: no structured storage, no documented cleaning steps, no honest forecast evaluation — just screenshots of charts of unknown origin.

Proposed System

  • A small, well-documented database (upi_monthly, plus a derived fy_summary) as the single source of truth for the study.
  • A SQL metrics layer: month-over-month and year-over-year growth, CAGR per financial year, records (peak months), average ticket size, best/worst growth spells.
  • A Python EDA layer: trend and log-scale growth charts, seasonality plots by month of year, volume-vs-value divergence, annotated events (demonetisation aftermath, COVID dip and surge, festival quarters).
  • A forecast module: linear regression on the log-scale volume trend, tested on held-out recent months with reported MAE, and compared against a naive baseline.
  • A findings report where every figure cites the query or notebook cell that produced it.

Feasibility Study

  • Technical: only Python, pandas, Matplotlib and MySQL — exactly the Anna R2021 toolset (CS3361, CS3481). The dataset is a few hundred rows; any laptop suffices. The bundle includes the extracted CSVs, so the study runs offline.
  • Economic: ₹0. All tools are free; the data is public.
  • Operational: a single loader script and numbered notebooks make the study repeatable by any junior; updating it for a new month is one file and one rerun.

Objectives

  1. 01Extract NPCI's monthly UPI product statistics (volume, value) into clean CSVs with a documented cleaning step for headers, units and placeholders.
  2. 02Design and populate a MySQL schema (`upi_monthly`, `fy_summary`) as the single source of truth for the study.
  3. 03Compute structural growth metrics in SQL: MoM and YoY growth, CAGR per financial year, peak-record months and average ticket size.
  4. 04Perform exploratory data analysis in Python: log-scale growth curve, month-of-year seasonality, volume–value divergence and annotated real-world events.
  5. 05Build a linear-regression forecast of monthly volume evaluated on held-out months with reported MAE against a naive baseline.
  6. 06Present findings so every figure in the report is traceable to a query or notebook cell.
  7. 07Document the full study so a future student can extend it by appending one more month of data.

Scope

In scope

  • NPCI monthly UPI product statistics: volume (millions) and value (₹ crore), from launch month to the month the study is downloaded.
  • Cleaning, database loading, SQL metric layer, Python EDA, one simple forecast model, findings report with reproducible figures.
  • Derived metrics: average ticket size, growth spells, festival-quarter comparison.

Out of scope (v1)

  • Bank-wise or app-wise UPI market share (published separately by NPCI) — kept as a future extension.
  • Other NPCI products (FASTag, AePS, RuPay) except one comparative glance in the conclusion.
  • Causal modelling, machine learning beyond linear regression, and any data behind NPCI's login/paywall (there is none — this study is fully public).
  • Mobile app or web development; the deliverables are the database, notebooks and report.

Methodology

The study follows a lightweight iterative analytics lifecycle (plan → acquire → prepare → analyse → communicate), run in three short cycles so a working draft of the findings exists from week 5 onward. The team of three splits the layers but reviews every cycle together.

PhaseWeeksActivitiesDeliverable
Plan & acquire1–2Study NPCI statistics page; freeze analysis questions; extract monthly tables to CSV; data dictionaryQuestion list + raw CSVs
Prepare3–4Cleaning rules (headers, units, placeholders); MySQL schema; loader script; sanity checksLoaded upi_monthly table
Cycle 1: SQL metrics5–6YoY/MoM, CAGR, records, ticket size queries; verify against NPCI press statementsMetrics tables
Cycle 2: EDA7–9Trend, log-scale, seasonality and divergence charts; event annotationsNotebook + figures
Cycle 3: forecast10Train/test split, linear regression on log volume, MAE vs naive baselineForecast section
Write-up11–12Findings report, CS3811-format documentation, demo rehearsalFinal submission

Validation approach: every derived total is cross-checked against NPCI's own published monthly statements (e.g. peak-month records quoted in press releases); loader sanity checks assert positive volumes, monotone months, and row counts equal to months elapsed; the forecast is never presented without its held-out MAE.

Architecture & tech stack

2 diagrams · 7 technologies · 1 min read

  • Python
  • pandas
  • NumPy
  • Matplotlib
  • MySQL
  • SQL
  • Jupyter Notebook

This is an analytics study, so the architecture is a small data flow rather than a software system.

  1. Source — NPCI's UPI product statistics page (monthly volume/value tables), saved as CSV extracts so the study is reproducible offline.
  2. Storage — a MySQL schema with one fact table (upi_monthly: month, volume_mn, value_cr, derived avg_ticket_size) and one aggregated table (fy_summary: financial-year totals and growth).
  3. Analysis — SQL scripts for the metric layer, Jupyter notebooks for EDA and the forecast; figures are generated by code, never drawn by hand.
  4. Communication — the findings report and the CS3811 project documentation.
flowchart LR
  A["NPCI UPI product statistics<br/>(monthly volume & value tables)"] --> B["Extraction<br/>save monthly tables as CSV"]
  B --> C["Cleaning & loading<br/>pandas checks → MySQL `upi_monthly`"]
  C --> D["SQL metrics layer<br/>YoY · MoM · CAGR · records · ticket size"]
  C --> E["Python EDA<br/>log growth · seasonality · divergence"]
  D --> F["Findings report<br/>every figure cites its query"]
  E --> F
  E --> G["Trend forecast<br/>held-out MAE vs naive baseline"]

Study database

erDiagram
  UPI_MONTHLY {
    date month PK
    decimal volume_mn
    decimal value_cr
    decimal avg_ticket_size
  }
  FY_SUMMARY {
    int fin_year PK
    decimal annual_volume_mn
    decimal annual_value_cr
    decimal yoy_growth_pct
  }
  UPI_MONTHLY ||--o{ FY_SUMMARY : "aggregates into"

avg_ticket_size is derived in the loader as value × 10 / volume (₹ per transaction), and fy_summary is recomputed from upi_monthly by a view-like SQL script so no number can drift between tables.

Modules

3 modules

  1. Module 01

    Data Acquisition & Database Layer (Member 1)

    Owns everything from NPCI's page to a loaded MySQL table: saving the monthly statistics tables as CSVs, a documented cleaning routine in pandas (header rows, thousand separators, unit columns, placeholder handling), the upi_monthly and fy_summary schema, and a loader script with sanity checks (positive volumes, no duplicate or missing months, row count matches months elapsed). Also maintains the data dictionary.

  2. Module 02

    SQL Metrics Layer (Member 2)

    Owns the query set that turns the table into findings: month-over-month and year-over-year growth, compound annual growth rate per financial year, record-setting months, average ticket size trend, longest acceleration spells, and festival-quarter comparisons. Each query is saved with a one-line purpose comment, and Member 2 validates the computed totals against NPCI's published statements, recording any discrepancy in the report.

  3. Module 03

    EDA, Visualisation & Forecast (Member 3)

    Owns the Python layer: Matplotlib charts for the linear and log-scale growth curves, month-of-year seasonality box plots, the volume–value divergence plot that shows small-ticket payments taking over, and annotated event markers (post-demonetisation adoption, the COVID dip and surge). Also owns the forecast notebook — linear regression on log-volume with a held-out test set, reported MAE against a naive last-month baseline — and assembles the figures into the findings report.

Slides

11 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    A Decade of UPI — Transaction Growth Analytics

  2. Slide 2

    Why UPI, Why This Study

  3. Slide 3

    Problem Statement

  4. Slide 4

    The Dataset

  5. Slide 5

    Objectives

  6. Slide 6

    Methodology & Timeline

  7. Slide 7

    Study Design & Database

  8. Slide 8

    Analysis Highlights — Growth

  9. Slide 9

    Analysis Highlights — Seasonality & Ticket Size

  10. Slide 10

    Forecast & Evaluation

  11. Slide 11

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 14 answered free · 11 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    Why did you store the data in MySQL at all when the whole dataset is one CSV of a few hundred rows?

    Two reasons: reproducibility and skill demonstration. A database enforces types and constraints, keeps the study's numbers in one auditable place instead of copies of a file, and lets the metric layer be expressed as reviewable SQL scripts that anyone can rerun. It also demonstrates the DBMS course outcomes from CS3481, which is part of why this project maps well to our curriculum.

  2. 02Concept

    What is exploratory data analysis and what did it reveal in your study?

    EDA is the systematic first look at a dataset — distributions, trends, seasonality and anomalies — before any modelling. In our study it revealed three things: volume growth that is near-exponential and then maturing, strong festival-quarter seasonality with a reliable dip in the monsoon months, and a steady fall in average ticket size showing UPI's shift from big person-to-person transfers to small everyday merchant payments.

  3. 03Concept

    What is CAGR and how did you compute it for UPI volumes?

    CAGR, the compound annual growth rate, is the constant yearly rate that would take the starting value to the ending value over n years: it is (end/start) raised to 1/n, minus one. We computed it per financial year from the fy_summary table, which aggregates upi_monthly. It smooths month-to-month noise, which is why we always present it alongside the actual YoY percentages rather than instead of them.

+11 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

6 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

6 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

252 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

252 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

367 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

367 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

6 sources

  1. NPCI — UPI Product Statistics (monthly volume and value)
  2. NPCI — Retail Payment Statistics (all products)
  3. Reserve Bank of India — publications and data on payment systems
  4. MySQL 8.0 Reference Manual
  5. pandas documentation
  6. Wes McKinney, Python for Data Analysis: Data Wrangling with pandas, NumPy & Jupyter, 3rd ed., O'Reilly

Cite this bundle

OnlyProjects. (2026). A Decade of UPI: Transaction Growth Analytics with SQL and Python: B.Tech / B.E. Data Science project bundle [Educational resource]. https://onlyprojects.online/projects/btech-ds-upi-growth-analytics-sql-python

Future scope

1 min read

  • Bank-wise market share — NPCI publishes per-bank UPI volumes; a second table turns this into a concentration study.
  • Cross-product comparison — add FASTag and AePS monthly statistics for a payments-landscape dashboard.
  • Better forecasting — seasonal-naive and Holt-Winters models compared against the linear baseline.
  • Automation — a monthly refresh script that appends the latest NPCI figures and regenerates every figure automatically.
  • Public write-up — publish the findings as a short blog post with reproducible notebooks linked.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.

B.Tech / B.E.Code included

Aerospace / Aeronautical

Low-Speed Open-Circuit Wind Tunnel with Force Balance for Aerofoil Lift-Drag Measurement

Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory

  • C / Arduino Uno (industry-standard extra) — HX711 load-cell and serial logging firmware
  • Python (NumPy, Matplotlib) — calibration, force coefficients and plots
  • MATLAB / Scilab — thin-airfoil theory overlay and regression
  • +4

intermediate14 wk4 students