Inspiration
Winter break, I was researching Iceland for an upcoming trip when I stumbled across a statistic I couldn't scroll past: 90% of Icelandic homes run on geothermal energy.
What in the world is geothermal energy? I thought.
What I found blew me away. The temperature underneath Earth's surface remains stable year-round. Geothermal systems tap into that stored energy, moving heat into your home in winter and pulling it out in summer. Clean, renewable, and available beneath every property in the country, at a fraction of what conventional heating costs.
And yet, only 1% of American homeowners use it. Not because it doesn't work. Not because it costs too much. Simply because nobody told them it existed.
I built GeoSense to change that. A platform that pulls real government data, runs it through a proprietary scoring algorithm, and delivers a personalized geothermal feasibility report for any US property in under fifteen seconds. Free. With the right push, I believe GeoSense can help address America's ongoing energy crisis.
What Does It Do?
GeoSense operates by first having the user type in their US property address or a location they're looking to install a geothermal pump. From there, GeoSense loads data from the USGS (United States Geological Survey) for soil information, NOAA (National Oceanic and Atmospheric Administration) for climate data, and the EPA eGRID to calculate emissions reductions. Our algorithm uses this information to determine the best geothermal system for the said location. Afterwards, this information is fed to Gemini which creates a personalized report for the consumer to understand.
The report covers:
- Recommended system type — horizontal closed-loop, vertical closed-loop, or open-loop, selected by our weighted geological scoring algorithm
- System specifications — trench length and burial depth for horizontal systems, borehole count and depth for vertical systems
- Full financial breakdown — gross installation cost, IRA 30% federal tax credit, state rebates, net cost, annual savings, payback period, and 25-year lifetime savings
- Carbon impact — annual CO₂ offset calculated using EPA eGRID regional emission factors, with tree-year and flight equivalencies for human-scale understanding
- Local installers — IGSHPA-certified contractors near the property
How We Built It
We started by building a data pipeline that queries three authoritative government databases by zip code. USGS provided subsurface soil data including thermal conductivity, bedrock depth, groundwater depth, and drilling difficulty. NOAA provided climate data including Heating Degree Days, Cooling Degree Days, and average ground temperature. EPA eGRID provided regional carbon emission factors by state.
That data feeds into a proprietary weighted scoring algorithm that evaluates three candidate geothermal systems (horizontal closed-loop, vertical closed-loop, and open-loop), scoring each 0 to 100 based on the property's geological profile. The highest scorer wins, with confidence determined by the gap between first and second place:
$$\text{Confidence} = \begin{cases} \text{High} & \Delta S \geq 20 \ \text{Medium} & 10 \leq \Delta S < 20 \ \text{Low} & \Delta S < 10 \end{cases}$$
All financial calculations are hardcoded in TypeScript before Gemini is ever called. Gemini is architecturally forbidden from calculating financials. If its output deviates from our values by more than 10%, the backend overwrites it. This eliminates hallucination risk entirely. The core sizing formula:
$$\text{tons} = \left\lceil \frac{\text{home_size_sqft}}{550} \right\rceil$$
From tonnage, gross cost, federal credit, state rebates, net cost, annual savings, and payback period are all derived using verified industry formulas.
The frontend is built on Next.js 14 with Tailwind CSS, deployed on Vercel. Reports are rendered as a 5-section interactive stepper with a Google Maps satellite overlay showing the exact system footprint on the property. The backend runs entirely on Next.js API routes, serverless functions that chain the data pipeline, scoring algorithm, and Gemini call in a single request. All reports are stored in Supabase, seeded with 500+ zip codes of real USGS and NOAA data.
Challenges We Ran Into
One of our biggest challenges was rendering geometrically accurate system overlays on satellite imagery. Dense urban properties have tight lot lines requiring precise polygon placement. A few meters off and the overlay falls on a neighbor's property or a building entirely. This is especially difficult using the Google Maps JavaScript API, which lacks native parcel boundary data and cadastral lot line access. Without property boundary APIs, we had no programmatic way to know where one lot ends and another begins.
To navigate this we built a custom placement algorithm in LotDiagram.tsx that infers lot
boundaries using urban density detection, street orientation offsets, and hardcoded bounding
boxes for major metro areas. For suburban properties it calculates street alignment
mathematically. The result is an overlay that lands accurately across property types from
dense Manhattan blocks to open New Jersey lots.
Running a full data pipeline under serverless constraints was equally demanding. Chaining a
USGS soil lookup, NOAA climate query, weighted scoring algorithm, and a Gemini LLM call in
sequence, all within Vercel's serverless timeout window, required careful architectural
decisions. We solved this with parallel data fetching using Promise.all() for the Supabase
queries and optimized prompt design to minimize Gemini response time, keeping the full
pipeline under 15 seconds.
Accomplishments We're Proud Of
End-to-end integration: Built a working pipeline that bridges three government databases, USGS, NOAA, and EPA eGRID, with a proprietary scoring algorithm and Gemini AI into a single real-time geothermal intelligence report, delivered in under 15 seconds.
Functional precision: Engineered a financial calculation system that is architecturally protected against AI hallucination. Every cost, credit, rebate, and payback figure is computed in TypeScript and validated before the report reaches the user.
Scalable foundation: Structured GeoSense on a serverless Next.js and Supabase architecture seeded with 500+ zip codes of real geological data, designed to scale from individual homeowners to institutional and municipal deployments.
Impact-driven design: GeoSense wasn't built for a gig. It was built to solve a real information asymmetry problem holding back one of the most efficient clean energy technologies available. If even one homeowner installs a geothermal system because of this report, that's a meaningful outcome.
What's Next for GeoSense
With the right funding and infrastructure, GeoSense can scale from a hackathon prototype into a nationally deployable clean energy tool.
The most immediate priority is expanding the zip code database to cover rural America. Our current Supabase seed covers 500+ zip codes concentrated in the Northeast, but places like rural Kansas, Wyoming, and the Mountain West, which ironically sit on some of the most geothermally favorable geology in the country, are underrepresented. We'd automate USGS and NOAA API ingestion to fill those gaps programmatically rather than manually.
Better lot boundary precision is the next engineering priority. The Google Maps JavaScript API lacks native parcel boundary and cadastral data access. With access to APIs like Regrid or Loveland, which provide real property boundary data at the parcel level, we could place borehole and trench overlays with survey-grade accuracy rather than algorithmic inference.
On the impact side, we want to pursue partnerships with environmental organizations and local governments to deploy GeoSense as a policy planning tool. City councils, county energy offices, and NGOs targeting clean energy adoption could use GeoSense to identify neighborhoods with the highest geothermal potential, prioritize grant distribution, and run community awareness campaigns.
Built With
- epa-egrid
- gemini
- google-geocoding-api
- google-maps-javascript-api
- google-places
- next.js
- noaa-climate-data
- node.js
- postgresql
- react
- supabase
- typescript
- usgs-national-database
- vercel
Log in or sign up for Devpost to join the conversation.