Measured 25 August to 6 September 2026

The WDIFY
Machine

One plain text, no link. The owners who reply YES get a call from Mia. She offers to build the site first, free, live in 24 hours, $450 once and only if they keep it, then books two real slots on your calendar. Every call is recorded and graded before anyone touches a script.

1,319 Scrubbed, dial-ready businesses in the table today. The last version of this deck had 599 and called supply the constraint. Supply is now a scrape run.

Three things flipped since the last version

Each correction stays in this document. The corrections are the reason to trust the rest.

599 1,319
Dial-ready businesses. We projected 4,200 to 12,600 from a wider scrape. The scrape returned 7,564 businesses and 1,319 survived the scrub.
Link first
Text first
None of the 1,319 has a site built yet. So the first text carries no link and makes no claim. The site gets built after the YES, and the link follows once it is real.
Orlando 94%
Orlando 8.4%
The August sample of 17 to 28 businesses per metro made Orlando the best city. The full scrape puts it near the bottom. Mid-size metros lead.
The flow, as it runs today

Text first. No link. The link comes after the YES.

Path A is the flow for every lead right now. Path B is the pre-built site reveal, and it phases in one lead at a time, only when a real site for that business passes a check at the moment of sending.

The old flow texted a link first. That only works when the site exists, and today it does not for any of the 1,319. Texting a dead link burns the sending number and the brand in one afternoon. So the cold text says who we are and what we do, nothing more. A YES routes to Mia on the cold script: build first, free, live in 24 hours, $450 once and only if they keep it.

The gate for Path B is strict on purpose. The page has to be live and show that business's own name, checked again right before the text goes out. Fails closed. A lead that started on Path A never gets switched to a link mid-stream.

Six segment-specific cold texts, each under 200 characters, no link in any of them. Sending window 9 to 18 in the owner's own time zone, nothing outside it. STOP is permanent and checked before every send.

Send-time check is a real site live for this exact business? NO all 1,319 today YES PATH A PATH B Cold text no link, no claim Owner replies YES consent trail starts here Mia calls back cold script, right trade Build first. Free. live in 24 hours $450 once, only if kept Two real slots offered booked on your calendar confirmation texted Text with the live link their name on the page Owner replies YES looking at the site Mia calls back warm script, real link Walkthrough booked same calendar, same text same recording Fails closed. A Path A lead is never switched mid-stream.
The check is the only thing that decides the path. Nobody promises a site that is not live.

807 queries. 7,564 businesses. 1,319 you can dial.

The scrape ran 30 trades across 27 metros. Rows are not businesses, so everything is counted by place, then deduplicated again by phone: 7,564 businesses, 7,400 distinct phones behind them. Then every candidate went through the do-not-call and litigator lists before it was allowed near the sender.

  • 807Maps queries billed, 30 trades by 27 metros
  • 7,564unique businesses after 409 duplicate rows collapsed
  • 2,029pitchable candidates checked against DNC and litigator lists
  • 1,319clean, dial-ready, loaded in the table with trade and metro
maps_supply_receipt.json
  "ts": "2026-08-31T20:52:36Z",
  "credits_used": 807,
  "raw_rows": 7,973,
  "duplicates_collapsed": 409,
  "unique_businesses": 7,564,
  "distinct_phones": 7,400,
  "place_id_fill_pct": 100,
  "segments": {
    "has-site": 6,417,
    "no-website": 743,
    "social-only": 238,
    "diy-abandoned": 108,
    "booking-platform-only": 58 }
Straight from the machine, 31 Aug 2026. Cost lines removed, nothing else touched.
Dial-ready by scriptCountWhat the owner has today
Outdated, dead or DIY site673402 outdated, 189 that do not load, 82 abandoned builders. They paid for a site once, so budget is proven.
No website449Phone number, reviews, and an empty website button on the listing.
Social or booking page only197155 point at Facebook or Instagram, 42 at a booking page. Neither owns the front door.

The businesses with a current, working site stay in the table untouched. There is nothing to sell them.

More than one in three numbers checked was on a list we must never text

A Maps "business" number for a one-van operator is a personal mobile. Do-not-call rules bite almost as hard as they do on a consumer list.

2,029
checked, two passes
710
removed, 35.0% across both passes (32.8% on the first, 37.5% on the second)
31
known litigators caught before anyone texted them

