Bright Side Plumbing | March 31, 2026 | By Robert Dove
🚨 4 Broken Pipes Found — Every Wrong Number Traces Here
💡 The Short Version: Every wrong number on March 31 came from 4 broken things in ServiceTitan. Not bad math. The system feeds us bad data. When Kalen sells $22,400 and ServiceTitan says $0, every report shows $0. Fix the pipes. The numbers fix themselves.
🚰 Your Data Pipeline Right Now
Every step where money gets lost or numbers go wrong
✅
Customer Finds BSP
Google Ad, LSA, Organic Search, Referral, Service Direct
✅
Customer Calls (913) 963-1029
Ashton, Jordan, or Daniel AI answers
⚠
Ashton/Jordan Books the Job in ServiceTitan
🛑 BREAK #1: Campaign Says "Google"
Not "Google Ads" vs "LSA" vs "Organic"
We can't prove WHICH ad drove this customer
Kalen says his clients found BSP on Google Ads
But ServiceTitan just says "Google"
⚠
Tech Assigned to Job
🛑 BREAK #2: Kalen Shows as "Admin"
He can't log in as a technician
Ashton creates his estimates
His $22,400 Chris Onnen job? Invisible.
Search "Kalen's jobs" = only 2 results
✅
Tech Does the Work
Plumbing gets fixed. Customer is happy. The work is REAL.
⚠
Invoice Created
🛑 BREAK #3: 62% of Invoices Are $0
782 of 1,301 jobs have NO line items
Tech leaves without adding pricebook items
Kalen's $22,400 estimate = $0 invoice in system
💰 HIDDEN: Unknown amount of real revenue invisible
⚠
Tech Clicks "Done" on Phone
🛑 BREAK #4: "Done" is NOT "Completed"
"Done" = clears the tech's daily schedule
"Completed" = releases invoice to QuickBooks
Only 0.8% of jobs are actually "Completed"
💰 STUCK: $759,690 can't reach QuickBooks
❌
QuickBooks Can't See the Invoice
Job not completed = can't batch = invisible to accounting
❌
Stephanie Can't See the Revenue
QB P&L shows deposits but can't match to specific jobs
❌
We Can't Prove the Ad Worked
No completion = no attribution = no ROAS proof
❌
Reports Show Wrong Numbers
Not because the math is wrong. Because the DATA feeding the math is broken.
🔧 The Fix
✅ Bot alerts Ashton every 2 hours about stuck jobs
🔴 His sewer job showed $27,000. He sold $22,400. Off by $4,600.
🔴 Nick got credit for $60,000 but had 4 cancellations.
🔴 69 "conversions" claimed for sewer ads. Not real.
🔴 $128,000 weekly revenue? Not even close.
🔍 We investigated. Kalen was right on every point.
🔎 March 31: We Dug Deeper
❌ What Google Ads Said: 69 conversions | $34,800 value | 26.6x ROAS
✅ The Truth:
69 = people who clicked a BUTTON (not booked, not called)
9 = real phone calls from the ads
23 = real jobs created from PPC/Google
$50,830 = actual invoiced revenue
7.3x = real ROAS
💡 Google counted button clicks as "conversions." Each click valued at $500. That's how 69 clicks became "$34,800." It was never real.
🚰 The 4 Broken Pipes (Detail)
Data flows like water through pipes. If a pipe breaks, the water (money) never reaches the faucet (reports).
🚰 Pipe #1: Invoices Say $0 on Real Work
Kalen sold Chris Onnen $22,400. System says: $0.
782 of 1,301 jobs (62%) show $0 invoices.
Techs leave without adding pricebook items.
💰 Revenue looks like $0 for work that was sold and paid for.
✅ Fix: Bot alerts Ashton every 2 hours about $0 invoices.
👤 Pipe #2: Kalen's Name Isn't on His Jobs
Can't log into ServiceTitan as a technician.
Ashton creates estimates. Tagged as "Admin."
Search "Kalen's jobs" = only 2 results. Real number is higher.
👤 Kalen's sold work is invisible in every report.
✅ Fix: Kassidy sets Kalen up as managed technician.
🔍 Pipe #3: "Google" Doesn't Say WHICH Google
Chris Onnen tagged "Google." Ads? LSA? Organic? Can't tell.
19 jobs just say "Google" with no channel detail.
🔍 Can't prove which ads generate which revenue.
✅ Fix: ST admin creates separate tags for PPC, LSA, organic.
⛔ Pipe #4: Nobody Clicks "Done" Right (0.8%)
Only 17 of 1,301 jobs marked "completed" all year.
$759,690 stuck because jobs aren't closed.
"DONE" on phone ≠ "Completed" in office.
💸 $759K can't reach QuickBooks. Invisible to Stephanie.
✅ Fix: Bot alerts Ashton every 2 hours with specific stuck jobs.
📣 Google Ads: Previous Agency Damage
🚫 192 Keywords Were Blocking Our Ads
"Emergency plumber near me" was a NEGATIVE keyword. Anyone in KC searching that could NOT see our ads. Same for "24 hour plumber," "plumber near me," and "bright plumbing" (our own name). All 192 removed. 4 deleted sewer keywords restored.
🤖 Google Was Changing Our Account Alone
15 auto-apply settings were ON. Google adding, deleting, modifying without permission. All 15 disabled.
05:00 ✅ Full attribution analysis ($50,830 real PPC revenue)
⚖️ Who's Responsible for What
✅ Robert Did This
✅ Found fake conversion tracking (69 clicks ≠ 69 sales)
✅ Built 13 automated monitors running 24/7
✅ Fixed 324 Google Ads problems from previous agency
✅ Built the intelligence system
✅ Corrected his own errors same day
✅ Sent corrections to Kalen same day
✅ Documented everything with timestamps
✅ Patched 67 missing phone numbers
❌ Not Robert's Fault
❌ ST showing $0 on Kalen's $22,400 job
❌ Kalen not set up as managed tech
❌ "Google" not saying Ads vs LSA vs organic
❌ 0.8% completion rate (techs not clicking Done)
❌ Auto-apply enabled by previous agency
❌ 192 negative keywords from previous agency
❌ Ghost appointments blocking completion
❌ Missing customer phone numbers
💡 The Bottom Line
The math is right. The data feeding it is broken.
Fix the 4 pipes. The numbers fix themselves.
🔧 Kassidy sets up Kalen as managed tech
🔧 Techs finalize invoices on-site
🔧 Techs click "Complete the Job" not "Mark Myself as Done"
🔧 Campaign tracking gets specific
Until then, QuickBooks P&L is the only number to trust.
🧠 Ask Zeus: How Broken Is Your Pipeline?
Type a question. Zeus traces the pipeline and shows where it breaks.