Kirana retailers sell blind — they see their own shop, not the 40 around them. This MVP proves one loop: extract market signal from retailer chatter, match it to each retailer's own profile and sales, and return a personalised weekly nudge — stock X this week, because Y.
retailer chatter / posts
-> LLM extracts trends & demand signals (Layer 1)
-> matched against a retailer's profile
(area, category mix, last 4 weeks of sales)
-> personalised nudge: "Stock X this week, because Y" (Layer 2)Data here is synthetic — ~45 Hinglish retailer posts and 12 retailer profiles for one vertical (snacks & namkeen, Bengaluru) — with a handful of trends deliberately planted so each layer is testable by inspection.
One LLM call clusters a week of posts into 4–7 distinct, decision-grade trends. Each carries a type (rising_demand, supply_issue, new_launch, price_change, complaint), sentiment, geo scope, the retailer posts cited as evidence, and a confidence score driven by how many independent posts back it. Supply problems and demand spikes look alike in the text but need opposite retailer actions, so the schema forces that distinction.
Deterministic rules do the cheap, checkable narrowing — which trends are even geographically relevant to a shop, and what that shop's own 4-week sales say about the SKUs in play (collapsed / rising / flat …). The LLM only sees that pre-filtered, annotated payload and writes up to 3 ranked nudges, each grounded in both the trend and the retailer's numbers. “Nothing warrants action” is a valid output — the engine is built not to manufacture signal.
The exact output of both layers on the synthetic corpus. Toggle between the week's digest and per-retailer nudges; open the evidence on any card to see the retailer posts behind it. Retailer Whitefield Family Mart is the deliberate negative case — flat everywhere, off every trend cluster, so it gets only low-priority “watch and wait” nudges.
6 trends extracted from 45 retailer posts · week of 2026-09-01
Retailers across Jayanagar, JP Nagar, BTM Layout and Banashankari report the Lay's Magic Masala 52g pack unavailable for 1-3 weeks, with PepsiCo/distributor lead times of 3-4 days and partial fills that sell out within a day. Underlying customer demand is intact and strong — shoppers are switching to Bingo or leaving — so this is a distribution gap, not a demand drop. Some grey-market stock is being sold above MRP.
Balaji Wafers has started direct distribution across Bengaluru (east, south-east, north observed) offering ~14% margin and an intro scheme (1 free carton on 10) — noticeably better economics than Lay's. Early adopters report fast rotation, and the sub-Lay's price point is landing with customers. Distributor contact discovery is still a friction point for some retailers.
In Indiranagar, Koramangala and HSR Layout, retailers report steady week-on-week growth in baked and 'better-for-you' snacks — Too Yumm (Multigrain, and the new Karare range), Beyond Snack banana chips, makhana. The crowd is diet-conscious and actively asks 'baked or fried'. Margins are reported as better than fried mainstream, and traditional Haldiram namkeen is comparatively slow in these pockets.
Haldiram's raised namkeen MRPs 3-5% from September, with Aloo Bhujia 200g up ~₹5. Retailers see customers down-trading to 100g packs and, at the same price point, shifting to Bikaji, whose salesforce is pushing harder to exploit the gap. Old-MRP stock is causing pricing confusion at the counter.
Festival-week demand (Ganesh Chaturthi) is up for modak, besan laddu, chakli, soan papdi and 250g/500g dry-fruit and chocolate gift boxes, with retailers doubling some orders. Effect is city-wide but time-boxed — one retailer already notes bulk namkeen demand cooling immediately after the festival.
Retailers in Yelahanka, RT Nagar and Hebbal report Kurkure — especially Masala Munch — running 10+ days late, attributed by distributors to a plant issue; one distributor (Sri Sai Agencies) missed two consecutive orders. Customers are substituting to Bingo Mad Angles. Distributor guidance is ~1 more week to normalise. Because the stated cause is production, not local logistics, other areas may be affected even though reports so far cluster in the north.
Built as a weekend MVP with a written PRD and a build log recording each decision and its rationale. The engine ships with committed sample outputs so it runs with no API key; the two layers regenerate them from the raw posts when a key is set.