Inspiration

Small and medium businesses often make expansion decisions using intuition, fragmented local knowledge, or incomplete market research. We wanted to build a tool that makes this process more data-driven and accessible.

Our idea was to turn open business location data into practical recommendations for two common questions: “What should I open here?” and “Where should I open this business?” We were especially interested in going beyond simple hotspot ranking by incorporating not just local business density, but also competition, category diversity, and signals from similar neighbouring areas.

What it does

DistrictLens is a business location intelligence platform that recommends:

  • By location: which industries are promising in a given area
  • By industry: which areas are promising for a given business type

For each candidate (area, industry) pair, the system computes an opportunity score and returns ranked recommendations. It also provides interpretable outputs such as competition level, market gap, and short explanation text, so the recommendations are not just predictive but understandable.

The product is presented through a Streamlit interface with ranking cards, charts, and map-based visualisation.

How we built it

We built DistrictLens as an end-to-end pipeline: Data preparation: We started from Foursquare Open Places data for Australia and category metadata.

Cleaning and preprocessing: We filtered to SME-relevant businesses, standardised region/locality fields, and created consistent area identifiers.

Feature engineering: We transformed raw place-level data into an area–industry recommendation dataset with:

  • area-level features such as activeness and category diversity
  • area–industry features such as competition count and penetration
  • neighbour-aware features based on similar nearby markets
  • Modeling: We benchmarked three ranking models:
  • XGBoost as a strong interpretable baseline
  • MLP as a neural baseline
  • LocalConvRanker as an advanced model that combines self features with neighbour sequence features using Conv1D

Serving and frontend: We stored raw and serving data in PostgreSQL and connected the trained models to a Streamlit app for interactive recommendations.

Challenges we ran into

One major challenge was that the dataset did not provide a direct business success label such as revenue or profit. To address this, we designed a weak-supervised proxy opportunity score based on business activity, diversity, competition, risk, and market gap.

Another challenge was turning raw location records into something recommendation-ready. This required careful aggregation from place-level data into area-level and area–industry-level representations, as well as building neighbour-based signals that could support our LocalConv model.

We also ran into engineering issues around consistency across the data pipeline, model training, and serving layers, especially when neighbour sequence features had to align exactly between feature generation and inference.

Accomplishments that we're proud of

We are proud that DistrictLens became more than just a modeling experiment. It evolved into a full prototype with:

  • an end-to-end pipeline from raw data to frontend demo
  • a recommendation setup that supports both area → industry and industry → area
  • interpretable ranking outputs rather than raw black-box scores
  • a custom neighbour-aware LocalConvRanker that explicitly models local market context
  • a working Streamlit interface with charts, maps, and explanation cards

We are also proud that we compared multiple models instead of relying on a single approach, which helped us understand the trade-off between predictive performance and interpretability.

What we learned

We learned that in location intelligence problems, representation matters as much as model choice. A strong part of the project was not just training a model, but deciding how to represent areas, industries, and neighbouring market context in a meaningful way.

We also learned that interpretable outputs are essential for decision-support systems. In this domain, users need to know why an area is recommended, not just see a score.

Finally, we learned a lot about building a full-stack ML prototype: data engineering, feature design, model benchmarking, database integration, and frontend delivery all had to work together.

What's next for DistrictLens

There are several directions we would like to explore next:

  • incorporate richer external signals such as demographics, rental prices, foot traffic, and income data
  • improve the weak-supervised target with more realistic business outcome proxies
  • strengthen geospatial modelling with richer spatial graphs or retrieval-based methods
  • support free-text business queries such as “healthy cafe near offices”
  • deploy DistrictLens as a more production-ready web application with user accounts and saved search workflows

Our long-term vision is to turn DistrictLens into a practical decision-support tool for SMEs, founders, and expansion teams looking for smarter, more explainable site selection.

Built With

Share this project:

Updates

Submission history