Estimating engine, website, and lead pipeline
A roof measured and priced from satellite data
- Client
Volks Roofing- Trade
- Roofing
- Place
- Vancouver, Washington
- Live site
- volksroofing.com

The problem
After a storm, homeowners want a number the same day. They look in the evening, when no office is open, and a site that only says to call for an estimate sends them on to the next roofer. The job was to measure the roof from satellite imagery and put a priced estimate in front of the homeowner while they were still on the page.
How it runs
Goes in
- An address, typed on the home page
- The roofer’s own rate per square
- Aerial and solar data for that roof
What happens
- The address is matched to one building
- Each roof plane is read, with its pitch, the way it faces, and its area
- The area becomes squares, and waste is added for a cut up roof
- The order is rounded up to one bundle
Comes out
- A price range on the page, before the contact form
- An email to the roofer, with the address, the measured roof, and the source
- A row on his dashboard for every run
What I built
The satellite roof quote
The homeowner types an address on the home page. The roof is measured from aerial and solar data, and a range is priced on the roofer’s own rate per square. The figure shows before the contact form, and no contact details are needed to see it. The roofer gets an email the moment a request is sent, with the address, the measured roof, and where the lead came from. Every run of the tool also shows on his dashboard.
A service area check
The same page confirms that the address is in the service area. The price, the coverage, and the booking happen in one visit.
A quote wizard and the email it writes
A homeowner who wants a person takes four steps. The wizard asks the kind of project and how soon, offers a site walk, and lets them pick the day. The roofer gets an email the moment it is sent, with the town, the service, the roof size, the day, and where the lead came from. One tap adds the site walk to his calendar, calls the homeowner, or opens a reply.
Town pages and project write-ups
The site has 28 pages. Four are service pages and eleven are town pages across Clark County and the Portland metro, and finished roofs are written up by town. A storm season search for a town lands on a finished roof there.
Licenses on the first screen
The company is licensed in Oregon and Washington, and both license numbers are on the first screen. A homeowner can check them before reading another word.
How it is built
The address is matched to a single building. A partial address is sent back with a request for the house number, so the price is never for the wrong roof.
The engine reads every roof plane from aerial and solar data, with its pitch, the direction it faces, and its area. A plane under two square meters is a dormer cheek or noise, and it is left out.
The area becomes squares, and the pitch is averaged by area. Waste is added by how cut up the roof is, and the order is rounded up to a third of a square, which is one bundle. A steep roof is priced with more labor than a low one of the same size.
The arithmetic is kept apart from the network call, so it runs as a test on every build. The measuring itself is rate limited.
The result
A homeowner in Vancouver gets a measured price at 9 PM and the roofer gets the call at 9:01.
Pages
Four of the 28 pages on volksroofing.com. Each one opens.
Screens








