Good, confirmed. Here's the updated Devpost with those two additions woven in naturally:


Inspiration

Homeowners across the country are sitting on the single biggest lever for cutting both their utility bills and their carbon footprint (aka their own house) and almost none of them know how to pull it. Federal, state, and utility-level incentive programs for heat pumps, solar, insulation, and electrification add up to billions of dollars, but that money is locked behind a maze of PDFs, eligibility rules, and acronyms (IRA, HEAR, HEEHRA, EEHIC) that change by state, utility, and income bracket. We kept hearing the same story: someone wants to go solar or swap their gas furnace for a heat pump, gets three contractor quotes that all disagree, can't figure out which rebates they actually qualify for, and gives up. We wanted to build the tool we wished existed. Type in your address, and walk out with an actual plan: what to upgrade, in what order, what it costs after every incentive you qualify for, and what to do first.

What it does

RetroFi turns a home address into a personalized, fully-costed home electrification roadmap:

  • Property lookup: pulls real property data and rooftop solar potential just from an address.
  • Smart questionnaire: asks only what's needed (home type, square footage, current systems, utility provider) to fill the gaps property data can't answer.
  • Incentive matching engine: cross-references a knowledge base of federal (IRA/HEEHRA/EEHIC), state, and utility incentive programs against the homeowner's profile to find every rebate and tax credit they actually qualify for, with citations back to the source.
  • Retrofit cost calculator: computes real costs, post-incentive costs, utility bill savings, and carbon savings for heat pumps, attic insulation, air sealing, heat pump water heaters, and solar: using local utility rates and climate-zone-aware energy modeling.
  • Multi-year plan optimizer: models which upgrades to do in which year as a constrained optimization problem (install dependencies as a DAG, annual budget as a hard constraint, cost/carbon savings as the objective) to produce the sequence and timing that gets a household the most value over multiple years, not just the cheapest single upgrade.
  • AI-generated action plan: an LLM synthesizes the raw numbers into a plain-English summary and a sequenced, step-by-step timeline (what to do first, why, and how to claim each incentive), plus nearby vetted contractors.
  • Dashboard & timeline UI: a clean React frontend that takes a user from "type your address" to "here's your 18-month electrification plan" in a few clicks.

How we built it

  • Backend: Python + FastAPI, with a service-oriented architecture. Separate modules for property data, solar, utility rates, climate zones, retrofit calculations, incentive indexing/search, sequencing/timeline optimization, and contractor lookup.
  • Incentive knowledge base: we scraped and parsed real incentive program documents (IRS pages, DOE/HEAR program PDFs, state energy office guidance) per state, ran them through an LLM-based schema extractor to turn unstructured policy text into structured, queryable incentive records, and indexed them for semantic retrieval at query time.
  • Local LLM for sustainability: instead of routing every incentive-extraction and summarization call to a hosted model, we run Qwen2.5 locally via Ollama (qwen2.5:7b for structured extraction, a lighter qwen2.5:0.5b for summarization) — cutting the energy and carbon cost of the AI layer itself, which felt right for a tool whose entire purpose is reducing energy waste.
  • Multi-year timeline optimizer: the sequencing engine treats "what upgrade in what year" as a constrained optimization problem — decision variables are the year each upgrade is scheduled, constraints are install dependencies (DAG) and a per-year budget cap, and the objective is a focus-weighted score (cost vs. carbon savings) — searched over the feasible assignment space to find the multi-year plan that maximizes household value.
  • External data integrations: RentCast (property data), Google API (rooftop solar potential, geocoding), and NREL (utility rates) for incentive extraction, plan summarization, and natural-language action steps.
  • Frontend: React + Vite SPA (Landing → Property Verification → Questionnaire → Dashboard → Timeline Plan / Upgrade detail pages) talking to the backend over a typed REST API.
  • Deployment: Dockerized backend on Google Cloud Run, frontend on Firebase Hosting, secrets in Secret Manager, and a Cloud Build pipeline for CI/CD on every push to main.

Challenges we ran into

  • Unstructured, inconsistent policy data: every state and utility publishes incentive rules in a different format (PDF tables, prose, IRS legalese). We had to build an LLM-assisted extraction pipeline just to normalize this into a schema we could query reliably and cite accurately.
  • Numbers that have to be trustworthy: a "savings calculator" is worthless if the math is wrong, so we kept the cost/savings engine deterministic and source-cited, and used the LLM only for synthesis and explanation.
  • Stacking incentives correctly, across years: federal, state, and utility programs interact (income caps, one-per-household limits, annual resets, mutually exclusive programs), so the multi-year optimizer had to model eligibility and budget constraints simultaneously, not just rank upgrades by dollar amount.
  • Running a capable model locally: getting Qwen2.5 to reliably extract structured incentive schemas via Ollama, on consumer hardware, took real prompt and pipeline tuning, since local models are far less forgiving of ambiguous prompts than hosted frontier models.
  • Sparse property data: not every address returns complete data from RentCast API, so we designed the questionnaire to dynamically fill in only the gaps rather than re-asking everything.
  • Latency vs. accuracy: LLM calls for every plan generation needed caching and tight prompt design to keep the experience fast.

Accomplishments that we're proud of

  • A working end-to-end pipeline. Address in, fully costed and sequenced retrofit plan out, with real external data, not mocked numbers.
  • A genuinely useful incentive-matching system that reads real government and utility documents and turns them into structured, cited, queryable data.
  • A multi-year plan optimizer that treats home electrification as an actual constrained optimization problem instead of a flat checklist.
  • A cost/savings engine that accounts for local utility rates, climate zone, and carbon intensity, not generic national averages.
  • Running our LLM workloads locally with Ollama/Qwen instead of a hosted API, keeping the AI layer itself aligned with the project's sustainability goals.
  • Shipping a deployed, publicly accessible product (Cloud Run + Firebase) within the hackathon timeframe, not just a local demo.

What we learned

  • Retrieval-augmented, citation-backed LLM design is essential once "AI gives you a number" has real financial consequences for the user.
  • The hardest part of "AI for home electrification" isn't the AI; it's the data engineering: cleaning, structuring, and keeping policy data current.
  • Sustainability can (and should) extend to your own tech stack: a local, right-sized model can replace a hosted call for a lot of structured-extraction work, at a fraction of the energy cost.
  • Good UX for a complex financial decision means asking fewer questions, not more. Every field you can infer from property/solar data is a field a homeowner doesn't have to think about.

What's next for RetroFi

  • Expand state/utility coverage: scale the incentive knowledge base beyond our initial states to all 50 states and the major utilities within them, with a pipeline to keep it current as programs change.
  • Contractor marketplace integration: turn "nearby contractors" into real quote requests and booking, closing the loop from plan to installation.
  • Financing-aware plans: factor in financing options (PACE loans, on-bill financing, 0% green loans) into the cost timeline, not just upfront cost and incentives.
  • Smarter multi-year optimization: extend the scheduling problem to a full integer/linear program as the upgrade catalog grows, so it scales past brute-force search while still respecting dependency and budget constraints.
  • Continuous monitoring: after a retrofit is installed, track actual utility bill savings against projections to validate (and improve) our models over time.
  • Multi-family & landlord/tenant flows: extend beyond single-family homes to multifamily buildings, where split incentives between owners and tenants are a major barrier to electrification today.
Share this project:

Updates