💡 Inspiration

India processes over 16 billion UPI transactions every month. Yet most people — students, first-time earners, and everyday users — have no clear picture of where their money actually goes. You get a PhonePe or GPay PDF export at the end of the month, and it is just a wall of transactions with zero financial insight.

I built FinPal because I wanted to change that. Financial literacy should not require a finance degree — it should start with simply understanding your own spending. Most personal finance tools in India are either paid, overly complex, or designed for salaried professionals. There was nothing built for the UPI generation.


🔧 How I Built It

FinPal is a full-stack MERN application with an AI/ML layer on top.

Frontend: React.js dashboard with Chart.js for interactive spending visualizations — category breakdowns, monthly trend lines, and a Financial Literacy Score card.

Backend: Node.js + Express.js REST API with JWT-based authentication and role-based access control (RBAC). Backend query optimizations reduced API response time by ~30%.

Parsing pipeline: A custom Python parser that handles the inconsistent PDF and CSV export formats of PhonePe, Google Pay, HDFC, SBI, and ICICI bank statements. Each institution formats its exports differently — the parser normalizes all of them into a unified transaction schema.

ML categorization engine: Trained on 2,000+ labeled Indian UPI transaction descriptions using Scikit-learn. Classifies every transaction into categories like groceries, dining, transport, EMIs, subscriptions, and entertainment with over 90% accuracy — even handling cryptic merchant names like "ZOMATO*ORDER" or "Bharatpe QR".

Financial Literacy Score: A 0–100 scoring model that evaluates users across four dimensions — savings rate, spending diversity, essential vs discretionary ratio, and recurring expense awareness. Each score comes with a plain-English explanation and specific improvement actions.

Deployment: Vercel (frontend) + Render (backend) + MongoDB Atlas — entirely on free tiers.


🚧 Challenges I Ran Into

1. Inconsistent bank statement formats. Every bank and UPI app formats its PDF exports completely differently. Some use tables, some use plain text, some mix Hindi and English merchant names. Building a robust parser that handled all these variations without breaking took significant iteration and edge-case testing.

2. ML categorization on messy data. UPI transaction descriptions are often cryptic abbreviations with no standardization. Training a model that correctly classifies these required building a custom labeled dataset from scratch — there was no existing Indian UPI transaction dataset publicly available.

3. Making the score meaningful. Defining what "financially healthy" actually means in the context of Indian spending patterns required research-backed thresholds, not arbitrary cutoffs. I referenced RBI guidelines and personal finance benchmarks to ground the scoring model in real economic context.


🏆 Accomplishments I'm Proud Of

  • Successfully parsing transaction histories from 5+ bank and UPI app formats with a single unified pipeline
  • Achieving ~90% categorization accuracy on real Indian UPI transaction descriptions
  • Delivering a complete Financial Literacy Score with actionable insights in under 30 seconds from upload
  • Building a production-grade system with JWT auth, RBAC, and optimized REST APIs — not just a demo

📚 What I Learned

Building FinPal taught me that financial literacy is a data visibility problem, not a knowledge problem. When users see their first FinPal report, the most common reaction is genuine surprise — not because they did not know money management theory, but because they had never seen their own habits clearly before.

On the technical side, I learned how dramatically different real-world financial data parsing is from clean demo datasets, and how important graceful error handling is when your input can be literally anything a bank decides to export.


🚀 What's Next for FinPal

  • Conversational AI layer — ask questions like "How much did I spend on food vs last month?" powered by LangChain + Gemini API
  • Budget Goals module — set monthly category targets with proactive overspend alerts
  • Multi-user household mode — track shared expenses across family members
  • Expand to credit card statements — support for major Indian credit card PDF formats
  • Long-term: a full financial education platform for students and first-time earners in India who are just beginning to manage their own money independently

Built With

Share this project:

Updates

posted an update

FinPal is an AI-powered financial analysis system that processes transaction data from platforms like PhonePe, Google Pay, and personal bank statements. It automatically parses and categorizes expenses using machine learning, providing actionable insights through an interactive dashboard to improve financial awareness and decision-making.

Log in or sign up for Devpost to join the conversation.

posted an update

FinPal transforms raw UPI transaction data into meaningful financial insights using AI. It enables automated expense tracking, smart categorization, and better financial decision-making through an interactive dashboard.

Log in or sign up for Devpost to join the conversation.