Gotham AI Broker — Best Real Estate Hack MVP
Inspiration Investors drown in fragmented info: comps on one site, rent trends on another, and 30-page PDFs. We built a broker-in-your-pocket that fuses property + market data, then returns a professional, defensible Buy/Hold/Sell decision with clear reasons.
What we built A full-stack app that reads ServiceNow property records and Gotham CSV market stats, forecasts rent growth, computes an explainable score, and lets you chat with an AI broker for Q&A. You get listing cards, a detail view with trends, a CoStar-style thesis, factor attributions (“Explain score”), and one-click PDF export.
How we built it
Data: ServiceNow Table API (properties) + Gotham CSVs (submarket monthly metrics).
Analytics: Prophet → ARIMA → YoY fallback for projected 12-month rent growth; Market Strength Index (MSI) from rent momentum and vacancy; optional DSCR.
Scoring (no recent appreciation):
Score
𝜎 ( 4 ( 𝑊 𝑐 𝑐 ^ + 𝑊 𝑟 𝑟 ^ + 𝑊 𝑚 𝑚 ^ + 𝑊 𝑑 𝑑 ^ − 0.5 ) ) × 100 Score=σ(4(W c
c ^ +W r
r ^ +W m
m ^ +W d
d ^ −0.5))×100
with weights 𝑊
𝑐
0.35 W c
=0.35 (cap rate), 𝑊
𝑟
0.35 W r
=0.35 (rent growth), 𝑊
𝑚
0.20 W m
=0.20 (MSI), 𝑊
𝑑
0.10 W d
=0.10 (DSCR). Decision rule: Buy ≥ 75 ≥75, Hold 55 − 74 55−74, Sell < 55 <55.
LLM: Gemini with two modes—thesis (CoStar-style rationale) and qa (answers in 3–5 sentences, no fabricated numbers).
UI: Streamlit—clean, image-free cards, right-rail popup chat, factor bars, PDF export.
Infra: FastAPI backend, dual-source repo pattern, deterministic fallbacks for offline demos.
What we learned
Data orchestration beats scraping; provenance matters.
Explainability (factor bars + thesis) builds trust.
Prompt “contracts” (thesis vs QA) prevent chat regressions.
Real-world ops: TLS/CA bundles on macOS, Windows wheels for pmdarima, and model-ID drift—add health probes and graceful fallbacks.
Challenges Schema mapping (SN strings → typed analytics), forecasting with sparse history, fixing a chat bug that echoed the thesis, and dealing with network/SDK mismatches under hackathon time.
Built with
Languages/Frameworks: Python, FastAPI, Streamlit
AI: Google Generative AI (Gemini) via google-generativeai
Data/Stats: Pandas, Prophet, (optional) pmdarima, statsmodels, Plotly
Platforms: ServiceNow Table API (Basic Auth), Docker
Data: Gotham synthetic CSVs (properties, market stats, unit mix, sales)
Built With
- docker-data:-gotham-synthetic-csvs-(properties
- fastapi
- languages/frameworks:-python
- market-stats
- optional)-pmdarima
- plotly-platforms:-servicenow-table-api-(basic-auth)
- prophet
- statsmodels
- streamlit-ai:-google-generative-ai-(gemini)-via-google-generativeai-data/stats:-pandas
- unit-mix

Log in or sign up for Devpost to join the conversation.