Solar Surfers
GitHub

A Computing for Good project built at the Colorado School of Mines.

Helping Colorado homeowners understand whether rooftop solar is worth it.

We built a machine learning model that predicts how much energy a rooftop solar system would generate at a Colorado home and how long it would take for the installation to pay for itself.

The model uses 19 years of weather and solar data, including more than 2.1 million hourly observations. Users can enter an address or select a location on the map to estimate solar output, long-term savings, and expected payback time.

Find my home See how accurate it is

Beyond Sunroof

What this project adds that Project Sunroof does not

Google Project SunroofThis project
Where it worksOne address at a timeEvery point in Colorado: 150 simulated sites and a state-wide map, so towns and regions can be compared
Machine learningNot exposedAn hourly forecaster trained on 2.1 million hours of weather, tested on a year and on ten sites it never saw
How sure it isOne numberA best estimate and a conservative one (P50 and P90), from 19 real weather years and 5,000 simulated futures

Sunroof still wins on roof geometry: it models every roof plane and nearby trees in 3D. This project uses the location and the weather, and lets you set the system size.

Altitude is Colorado's solar advantage: thinner air and cooler panels. Each dot is one of the 150 simulated sites.

Where the model earns its keep: hourly forecast error by month in 2024, the learned model against the clear-sky physics baseline. Winter storms and snow are where physics alone fails.

Solar potential across Colorado

Expected yield of a south-facing rooftop array, kWh per kW installed per year

Median over 2005 to 2023 at the best fixed tilt for each site. Six-nearest-neighbour inverse-distance interpolation of 150 simulated sites onto a 0.1 degree grid, leave-one-out error about 13 kWh per kW (0.7 percent, R² 0.93); switch to the uncertainty layer to see where neighbouring sites disagree most. Hover to read a value, click a spot or type an address to send it to the advisor.

Homeowner advisor

Will solar pay for itself on this roof?

What these terms mean
kWh
A unit of energy. A typical Colorado home uses about 700 kWh a month.
kW, system size
How much power the panels make in full sun. A 6 kW system is roughly 15 panels.
Specific yield, kWh per kW
Energy each installed kilowatt produces in a year. It depends only on the location and the roof, so it lets you compare places.
P50 and P90
The middle estimate and the cautious one. P90 is beaten in nine years out of ten; lenders use it.
Net cost after credit
What you pay once the 30 percent federal tax credit is taken off the installed price.
Simple payback
How many years until the savings on your utility bill have repaid that net cost.
NPV, net present value
All future savings minus the cost, counted in today's dollars using the discount rate. Positive means the panels beat keeping the money.
IRR, internal rate of return
The yearly return the panels earn on your money, to compare with a savings account or an index fund.
Cost of energy, LCOE
What each kWh from the panels costs you over their life. Compare it with the price the utility charges.
Year 25 output
Panels slowly lose output, about half a percent a year, so year 25 makes less than year one.
Utility price growth
How fast the electricity price rises each year. Higher growth makes solar pay back sooner.
Discount rate
How much less a dollar next year is worth to you than a dollar today; used for NPV and the cost of energy.
Best tilt
The roof pitch that collects the most sun over a year at this location.

Forecasting model

Day-ahead hourly output, hour by hour, at sites the model has never seen

Target: AC power of the reference 6 kW array. Trained on 2019 to 2022, tuned on 2023, scored on 2024. Ten grid sites were withheld entirely so the last column measures transfer to new locations, the property that matters for a state-wide map.

One week in June 2024 at Golden. Grey is the clear-sky ceiling from physics, black is what the array produced, amber is the forecast made the day before.

Daily energy in 2024 at Golden, forecast against actual. Each dot is one day.

What the best model leans on. Permutation importance: how much hourly RMSE rises when a feature is shuffled.

What these terms mean
Day-ahead forecast
A prediction made the day before, using tomorrow's weather forecast and what the array did today.
RMSE, % of capacity
The typical size of an hourly miss, as a share of the array's maximum output. Lower is better.
R²
How much of the hour-to-hour variation the model explains, from 0 to 1.
Daily energy MAPE
The average percentage miss on a whole day's energy, the number a homeowner would notice.
Persistence
The simplest guess: tomorrow will be like today.
Clear-sky persistence
Physics plus yesterday's cloudiness: the best guess without machine learning.
Skill
How much of the baseline's error the model removes; 50 percent means half the error is gone.
Unseen sites
Ten locations kept out of training entirely, to prove the model works in places it never learned from.
Permutation importance
How much worse the model gets when one input is scrambled; the inputs that hurt most matter most.

Ranked sites

Colorado's named locations, ordered by bankable yield

P90 is the yield exceeded in nine years out of ten, the number a lender would use. Click a header to sort; click a row to load it into the advisor.

Method