Every removed number sits on a suppression list the sender checks before each text. The roster on the box is the clean 1,319 and nothing else.

pitchable.jsonl.scrub.json
  "scrubbed_at":
    "2026-08-31T20:56:15+00:00",
  "total_in": 1,084,
  "flagged": 356,
  "flag_rate": 0.3284,
  "breakdown": {
    "federal_dnc": 335,
    "state_dnc": 63,
    "tcpa_litigator": 17,
    "invalid": 4 },
  "clean_out": 728

upgraded.jsonl.scrub.json
  "scrubbed_at":
    "2026-08-31T21:04:38+00:00",
  "total_in": 945,
  "flagged": 354,
  "flag_rate": 0.3746,
  "breakdown": {
    "federal_dnc": 333,
    "state_dnc": 55,
    "tcpa_litigator": 14,
    "invalid": 7 },
  "clean_out": 591

sum  checked 2,029  removed 710 (35.0%)
     litigators 31  clean 1,319
Both scrub receipts, 31 Aug 2026. Provider name removed.

The breakdown adds to more than the flagged count because one number can sit on more than one list. Flagged counts distinct numbers: total_in minus flagged equals clean_out in both passes.

Mid-size metros are where the business is

Share of each metro's scraped businesses with no site, a social-only or DIY page, or a booking page only. Between 258 and 293 businesses scraped per metro.

The four metros above 27% are all mid-size. Orlando and Atlanta, where the first weeks of dialling went, sit at the bottom: every solo operator there has already been sold a website. Same texting effort in Shreveport or El Paso reaches roughly four times the pitchable owners.

Correction on the record: the last deck showed Orlando at 94%, Lubbock at 93%. Those came from samples of 17 to 28 businesses. This chart is the full scrape.

  • Shreveport LA30.6%
  • El Paso TX28.9%
  • Corpus Christi TX27.9%
  • Amarillo TX27.7%
  • Mobile AL25.3%
  • Bakersfield CA24.3%
  • Lubbock TX20.2%
  • Jacksonville FL16.8%
  • Baton Rouge LA15.9%
  • Fresno CA15.0%
  • Tucson AZ13.6%
  • Memphis TN13.6%
  • San Antonio TX13.1%
  • Wichita KS13.0%
  • Albuquerque NM12.5%
  • Oklahoma City OK12.3%
  • Birmingham AL12.1%
  • Austin TX12.0%
  • Chattanooga TN11.7%
  • Tampa FL10.2%
  • Tulsa OK9.9%
  • Colorado Springs CO8.6%
  • Orlando FL8.4%
  • Boise ID7.7%
  • Las Vegas NV7.7%
  • Atlanta GA6.6%
  • Reno NV6.1%
Proof, on real calls

The booking path ran end to end on real calls

Fifteen real test calls from your phone. The first 11 went through the ear. The last four were the booking proof, and two of those completed the entire chain for the first time: real open slots, a real booking on your calendar, the confirmation text, a clean hangup, and a full recording on disk.

  1. Human on the lineCarrier answer detection says human. Only a real beep counts as a machine now.
  2. Real slots pulledMia reads your live calendar. She never names a time that is not open.
  3. Two offered, one pickedExactly two slots. The owner chooses. She reads the email back.
  4. Booked on your calendarThe appointment is created on your endpoint, not written in a log.
  5. Confirmation textedCombined confirmation lands before she says goodbye.
  6. Clean hangup, full recordingShe ends the call herself. Both sides recorded, pulled to disk within minutes.
15
real test calls from the test page. 11 on 2 September, graded by the ear. 4 on 4 September as the booking proof: two ran the full chain, two ended early (one on a starved carrier media stream) and sit in the open list.
8 of 10
graded PASS on the ear. Of the 11 graded calls, 10 had a recording on disk at grading time. The other two were borderline: single turns of 12.6 and 12.7 s against a 12 s gate, before the script was tightened.
6 to 11 s
longest single turn on production spars since the fix, against the 12 s gate

Spars on the production rig, graded

