📖 About the Project
Inspiration
We’ve all been there: a group dinner ends, the receipt lands on the table, and suddenly no one wants to do math. Splitting bills fairly (with tax, tip, and shared items) is tedious, and sending individual Venmo requests takes forever. We wanted a tool that bridges the gap between receipts and peer-to-peer payments — turning “who still owes?” into a one-tap experience.
What We Learned
We dove into how OCR and deterministic parsing can be combined with LLMs to interpret messy receipts. We learned how to build platform-specific deep links for Venmo (iOS vs. Android), and how to design around user trust — leaning on familiar flows like Venmo links and QR codes instead of sketchy automation. We also got a crash course in reconciling floating-point math with fairness rounding: making sure everyone pays their fair share down to the cent.
How We Built It
- Receipt parsing: We used Google Gemini to intelligently extract text from images of receipts. Gemini is able to detect items, subtotal, tax, tip, and total, taking into account variations in formatting.
- Fair splitting: Each person’s tax and tip are calculated proportionally. Rounding remainders are adjusted automatically.
- Payments: For each payer, we generate:
- QR codes and prefilled text messages
These open the Venmo app with the amount and note already filled in.
- QR codes and prefilled text messages
These open the Venmo app with the amount and note already filled in.
- UI: A React + Tailwind PWA with a clean, mobile-first design that tracks who has paid in real time.
Challenges
- Cross-platform deep links: iOS and Android behave differently; we had to add fallbacks so links work everywhere.
- Parsing receipts reliably: OCR outputs are messy; deterministic rules alone weren’t enough, but full LLM parsing was too costly — so we built a hybrid.
- Trust & UX: People trust Venmo, not random apps asking for bank access. We had to design around user trust by keeping Venmo in the loop rather than bypassing it.
Built With
- gemini
- mongodb
- python
- react
- tailwind
- typescript
- vercel

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