kvsoftware

Sobat Warung

A WhatsApp assistant that helps small shop owners run their warung

A WhatsApp chatbot for warung owners. They register their shop and log daily sales just by chatting, and in return get a forecast of what will sell and which products to bundle, drawn from sales history, holidays, and fuel prices.

A warung owner restocks by gut feeling: how much rice, how many eggs, how much instant noodles for tomorrow. Guess too low and customers walk to the next shop; guess too high and money sits on the shelf. Sobat Warung is a WhatsApp assistant that does the guessing with data instead, built by Tim CEBEES for the AI Innovation Challenge at COMPFEST 2025.

Competition
COMPFEST 2025
Team
3 people
Stage
Proof of concept

Why WhatsApp

Warung owners already live in WhatsApp; it's how they talk to suppliers, family, and customers every day. So there's no app to install and nothing new to learn. They register their shop and log the day's sales just by chatting, and the forecasts come back in the same chat.

Register

Set up the shop in a conversation.

Log sales

Report the day's sales by chatting.

Get advice

What to buy for tomorrow, and which products to bundle.
Three WhatsApp chats with Sobat Warung: logging a sale, the main menu with options to log sales, predict tomorrow's demand, and check stock, and a sign-up question about the size of the warung
Logging a sale, the main menu, and signing up a warung, all inside WhatsApp.

What to buy tomorrow

The forecast answers one question: how many of each product should the owner buy for tomorrow. It's a lag-based ensemble: the past sales of every product go through Darts, which forecasts many time series at once with a single global model, into three LightGBM models whose predictions are averaged.

  1. Sales history

    Every product's past daily sales.

  2. Darts preprocessing

    All products as one global forecasting problem.

  3. Three LightGBM models

    Fast, tree-based, each predicting from lagged sales.

  4. Ensemble forecast

    The average of the three: what to buy tomorrow.

The forecast, from sales history to tomorrow's shopping list.

The models also see what's coming, not just what happened: holidays, the day of the week, and fuel prices go in as future covariates. They're evaluated on RMSLE, which treats best-sellers and slow movers fairly and punishes under-prediction hard. For a warung, running out costs more than a little extra stock.

What to bundle

Slow-selling products tie up money. To move them, Sobat Warung suggests bundles, found with FP-Growth: it compresses the shop's transactions into a compact tree of patterns, then reads off which products customers buy together.

  1. Scan

    Count how often each product sells.

  2. Sort

    Order each transaction by those counts.

  3. FP-Tree

    Merge transactions into one tree of shared paths.

  4. Extract

    Read off products that sell together.

FP-Growth, from transactions to bundle ideas for the products that sell least.

My role

I was the backend developer and machine learning engineer on a team of three. The backend is FastAPI with MongoDB, with Twilio carrying the WhatsApp conversation.

Where it stands

We didn't make the finals. Sobat Warung is a proof of concept: it hasn't been tried by real warung owners yet. The next step would be exactly that, putting it in front of a few shops and seeing whether the forecasts beat their instinct.

Back to the work