# AgentForge Bounty — $500 Submission ## The Customer Tech professionals anywhere in the world evaluating a job offer, relocation, or first home purchase. Specifically: someone with investments in Ghostfolio who wants to know: - "Is this job offer in Seattle/London/Tokyo actually a real raise after cost of living?" - "Can my portfolio fund a down payment? Where can I afford?" - "What is my total net worth including my home equity?" **The pain:** "I have money in the market. I got a $180k offer in Seattle. I don't know if I can afford to move, whether I can buy a house, or if the raise is even real." --- ## The Features ### 1. Portfolio → Down Payment Bridge Reads the user's live Ghostfolio portfolio and calculates exactly which housing markets they can afford at 20% down with monthly payment estimates and rent vs buy comparison. Works for Austin (real MLS data) and any city worldwide (Teleport API). ### 2. Job Offer Affordability Calculator Takes any salary offer and destination city anywhere in the world, adjusts for cost of living, and tells the user whether it is a real raise in purchasing power terms. Covers 200+ cities via Teleport API + real Austin MLS data. Handles state income tax comparison automatically. ### 3. Property Tracker — Full CRUD Users log owned properties, track equity, monitor appreciation. Agent supports create, read, update, and delete via natural language. Stored in SQLite — persists across sessions. Soft-delete preserves audit trail. ### 4. Unified Net Worth View Agent combines live investment portfolio + real estate equity into one complete financial picture in a single conversation turn. ### 5. Relocation Runway Calculator Calculates month-by-month how long until the user rebuilds emergency fund, reaches a down payment, and feels financially stable after any relocation. Works for any two cities globally via Teleport API - ACTRIS Austin data. ### 6. Wealth Gap Visualizer Compares actual net worth against Federal Reserve median wealth by age group. Projects retirement income at current savings rate. Shows what-if scenarios. Source: Federal Reserve Survey of Consumer Finances 2022. ### 7. Life Decision Advisor Orchestrates all tools into one complete recommendation for any major life decision — job offer, relocation, home purchase, rent vs buy. Returns structured verdict with tradeoffs, confidence level, and next steps. ### 8. Equity Unlock Advisor For homeowners: models three 10-year options for home equity — leave untouched, cash-out refi and invest, or use as rental property down payment. Uses real Austin appreciation data and current mortgage rates. ### 9. Family Financial Planner Models financial impact of having children for any city worldwide. Covers 25+ US cities and international cities including European subsidized childcare. Shows income needed, cost breakdown, alternatives, and international comparisons (Berlin $333/mo vs Austin $1,500/mo). --- ## Data Sources **User's own property data** — stored in SQLite, persists across sessions, full CRUD via natural language **Ghostfolio portfolio API** — live investment holdings, total value, performance data **Federal Reserve Survey of Consumer Finances 2022** — wealth percentile benchmarks by age group (public data) **US Dept of Labor + Care.com 2024** — childcare cost estimates for family planning feature (background data) **ACTRIS/Unlock MLS January 2026** — Austin TX market data available as background context when asked (provided by developer, licensed Austin real estate agent) --- ## The Impact The app solves a real problem: most people have money in both investments and real estate but no single place to see the complete picture or run scenarios on their own numbers. A user adds their home (bought $400k, worth $480k, mortgage $310k) and immediately sees $170k equity tracked alongside their $94k investment portfolio — total net worth $264k in one view. They then ask: "What if I buy a home every 2 years for the next 10 years and rent the previous one?" The agent asks what appreciation and rent assumptions they want to use — because we do not guess at numbers for markets we cannot verify. The user says "moderate — 4% appreciation." The agent runs the projection using their actual portfolio balance, their income, and their assumptions — and returns a year-by-year picture of what their net worth could look like at retirement. This is a conversation people pay financial advisors hundreds of dollars per hour to have. This app does it in 30 seconds — honestly, with the user's own numbers, and with clear disclaimers about what is a projection vs a prediction. No market data promises. No city comparisons we cannot stand behind. Just the user's numbers, their assumptions, and honest math. --- ## Suggestion Chips (UI) Four rows of suggestion chips, visible before first message: **Row 1 — Portfolio (always shown):** - 📈 My portfolio performance - ⚠️ Any concentration risk? - 💰 Estimate my taxes **Row 2 — Property Tracking (when `enableRealEstate=true`):** - 🏠 Add my home to track equity - 📊 Show my total net worth - 💰 What are my equity options? **Row 3 — Life Decisions (when `enableRealEstate=true`):** - 💰 Can my portfolio buy a house? - ✈️ I have a job offer — is it worth it? - 🌍 How long until I'm stable if I move? **Row 4 — Strategy (when `enableRealEstate=true`):** - 📊 Am I ahead or behind financially? - 👶 Can I afford to have kids? - 🏘️ What if I buy a house every 2 years? --- ## Tool Architecture ``` wealth_bridge.py ├── calculate_down_payment_power(portfolio_value, cities) │ → 7 Austin markets (ACTRIS) or any cities (Teleport) │ → can_afford_full / conservative / safe + monthly payment │ → rent vs buy comparison + break-even years ├── calculate_job_offer_affordability(salaries, cities) │ → COL-adjusted purchasing power for any two cities worldwide │ → state income tax comparison │ → verdict + breakeven salary needed └── get_portfolio_real_estate_summary() → reads live Ghostfolio portfolio + runs down payment calc property_tracker.py ├── add_property(address, prices, mortgage) ├── get_properties() / list_properties() ├── update_property(id, new_values) ├── remove_property(id) ← soft delete └── get_total_net_worth(portfolio_value) real_estate.py (Austin — real ACTRIS MLS data) ├── search_listings(query, filters) ├── get_neighborhood_snapshot(location) ├── compare_neighborhoods(city_a, city_b) └── get_listing_details(listing_id) teleport_api.py (global — 200+ cities) ├── search_city_slug(city_name) ← resolves to Teleport slug └── get_city_housing_data(city_name) → live Teleport API → normalized schema → fallback if down relocation_runway.py └── calculate_relocation_runway(salaries, cities, portfolio_value) → months to 3mo/6mo emergency fund + down payment → compare stay vs move milestones wealth_visualizer.py └── analyze_wealth_position(portfolio, age, income, ...) → Fed Reserve percentile + retirement projection → what-if: save more / retire earlier life_decision_advisor.py └── analyze_life_decision(decision_type, user_context) → orchestrates wealth_bridge + runway + visualizer → returns verdict + tradeoffs + next steps family_planner.py └── plan_family_finances(city, income, ...) → childcare costs for 25+ cities (US + global) → income impact + alternatives + international comparison ``` --- ## Evals & Verification - **100 fast-passing tests (deterministic, no network)** - Tests by feature: - 60 portfolio tests (holdings, performance, tax, compliance) - 13 property tracker tests (full CRUD cycle, equity, net worth) - 7 real estate strategy simulator tests (user assumptions, presets, disclaimer) - 4 property onboarding tests (add, list, net worth, graceful empty) - 6 wealth gap visualizer tests (Fed Reserve benchmarks) - 4 equity unlock advisor tests (3-option analysis) - 6 family financial planner tests (global childcare data) - Additional async integration tests (wealth bridge, relocation runway, life decision advisor) that require network access - LangSmith tracing active at smith.langchain.com - `/real-estate/log` observability endpoint - Structured error codes on all tool failures (`REAL_ESTATE_PROVIDER_UNAVAILABLE`, `PROPERTY_TRACKER_NOT_FOUND`, `PROPERTY_TRACKER_INVALID_INPUT`, etc.) - All tools registered in LangGraph with conversation history maintained - Feature flag: `ENABLE_REAL_ESTATE=true` activates all real estate + wealth bridge features --- ## New Files Added in This Submission | File | Purpose | | ------------------------------------------- | ----------------------------------------------------------------- | | `agent/tools/teleport_api.py` | Global city COL + housing data (200+ cities) | | `agent/tools/wealth_bridge.py` | Down payment power + job offer COL calculator | | `agent/tools/relocation_runway.py` | Month-by-month stability timeline for any relocation | | `agent/tools/wealth_visualizer.py` | Fed Reserve wealth benchmarks + retirement projection | | `agent/tools/life_decision_advisor.py` | Orchestrates tools into complete life decision verdict | | `agent/tools/family_planner.py` | Financial impact of children for 25+ cities worldwide | | `agent/tools/realestate_strategy.py` | Multi-property buy-and-rent strategy simulator (user assumptions) | | `agent/evals/test_wealth_bridge.py` | Integration tests for wealth bridge features | | `agent/evals/test_relocation_runway.py` | Integration tests for relocation runway calculator | | `agent/evals/test_wealth_visualizer.py` | 6 tests for wealth gap visualizer | | `agent/evals/test_life_decision_advisor.py` | Integration tests for life decision advisor | | `agent/evals/test_equity_advisor.py` | 4 tests for equity unlock advisor | | `agent/evals/test_family_planner.py` | 6 tests for family financial planner | | `agent/evals/test_realestate_strategy.py` | 7 tests for strategy simulator (user assumptions, presets) | | `agent/evals/test_property_onboarding.py` | 4 tests for property onboarding flow | | `agent/data/` | SQLite database directory for property persistence | | `BOUNTY.md` | This file | ## Modified Files | File | Change | | ---------------------------------------- | --------------------------------------------------------------- | | `agent/tools/real_estate.py` | Expose real ACTRIS data_source in responses + TX footer | | `agent/tools/property_tracker.py` | Full SQLite CRUD + analyze_equity_options function | | `agent/graph.py` | Strategy simulator routing + assumption extraction + onboarding | | `apps/client/.../ai-chat.component.html` | Personal tracking chips replacing market data chips | | `apps/client/.../ai-chat.component.scss` | Amber gold (Row 3) + purple/violet (Row 4) chip styling |