Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Mobile

Receipt Scanning Expense Splitter App with Item-Level Bill Splitting

A mobile app for friends, flatmates and travel groups that reads a photographed restaurant or grocery receipt, extracts line items, and lets each person claim what they ordered before settling with the fewest transfers. An intermediate final year project combining OCR, a correction interface and a debt simplification algorithm.

Difficulty

Intermediate

A small team, or one strong student willing to learn something new.
Effort

1 semester · 2 students

Deliverables

7 to ship

4 optional extras

Suggested stack

React Native (Expo)ML Kit or Tesseract OCROpenCV for perspective correctionNode.jsPostgreSQLSupabase Auth or Firebase Auth
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • Receipt capture with edge detection and perspective correction, then OCR extracting line items, quantities, prices, tax and total
  • A correction interface for fixing misread lines quickly, with a check that item prices add up to the printed total
  • Item-level assignment to group members, including shared items split equally or by share
  • Tax, service charge and tip distributed in proportion to each person's items
  • Group ledger across many expenses with debt simplification that reduces balances to the minimum practical number of transfers
  • OCR accuracy measured on at least 50 real receipts, reported per field type
  • Share links so group members can claim items from their own phones

If you have time left

  • Multi-currency support with the rate recorded at the time of the expense
  • Recurring shared expenses such as rent and utilities
  • A layout-aware extraction model fine-tuned on your labelled receipts, compared against plain OCR plus rules
  • Payment deep links that open a wallet app with the amount pre-filled, without handling money

The problem with splitting a bill fairly

Splitting a bill evenly is unfair when one person had a starter and two drinks and another had tea. Doing it properly at the end of a meal means passing a crumpled receipt around and adding numbers on a phone calculator, so people give up and split evenly. Flatmates and travel groups have the same problem over weeks of groceries and shared costs, and end up with a tangle of who owes whom.

What already exists and the gap

  • Splitwise tracks shared expenses in groups and has a "simplify debts" feature; receipt scanning and itemisation are part of its paid plan.
  • Tab and similar apps turn a receipt photo into an itemised split where each person selects their items.
  • Settle Up and Tricount handle group expenses and settlement, mostly with manual entry.

The gap is the combination done well for real receipts: faded thermal paper, mixed Urdu and English item names, local tax and service charges, and a correction flow that treats OCR errors as normal rather than as failures. Many users outside the markets these apps are tuned for find itemised scanning either paid, unreliable on local receipts, or both.

What you build

Two roles:

  • Payer: photographs the receipt, corrects lines, creates the split and shares a link.
  • Group member: opens the link, claims items, sees their total and the running group balance.

Main flows: capture, correct, assign, distribute tax and tip, add to the group ledger, and view the simplified settlement: "Ali pays Sara 1,200, Hamza pays Sara 450".

The technically interesting part

Debt simplification. In a group of six where everyone owes everyone, there can be up to fifteen pairwise debts, and the set of transfers that settles all balances is usually far smaller. Compute each person's net balance, then match creditors and debtors. A greedy approach gives at most n minus 1 transfers; finding the true minimum is harder, because it means finding the largest number of subgroups whose balances sum to zero, which is exponential in the worst case. Implement the greedy method and an exact search for small groups, and compare them. This is the part to write up properly.

Honest OCR. Receipts are crumpled, faded and inconsistently formatted. Make the correction interface a first-class part of the flow, highlight low-confidence lines, and use the printed total as a checksum: if items do not add up, point the user to the likely misread line.

How to evaluate it

  • OCR accuracy: 50 or more real receipts, hand-labelled, with accuracy reported separately for item names, prices and totals. Totals matter most because users notice them.
  • Correction effort: median taps and seconds to fix a receipt, on 10 receipts with 5 users.
  • Settlement: on randomly generated groups of 3 to 10 people, compare transfer counts from greedy and exact methods, and runtime.
  • Correctness: unit tests proving that every settlement leaves every balance at zero.

Suggested plan

  1. Weeks 1 to 2: collect and label 50 receipts from local restaurants and shops.
  2. Weeks 3 to 5: capture, perspective correction, OCR and line parsing.
  3. Weeks 6 to 8: correction interface, assignment, tax and tip distribution.
  4. Weeks 9 to 11: group ledger, greedy and exact settlement, share links.
  5. Weeks 12 to 15: evaluation, user tests, write-up.

Path to a product

The first users are your own friends, hostel and travel groups. Keep manual splitting free and charge a small subscription for unlimited receipt scans and multi-currency trips, or earn from payment deep-link partnerships later. Students, flatmates and office lunch groups spread apps like this by word of mouth, because every split invites new people.

Scope warning

No payment processing: calculate who owes whom and stop there, because handling money brings regulatory questions that do not belong in a student project. Do not build budgeting, bank sync or expense categories. Do not train an OCR model from scratch; use an existing engine and put your effort into parsing and correction.

Learn what you need on Sefism

Get help with this idea

The labelled receipt set and the settlement algorithm are what examiners remember, so plan both early. Tauseef can help you tighten the scope, choose a stack your team can finish with, and design an evaluation your examiners will respect. If you are new here, create a free account first.

Ideas and guidance, not finished projects

These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.

Not sure this one fits you?

I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.

Discuss this idea
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.