Skip to content

Project · Data Science, Machine Learning and AI

Project: a UPI money report for a tiffin business

Projectbeginner· about 4 hours· 7 steps

The brief

Sunita runs a tiffin service and is paid and pays almost everything by UPI. Turn two months of her bank app's JSON export into a report: money in and out per month, where the money goes, unusual payments and possible double payments.

Why it matters

Small businesses, CA firms and fintech apps (expense trackers, business banking dashboards) all turn UPI and bank exports into reports like this. It uses everything from the beginner level: reading JSON, cleaning text amounts, grouping, percentages, z-scores and careful checks.

Skills you practise

  • json.loads
  • datetime.fromisoformat and strftime
  • grouping with defaultdict
  • keyword categorisation
  • z-scores
  • writing a plain-text report

What you will have at the end

report.py and the printed report for August and September 2026: monthly cash flow, spending by category, flagged payments and the double-payment check.

How it is marked (rubric, 100 points)
Correct figuresAll seven checks pass; totals, shares and flags match the export.40
Careful with the dataFailed and pending payments are left out, text amounts are converted once, and flags are worded as "check this", not "wrong".20
Reusable codeEach function does one job and the report reuses them, so next month's export runs with no changes.20
Useful for the ownerThe report is short and plain, and you can explain each line to Sunita in one sentence.20

0/7 steps done

Step 1 of 7

Load the successful transactions

load_transactions(TRANSACTIONS_JSON) returns the 18 SUCCESS transactions, with time as a datetime and amount as a float.

json.loads turns the export into a dict; the transactions are a list under "transactions". A FAILED or PENDING payment did not move money, so keep only status "SUCCESS". The amount is text like "2,400.00": remove the comma before float(). datetime.fromisoformat reads times written like 2026-08-01T09:12:00.

Run shows what your code prints. Check runs the step's tests. Ctrl+Enter checks too.