Savo SiteScoutBuilt by Rahul Kannan · Roll No: 22PW30
Enter Application →
✦Chennai expansion intelligence for Savomart

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. 1

    BD Manager picks an area or checks the Opportunity Map for where to look next.

  2. 2

    BD Executive scouts on the ground and submits a candidate property — evaluated automatically.

  3. 3

    Survey Manager requests and assigns a ground catchment survey, lane by lane.

  4. 4

    Survey Executive captures lane data in the field — offline if needed, synced when signal returns.

  5. 5

    BD Manager reviews the completed survey, generates a Decision Pack, and moves the property forward.

  6. 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.

Built with

FastAPISQLAlchemy + GeoAlchemy2PostgreSQL + PostGISAlembicCelery + RedisNext.js (App Router)React 19Tailwind CSS v4Leaflet / react-leafletReportLabpytestDocker Compose
Savo SiteScout — Hackathon Project