← Back to selected work

MyRoofRisk

Storm-risk intelligence for roofing

Live

An address box that turns a decade of storm history into a risk score, an instant quote, and a routed lead.

Role
Sole architect & builder
Status
Live

The problem

Hail and wind are the biggest threat to a roof, but whether a specific address has actually taken damage worth acting on is surprisingly hard to answer. The evidence exists. It just lives in scattered places that were never meant to talk to each other, and reconciling it by hand is slow and inconsistent. So homeowners and roofers end up guessing.

What it does

You enter an address. MyRoofRisk runs it through a proprietary scoring pipeline that weighs a decade of severe-weather history against independent property-level signals, and returns a 0–100 storm-damage risk score. From there it generates an instant quote and a downloadable PDF report, and routes the resulting lead. How the score is computed is the moat, so the details stay off the internet.

  • A decade of severe-weather history, resolved to the address
  • Independent property-level signals that corroborate the storm record
  • A proprietary model that reconciles it all into one defensible number
  • 0–100 risk score → instant quote → PDF report → routed lead

How it was built / my role

Sole architect and builder. A React and TypeScript front end sits over an Express API and a Postgres database on Neon, with Clerk handling authentication. The hard part is the scoring pipeline, which normalizes unrelated data sources into one number a roofer can stand behind. Wrapping that in a funnel that produces a quote, a report, and a qualified lead took as much product judgment as engineering. I designed and built all of it.

Stack
React / TSExpressPostgres·NeonProprietary data pipelineClerk