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.
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.
Sales history
Every product's past daily sales.
Darts preprocessing
All products as one global forecasting problem.
Three LightGBM models
Fast, tree-based, each predicting from lagged sales.
Ensemble forecast
The average of the three: what to buy tomorrow.
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.
Scan
Count how often each product sells.
Sort
Order each transaction by those counts.
FP-Tree
Merge transactions into one tree of shared paths.
Extract
Read off products that sell together.
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.