Inspiration

In Semarang, 90% of warungs still track expenses on messy handwritten bon: "Gulaku 10rb, Mie 2bj 2,5k, Telor 14rb coret jadi 13rb". Normal OCR fails - reading "10rb" as "10b". Owners lose money because they don't know their daily profit. I wanted to make bookkeeping as easy as taking a photo, even for ibu-ibu who can't type.

What it does

WarungScan - AI Receipt to Profit. Snap any receipt - printed Indomaret or handwritten warung note - our Vision AI reads it and auto-calculates profit.

V5 can now read handwritten Bahasa Indonesia notes, which was impossible in V1-V4.

How we built it

  • Frontend: warungscan-demo.vercel.app (Next.js + Bolt)
  • Vision: GPT-4o Vision with custom few-shot prompt for Javanese handwriting (Gulaku, Sedaap, Bimoli)
  • Logic: Smart price normalization - "10rb, 15k, 2,5k, 2.5" -> IDR integer
  • Handling: Cross-out logic - "14rb coret jadi 13rb" = takes last price
  • Built with: Bolt, GPT-4o, Google Sheets as DB for warung owners

Challenges we ran into

  1. Handwriting: GPT-4o vanilla accuracy only 41% on warung notes. Fixed with few-shot examples from 15 real receipts from Banyumanik & Tembalang.
  2. Price formats: Warungs write "10rb, 10k, 10 ribu, 10.000" - all same. Built regex normalizer.
  3. Coretan: Owners cross out prices. Had to teach AI to take the last price.

Accomplishments that we're proud of

  • V5 accuracy: 41% (vanilla) -> 88% (our prompt) on 15 real handwritten warung receipts from Semarang
  • First OCR that handles "2bj 2,5k" = 2 pcs x 2500
  • Live demo working at warungscan-demo.vercel.app - tested by 3 warung owners in Tembalang

What we learned

Printed receipt OCR is solved. Handwritten warung receipt is the real problem in Indonesia. The solution is not better OCR model, but better context prompt + price normalization specific to warung language.

What's next for WarungScan - AI Receipt to Profit

For Arbiter Hacks V1 (V6):

  • Voice input in Javanese Ngoko for ibu-ibu warung (e.g., "loro setengah" -> 2.5)
  • Auto WhatsApp daily profit report at 8 PM
  • QRIS payment tracking integration

Built With

  • 4o
  • ai
  • bolt
  • code
  • google
  • gpt
  • low
  • new
  • open
  • sheets
Share this project:

Updates

posted an update —

90% warung di Semarang masih pake bon tulis tangan: "Gulaku 10rb, Mie 2bj 2,5k". OCR biasa baca jadi "Gulaku 10b" -> profit hancur.

Di V5 gue rebuild total Vision prompt: Before (GPT-4o vanilla): Akurasi 41% di tulisan tangan After (few-shot + context warung): Akurasi 88% dari 15 bon asli warung di Banyumanik & Tembalang

Apa yang baru:

  1. Few-shot prompt khusus tulisan Jawa (contoh Gulaku, Sedaap, Bimoli)
  2. Auto-fix harga: 10rb / 2,5k / 15k -> IDR beneran
  3. Handle coretan: "14rb coret jadi 13rb" = ambil 13rb

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

posted an update —

V5 is live - Now with handwritten Bahasa Indonesia support!

Most warungs in Semarang still use messy handwritten notes (e.g., 'Gulaku 10rb, Mie 2.5k'), which normal OCR fails to read.

What's new in V5:

  1. Improved Vision AI prompt with few-shot learning for Indonesian handwriting
  2. Smart price normalization (10rb, 15k, 2.5 -> IDR)
  3. Tested on 15 real receipts from warungs in Semarang - accuracy 88%

What's next for V6 (Arbiter Hacks V1):

  • Voice input in Javanese (Ngoko) for ibu-ibu warung who can't type
  • Auto WhatsApp daily profit report to owner
  • QRIS payment tracking integration

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

posted an update —

Update - Final Day: WarungScan now handles handwritten warung receipts in Bahasa Indonesia!

We improved our Vision AI prompt to read messy tulisan tangan, not just printed Indomaret receipts. Tested on 15 receipts from Semarang.

Try it: warungscan-demo.vercel.app

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

Submission history