Case 01 · Rancho Roofing · San Diego
A roofing company in San Diego. New website, a lead form that reaches the inbox, and a report built to refuse flattering numbers.
The site
Nobody looks for a roofer at a desk. So the site is shown the way a customer meets it. The phone scrolls. The five cards beside it point at the decisions that matter, and the phone follows as you read.
Under the hood
The job
Most small business owners cannot answer one question about their website. Did it make the phone ring?
They get a report full of percentages every month and they still cannot answer it. The report is not built to answer it. It is built to look like progress.
So I built the website and the answer at the same time. The site is the smaller half of the job.
What I found first
The website and the Google listing rang two different numbers.
Somebody who found the company on the map called one line. Somebody who found it on the site called another. Nobody had noticed, because nothing was watching.
Both now ring (619) 847-7663. That fix took an afternoon. It is the least clever thing on this page and probably the most valuable.
The part I care about
Most website reports lead with a percentage. Traffic up 300%. That is three visits instead of one.
The report I built refuses to do that. Two rules are written into the code, not into a promise.
If one of the data sources fails to answer, the report prints MISSING in red. It never prints 0. A zero reads as "your traffic collapsed", and that is a lie told by accident.
A percentage only appears after 100 visits and 10 contact attempts. A trend only appears after 12 reports. Below that there is not enough to divide, so nothing is divided.
It runs by itself, once a week and once a month, and lands at a private address the owner bookmarks. Nobody has to remember to make it. Visits from outside the United States are dropped before anything is counted, so my own testing never shows up as his customers.
Printed on the report itself
We do not print a conversion rate yet. At that size one extra tap moves a percentage by several points, so the percentage would invent a story.
We can see that a person pressed the call button. We cannot see whether the call connected, how long you spoke, or whether it became a job. No website tool can.
The second one is the sentence most reports leave out. A website tool stops at the tap. Everything after the tap is the owner's to answer, so the report asks him for it once a month, in one sentence.
A tap on a phone button is not a call, and a call is not a job. The report says tap, because tap is what happened.
The receipt
MeasuringThis is where a case study normally shows results.
There are none. The site is live and the measuring system is running, but nothing has run long enough to mean anything.
I am not going to put a percentage on a handful of visits. That is the exact thing the report was built to refuse, and I am not going to break my own rule on my own website.
This block fills in as the reports come in. Lines get added under the first one. The first one never gets deleted.
Questions people ask about this build
A new phone-first website in plain HTML. A lead form that sends from the company's own domain, so it lands in the inbox. Call buttons that each report their own position on the page. Live Google reviews. And a weekly report that counts visits and contact attempts without inventing percentages.
Count taps on the call button, and count which button was tapped. Do not print a rate until there are at least 100 visits and 10 contact attempts. Below that, one extra tap swings a percentage by several points. A tap is not a call, and a call is not a job, so the report asks the owner once a month what happened after the tap.
The site is new. Nothing has run long enough to mean anything. The report was built to refuse flattering numbers, so this page follows the same rule. Results get added as lines under the first entry when they are real. The first entry is never deleted.
If you run a small business and cannot answer whether your website makes the phone ring, that is the problem I like working on.