A tool to support retail real-estate location search — site scoring, flood-risk, footfall, and leasehold pro-forma — built on open data (OpenStreetMap · Swiss BFS · BAFU). Reference brand: On.
A seven-step funnel that mirrors a retail analyst's daily workflow, from a broker lead to a deal memo — every score fully inspectable (glass-box).
Geocoded candidate with the BAFU surface-runoff hazard overlay and curated premium-hotel layer. Niederdorfstrasse 21 sits inside the Sihl/Limmat HQ100 flood perimeter.
BFS demographics for the municipality plus a live premium-environment signal — purchasing power, age structure, and curated 5★/4★ hotels in radius.
One OSM query, brand-aware classification into sport / symbiose / premium / competitor / negative / partner, with curated overrides for stores OSM under-tags.
Amenity-richness Walk Score (Pandana-free, log-saturated so central locations differentiate realistically) plus transit access.
Every dimension normalised 0-100 before weighting, with flood penalty and Bechtiger-2024 / ESI sustainability adjustment applied transparently.
A leasehold cashflow model (On leases, doesn't buy) — 5-year DCF with NPV / IRR / payback, Bear/Base/Bull scenarios, live sensitivity sliders, and retail KPIs (Occupancy Cost Ratio, Cash-on-Cash, Break-even sales).
Every analytical overlay is an independent, toggleable map layer. All twelve — each isolated over the baseline — captured at Niederdorfstrasse 21.
The live app analyses any address — this static page only shows one. Open the hosted version (free tier: may take ~30 s to wake up) or run it locally:
git clone https://github.com/TStrathaus/retail-real-estate-site-intelligence.git
cd retail-real-estate-site-intelligence
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # set NOMINATIM_USER_AGENT
streamlit run app.py