We called 11 Phoenix plumbers at 5:44 AM. Four said they could come. One of them was a bot.
Eleven plumbing listings in ZIP 85051 were dialled at 5:44 AM on a Wednesday. Nine calls are recorded as completed, but only six reached a person. Four providers set the availability field, and one of the four was a digital assistant.
It was 5:44 on a Wednesday morning in Phoenix, still dark, and a homeowner with a clogged toilet needed help as soon as possible. Boocki found twenty plumbing listings in ZIP 85051, dialled eleven of them inside two and a quarter seconds, and asked each the same two things: could they handle the job, and how soon could they come. Our own records mark nine of the eleven calls completed. Six of them reached a person. Four providers set the availability field. One of those four was a digital assistant.
- 20
- plumbers foundZIP 85051, 19 names
- 11
- called5:44 AM MST, one burst
- 6
- reached a personof the eleven dialled
- 4
- said they could comeone was a digital assistant
How to read this
Six phrases carry the piece, and the first three are the ones a reader is most likely to collapse into one.
- Recorded as completed: the status on the call row in our own database. It is not a statement that a person spoke. A voicemail box that took a message comes back as completed, because a message was left.
- Reached a human voice: a person at the provider’s end spoke. Not a recorded greeting, not a menu, not a voicemail box, and not a digital assistant.
- Digital assistant: an automated voice that answers questions and quotes prices in conversation, rather than a recorded menu. Call 10 was one, and it said so before the call ended.
- Confirmed they could come: the product’s own availability field was set to true because the provider said so during the call. It is a stricter test than picking up, but it does not distinguish a person from a machine.
- Arrival window: a time the provider said they could be there. A yes without a window is not something a homeowner can plan around.
- Named a dollar figure: a number a provider said out loud on the phone. Not an invoice, not a range, and not an average.
The method is one job, one ZIP code and one frozen search phrase. The ZIP is 85051 (Phoenix); the phrase is emergency plumber toilet clog, filed on the “as soon as possible” setting. The job was created at 5:44:26 AM MST on Wednesday 28 October 2026, and the first call went out 31 seconds later. All eleven calls started between 5:44:57 and 5:44:59, so no provider was reached in a different hour or a different mood.
The claim being tested
Every one of the eleven lines that were dialled had been flagged open by the search at 5:44 in the morning. The search phrase carried the word emergency, the job description said ASAP, and the hour is the one where the claim matters most: a homeowner with a blocked toilet before dawn cannot wait for an office to open. The useful question is not whether the listing said open. It is what the line did when it was called.
Twenty listings came back, carrying nineteen business names. Eleven were dialled, which is a choice rather than a limit: this job did not call the whole list. The nine that were not called are part of the denominator here and could move every number below.
The eleven calls, one by one
Everything below reconciles to this table. No provider is named: the recordings contain the homeowner’s name, the street address and a callback number, and the greetings contain business names and the first names of the people who answered. The call number is the identifier here. The “Confirmed” column is the product’s own availability field, not our reading of the transcript: Yes is a provider who said they could come, and None is a call that never got a yes.
| # | What happened | Length | Reached | Confirmed | Price |
|---|---|---|---|---|---|
| 1 | A person asked who was calling; the call ended before the job was discussed | 0:38 | Human | None | None |
| 2 | A recorded menu, then a voicemail box | 0:53 | Voicemail | None | None |
| 3 | A person gave a one-line reply, and the call ended; the job itself was never discussed | 0:18 | Human | None | None |
| 4 | A person asked for a second; the call ended at the introduction | 0:42 | Human | None | None |
| 5 | A person confirmed the ZIP is served but would only book with the homeowner directly | 3:19 | Human | Yes | None |
| 6 | A virtual assistant gave a fee schedule, then transferred to a person who offered 9 AM | 4:09 | Human | Yes | $39 + $149 |
| 7 | No answer | 0:00 | None | None | None |
| 8 | A person offered tomorrow 8 to 10 AM, no visit fee, and an estimate on site | 4:30 | Human | Yes | None |
| 9 | A recorded menu, then a voicemail box | 1:07 | Voicemail | None | None |
| 10 | A digital assistant gave a drain-cleaning range and two same-day windows | 2:54 | Digital assistant | Yes | $175–$225 |
| 11 | A recorded greeting played, then the line ended | 0:04 | None | None | None |
Four rows need a note before the summary. Calls 2 and 9 went to two different listings and heard the same recorded greeting, then reached the same voicemail box, which is why the two rows read identically. Calls 5 and 10 also carried the same business name on two listings, but call 5 reached that business and call 10 reached a separate company its greeting names as the after-hours referral partner, so the two calls did not reach the same front desk. Call 3 is the shortest human call in the job: the person answered with a one-line reply that reads as the end of a different conversation, the job was never discussed, and the availability field stayed empty. Call 11 played a greeting and then the line ended, which is why its status is not completed even though there are four seconds of audio.
The Price column is a None for call 8 even though that provider said there is no visit fee. A waived fee is not a price for the repair, and the repair itself was left for an on-site estimate. Call 10 is the only row with a range, and that range was for drain cleaning, not for clearing a toilet. Call 6 is the only row with a fee schedule, and both figures are fees attached to the hour, not a price for the work.
The funnel
The same eleven calls, narrowed nine times. Every row names the calls it counts, so nothing here is an orphan number.
| Step | Calls | Count | Share |
|---|---|---|---|
| Plumbing listings found | n/a | 20 | n/a |
| Called | 1 to 11 | 11 | 100% |
| Recorded as completed | all but 7, 11 | 9 | 82% |
| Reached a human voice | 1, 3, 4, 5, 6, 8 | 6 | 55% |
| Confirmed they could come (field) | 5, 6, 8, 10 | 4 | 36% |
| A human confirmed they could come | 5, 6, 8 | 3 | 27% |
| A human gave an arrival window | 6, 8 | 2 | 18% |
| A human could come the same day | 6 | 1 | 9% |
| Named a dollar figure | 6, 10 | 2 | 18% |
| Named a price to clear the toilet | None | 0 | 0% |
The 82% is the number an ordinary call log prints as answered, and it is the least useful row here: it counts a voicemail box the same as a four-minute conversation. The 36% is the row the product would put on a dashboard, and it is one higher than the human count because the field records a digital assistant as a yes. The 27% is the tier a homeowner can act on, the 18% is the tier they can plan around, and the 9% is the only same-day human promise in the whole job. The dollar-figure row is a branch rather than a funnel step: two calls named a number, and neither number answers the question the job asked.
The nine that counted as completed
The board’s completed count is accurate for what it measures: a call that produced a result. It is not a human count, and the gap is the whole reason this section exists.
| What answered | Calls | Count | Share of the nine |
|---|---|---|---|
| Human voice | 1, 3, 4, 5, 6, 8 | 6 | 67% |
| Digital assistant | 10 | 1 | 11% |
| Voicemail box | 2, 9 | 2 | 22% |
| Total recorded as completed | all but 7, 11 | 9 | 100% |
| Not completed (no answer) | 7, 11 | 2 | n/a |
Six humans, one digital assistant and two voicemail boxes add to nine. The six humans are not all alike either. Calls 1 and 4 ended at the introduction, and call 3 never settled whether the person was answering this job at all. Only calls 5, 6 and 8 reached a person who engaged with the request enough to set the availability field. That is why “reached a person” and “talked to someone about the job” are different claims, and why the funnel does not treat all six the same.
The four yeses, and the one that was a machine
Four calls set the availability field. Three came from people. One came from a digital assistant that had already answered the pricing question, offered two windows and named the day. It was, by the standards of the field, a perfectly good yes.
| # | Who answered | What they offered | Arrival | Money |
|---|---|---|---|---|
| 5 | Person | Confirmed the ZIP is served; would only book with the homeowner directly | None | None |
| 6 | Person, after a virtual assistant | Confirmed the job; a technician would give the repair estimate on site | 9 AM | $39 dispatch + $149 after hours |
| 8 | Person | Confirmed the job; no visit fee; exact cost on site | Tomorrow, 8 to 10 AM | None |
| 10 | Digital assistant | Confirmed the job; two windows; no trip charge | Today, 8 to 12 or 12 to 4 | $175–$225 drain cleaning, $225 mainline |
“For today, we’ve got openings like eight to twelve or twelve to four, and there’s no trip charge at all.”
That is call 10, the digital assistant. It gave the two same-day windows the job was looking for, and it did so in the same conversational register as the people on calls 6 and 8. Near the end of the call it also said it was a digital assistant, which is the only reason we can label the row as a machine instead of a person. The availability field has nowhere to put that distinction, so it records the assistant exactly as it records a human: a provider that said yes.
That matters in both directions. It would be unfair to count the assistant as a human answer, because no person at that business ever spoke. It would also be wrong to discard the answer, because a digital assistant that can see the schedule is a real front door to the business, and its two windows may well be the business’s real availability. What the field cannot tell a homeowner is which kind of yes they are looking at, and in this job the machine supplied one of the two same-day offers.
Call 6 is the one human same-day answer, and it took four minutes and a transfer to get there. The first voice was a virtual assistant with a fee schedule; the person who came on after the transfer gave the 9 AM window and said the repair estimate would wait for the technician. That is the most useful answer in the job: a person, a time, and an honest limit on what could be priced before the visit. Call 8 is the other human window, but it is tomorrow, not today. Call 5 is a human yes with no time at all.
So the four yeses are not four equal answers. There are three human yeses, two human windows, one human same-day window, and one machine-supplied same-day offer. A dashboard that prints four has counted all of them as the same thing.
The seven that never confirmed
Seven of the eleven calls failed to set the availability field, in five different ways. Listed in call order so they scan against the master table.
| # | Failure | Length | What the recording shows |
|---|---|---|---|
| 1 | Ended at the introduction | 0:38 | A person asked who was calling, and the call ended before the job was discussed |
| 2 | Voicemail | 0:53 | A recorded menu, then a voicemail box |
| 3 | Job never established | 0:18 | A person gave a one-line reply, and the call ended; the job was never discussed |
| 4 | Ended at the introduction | 0:42 | A person asked for a second, and the call ended |
| 7 | No answer | 0:00 | Nothing answered |
| 9 | Voicemail | 1:07 | A recorded menu, then a voicemail box |
| 11 | Greeting only | 0:04 | A recorded greeting played, then the line ended |
Three of the seven reached a person (calls 1, 3 and 4) and still produced nothing a homeowner could use. Two reached a voicemail box (calls 2 and 9), and two produced no conversation at all (calls 7 and 11). The failure table and the human table overlap on purpose: a person picking up is not the same event as a person committing to the job, and the first three rows are the evidence.
What this cost, and what each answer cost
The job’s own ledger holds one charge: $5.55, described as nine calls and 18.5 minutes at $0.30 a minute. Everything else in this table is read from the call rows.
| Measure | Value |
|---|---|
| Plumbing listings found | 20 (19 names) |
| Calls placed | 11 |
| Talk time | 18 min 34 s |
| Longest call | 4:30 (call 8) |
| Shortest call | 0:00 (call 7) |
| Reached a human | 6 |
| Human arrival windows | 2 |
| Human same-day windows | 1 |
| Dollar figures named | 2 |
| Toilet prices named | 0 |
| Total charged | $5.55 |
| Average per call placed | $0.50 |
| Cost per human reached | $0.93 |
Talk time is the sum of the Length column in the first table: 0:38 + 0:53 + 0:18 + 0:42 + 3:19 + 4:09 + 0:00 + 4:30 + 1:07 + 2:54 + 0:04, which is 18 min 34 s. The ledger rounds that to 18.5 minutes and bills it at $0.30 a minute: 18.5 times 0.30 is 5.55. The average is $5.55 divided by the eleven calls placed, and the cost per human is $5.55 divided by the six calls where a person spoke. These are our own call costs, not money a provider named.
What we would change next time
- Record whether the yes came from a person or a machine. The availability field cannot tell the difference, so call 10 counts exactly like call 6. A second field would change the headline from four yeses to three human yeses, and from two same-day offers to one.
- Separate a yes from a window.Call 5 is a yes with no time attached. A homeowner cannot act on “we serve that ZIP” alone, and the board should not show it beside “9 AM” as though the two were the same commitment.
- Dial the whole list, and deduplicate it first. Nine of the twenty listings were never asked. Two of the eleven calls reached the same voicemail box under different listings, and two more carried the same business name, so eleven calls covered fewer than eleven independent front desks.
- Ask for a toilet price, not a drain price. The only range in the job came from a digital assistant and priced drain cleaning. The only human money was a fee schedule attached to the hour. Neither is what the job asked for.
- Keep the early hour, but run more of them. 5:44 AM is the earliest hour in this series, which makes it a useful test of the emergency claim. It is still one hour in one ZIP code, and the nine uncalled listings could move every number.
Why publish the whole funnel
A summary that said “four Phoenix plumbers said they could come” would be true and would hide the story. It would hide that eleven lines were dialled to find those four. It would hide that our own board calls nine of the eleven completed, because a voicemail box and a digital assistant each count as a result. It would hide that one of the four yeses came from a machine, and that the one human same-day offer took four minutes, a transfer and a second person to produce. And it would hide that the only dollar figures in the job were a $39 plus $149 fee schedule and a drain-cleaning range, neither of which is a price for the toilet. The value of calling eleven plumbers in one burst at 5:44 in the morning is not the number at the end of the funnel. It is knowing how many lines were actually open, which ones had a person on them, which yeses were a time and which were only a tone, and how carefully a number has to be read before anyone treats it as the price.