From scattered field data to a confident store-expansion decision.
Savo SiteScout takes a BD team from “where should we look?” to a signed-off property — area scoring, field scouting, ground-truth catchment surveys, and a leadership-ready case, all grounded in data that's actually recorded, never invented.
Picking the next Savomart store today means stitching together spreadsheets, field notes, and gut feel across four different people — a BD Manager weighing areas, a BD Executive scouting on foot, a Survey Manager coordinating a ground survey, and leadership deciding on a case they didn't build. Savo SiteScout keeps all four working from the same recorded data, and never lets a report say more than the data actually supports.
What's actually built
Six features, each reusing the same scoring and grounding rules rather than inventing a new pattern per feature.
Area Intelligence
Pick a pincode, locality, or a hand-drawn set of map cells. The system pulls residential density, amenities, competition, and demographics for it and scores how well it fits a neighbourhood grocery store — with the sources it used shown alongside the number.
Property Scouting
A BD Executive logs a candidate property from the field — address, rent, size, photos. It's evaluated automatically against the same signals as the area, flagged for risks like a narrow road or missing parking, and checked against nearby duplicates.
Catchment Study
A BD Manager requests a ground survey around a property or area. A Survey Manager splits it into compass-wedge lanes and assigns them; Survey Executives capture foot traffic, density, and competition lane by lane, even with no signal — captures queue locally and sync once they're back online.
Conversational Analyst
Ask a plain-language question — "compare Velachery and Tambaram" — and get an answer streamed back token by token, grounded only in what's actually recorded. The model narrates already-computed facts; it never writes or runs a database query itself.
Opportunity Map
A city-wide view of every area already touched, ranked by potential weighed against how little of it has been surveyed — so a strong area nobody has looked at yet outranks an equally strong one that's already covered, with the reasoning shown, not just a score.
Decision Pack
One click turns a property's full case — evaluation, survey, scouting history, photos — into a leadership-ready PDF with an evidence trail and a sign-off section, built from the exact same data the property page already shows.
How a property actually moves
- 1
BD Manager picks an area or checks the Opportunity Map for where to look next.
- 2
BD Executive scouts on the ground and submits a candidate property — evaluated automatically.
- 3
Survey Manager requests and assigns a ground catchment survey, lane by lane.
- 4
Survey Executive captures lane data in the field — offline if needed, synced when signal returns.
- 5
BD Manager reviews the completed survey, generates a Decision Pack, and moves the property forward.
- 6
Leadership signs off on the printed pack — approve, reject, or ask for more information.
System architecture
The actual shape of this app — not a template diagram. Every score is computed in Python from recorded data first; the LLM only narrates what's already been calculated, never queries the database or invents a number.
People
Four roles, one switcher, no accounts
BD Manager, BD Executive, Survey Manager, Survey Executive — picking one just swaps a string every request and every Decision Pack carries. There's no login behind it.
Interface
Next.js (App Router) + Leaflet
Server-rendered pages and Tailwind UI, with a browser-only IndexedDB queue that holds a field capture until the connection comes back.
API
FastAPI
REST endpoints plus one streamed connection for the analyst. Every request checks its own role — nothing is held in a session.
Storage & jobs
PostgreSQL + PostGIS, Redis + Celery
Postgres holds every area, property, catchment study, and conversation — the one source of truth. Celery runs area analysis and property evaluation in the background, so a slow calculation never blocks a request.
- Areas
- Properties
- Catchment studies
- Activities
- Conversations
Outside data
OSM Overpass, Nominatim, the Savomart store bridge, an optional LLM
All three stay live, not a cached dataset. The LLM, when configured, narrates numbers this app already computed — it never queries the database or invents one.
Output
A PDF, built server-side
The Decision Pack and the Area Fitness Report share one ReportLab pipeline and the same rule: a missing number says so — it's never guessed.