quality/*.json  Mia vs a scripted owner, voice to voice
#       script x persona   verdict  longest turn (gate 12s)
spar4   cold x cold_yes    PASS  11.00s  booked via tool
spar4   cold x skeptic     PASS  11.75s  no booking (correct)
spar5   outdated x Ray     PASS  11.70s  booked, link sent live
spar7   cold x cold_yes    PASS  10.05s  booked, one goodbye
spar11  cold x skeptic     PASS   6.05s  no times after refusal
spar12  cold x skeptic     PASS   7.55s  no "sent" contradiction
robotic score withheld as UNRELIABLE on most, as calibrated
Spar grades on the box, 2 September 2026

What your first 11 calls found, and what changed

  • Silence at the moment of booking, line left openFixed. A crash inside the booking handler. The gate now runs a static check on every file before any script check.
  • She did not hang up on her ownFixed. The hangup gate refused her goodbye twice. It never refuses twice now.
  • "Hello, is this there?"Fixed. Maps leads carry no first name. She now asks for the owner of the business by name.
  • "Hey, it's Mia" sounded offFixed. Every opener is now "Mia here, from We Did It For You."
  • Robotic voice and a long pause on a quiet pickupFixed. Answer detection had called you a machine. Only a real beep counts now.

The 5 to 13 second pause after the owner says "go ahead" (13 events across 7 of 22 real calls, worst 13.4 s) was traced by replaying the real recordings through the engine: not the prompt, the inbound noise gate. It fed pure digital silence after Mia's long turn and the model's speech detector then missed the owner's next short answer. The fill was changed on 6 September; on the replays every one of those pauses drops to about one second. It has not yet been heard on a new live call, so it stays in the open list until the next graded real calls confirm it. Housekeeping: two test bookings under "Canyon Mobile Mechanic" sit on your calendar from the proof calls. Delete them in the GHL UI.

The QA machine

Every call is graded voice to voice

A transcript cannot hear a pause. A log line cannot hear a robot. So every recording, real or spar, goes through the same three layers, and nothing ships to a stranger until the gate prints ALL GATES PASS.

The listener's score turned out to be noise: the same recording can swing several points between readings. So the number never blocks anything. Two models read each call twice, the median is kept, and when the readings disagree by four or more the score is withheld as unreliable. What gates is measured: turn length, dead air, tool truth, and a regression check against a known-good call.

Tool truth means the words have to match the machine. "Booked" with no booking call is a fail. A time with no slot pulled is a fail. A link on a cold lead is a fail.

every change, re-spar Recording both sides, pulled to disk every 3 minutes Layer 0: facts said "booked" with no booking call: FAIL named a time with no slot pulled: FAIL Layer 1: acoustics longest turn 12 s max, dead air 2 s max regression against a known-good call blocks Layer 2: two listeners two readings each, median kept spread of 4 or more: score withheld Fix the script or the engine, one change at a time Gate static check on every file, then every script must print ALL GATES PASS, or the backup is restored
Findings gate. The score never does.
Decisions that stand
Maps is the supply. Intent data stays a flag.

The intent file cannot describe a business well enough to build one a website. We measured the fill rates on three thousand records of that file in August. Nothing since has changed them.

Field the offer needsPopulated
Which trade they are in6%
Website status25%
What they searched for0%
Owner of a business under ten people1%
  • Text first, never cold-dial. The call is earned by a YES.
  • Never text or dial an unscrubbed roster. The suppression list is checked before every send.
  • Never claim a site exists before it is live and shows the owner's own name.
  • Never trust a status line. A call is verified by its recording, not its log.

What stands between this and the first stranger's text

Nothing above has touched a stranger. Every number is a test with our own phones. Four deliberate steps remain, and each one is a hard gate on purpose.

  1. Sending number is registeredChecked live on 6 September: the number sits in an active 10DLC marketing campaign under your brand. What remains is the consent story: the registered opt-in is your website form, and a cold roster never used it, so the canary reads delivery and error codes before anything else goes out.
  2. Canary 50The first 50 texts go out alone. Delivery and opt-out rate get read before the rest.
  3. Open the callbackToday a YES only triggers Mia for our test numbers. The rails for real leads are built and tested: a kill switch, 9 to 18 in the owner's own time zone, one callback per number per day, a 60 a day cap, a burn guard that halts after six calls in a row with no human, and STOP replies written to the suppression list the instant they arrive. Opening it is one deliberate switch.
  4. Path B at scaleYour site builder's database keys let the box build real per-lead sites, which opens the link flow for every lead that passes the check.