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
Share this project:

Updates