1
Executive Summary
I pulled 90 days of job data directly from ServiceTitan through the API. Every job, every lead source, every dollar of revenue. These are real numbers. Not estimates, not projections.
2
💰 The Numbers: 90-Day ServiceTitan Data
| Source |
Completed Jobs |
Revenue |
90-Day Cost |
Cost/Job |
ROAS |
Verdict |
| ⭐ Google LSA |
124 |
$175,809 |
$10,581 |
$85 |
16.6x |
🚀 GROW |
| ✅ Service Direct |
79 |
$112,047 |
$24,320 |
$293 |
4.6x |
✅ KEEP |
| 🌐 Google (organic) |
68 |
$78,903 |
$0 |
$0 |
free |
🚀 GROW |
| 🔁 Existing Customer |
95 |
$293,075 |
$0 |
$0 |
free |
✅ KEEP |
| 🟡 Service Local Pro |
25 |
$25,567 |
$19,500 |
$780 |
1.3x |
👀 WATCH |
| 🔴 Networx |
8 |
$20,494 |
$12,999 |
$1,625 |
1.6x |
✂ CUT |
| 🔴 Voolt |
3 |
$3,975 |
$9,750 |
$3,250 |
0.4x |
✂ CUT |
| 🟠 Goodzer |
0 |
$0 |
$13,000 |
∞ |
0.0x |
⏰ 30-DAY TRIAL |
💡 Note on Service Direct costs:
The 90-day cost above uses actual Service Direct billing data from their CSV export (602 BSP leads, $51,100 total, $24,320 in the 90-day window). Service Direct sends leads to both Bright Side Plumbing AND 100 Year Plumbing; BSP gets 76% of all leads.
📊 Return on Ad Spend (ROAS): Visual
📍 Anything below 2.0x ROAS means you're barely breaking even after overhead.
3
🔎 Service Direct Deep Dive: 791 Leads Analyzed
I pulled the full Service Direct CSV export (July 2025 – March 2026). Here's what the raw data shows about lead quality and waste.
🚨 Where Your Money Goes (BSP Billable Leads)
🚨 55% of billable SD cost goes to leads that never book.
That's $27,935 since July on leads that answered but didn't convert. The two biggest culprits:
📞
78 missed calls = $11,105 wasted
SD billed us for leads we didn't even answer.
🚫
105 "Couldn't Service" = $14,890 wasted
SD sends leads outside our scope (HVAC, backflow, out of area).
📈 Monthly Booking Rate Trend
👉 Booking rate dropped from 52% to an average of 26-28%. This isn't necessarily bad; volume went up dramatically (8 leads/mo → 100/mo). But the "Couldn't Service" rate is the fixable lever.
🎯 What BSP Books Best (Service Direct)
🚷 Drain Unclogging (9)
🚽 Toilet Unclogging (5)
💧 Leak Repair (5)
🔥 Gas Line Install (3)
♨ Water Heater (5)
🔀 Faucet Repair (3)
💡 Key insight:
Booked calls average 5 min 26 sec. Non-booked calls average 1 min 54 sec. Longer calls = more booking. Train dispatch to keep callers on the line and build rapport.
4
🏆 Winners & Losers: Clear Verdict
🚀 CLEAR WINNERS: Keep & Grow
⭐ Google LSA
$85 per completed job. 16.6x ROAS. Best marketing channel by far.
🚀 GROW
Recommendation: Increase budget from $3,527/mo to $7,000/mo. You only pay for actual leads, so increasing budget just shows your ads more often. This is the single highest-ROI move you can make.
✅ Service Direct
$293 per booked job (90-day). 4.6x ROAS. 83 booked jobs in 90 days.
✅ KEEP
BUT fix the waste: 78 missed calls ($11,105) and 105 "Couldn't Service" ($14,890) are fixable. Talk to SD rep about filtering out HVAC/backflow/out-of-area leads. Reduce "Couldn't Service" by 50% and CPB drops to $220.
🔁 Existing Customers
95 completed jobs, $293,075 revenue. Free. Your highest-value segment.
✅ KEEP
Growth lever: Increase review requests and referral program. Every repeat customer generates $3,085 avg ticket with $0 acquisition cost.
✂ CLEAR LOSERS: Cut Immediately
🔴 Voolt: $3,250/month
3 completed jobs in 90 days. $3,250 per job. 30-day loss: -$1,324. 90-day loss: -$5,775.
✂ CUT
🔴 Networx: $4,333/month
8 completed jobs in 90 days. $1,625 per job. 30-day loss: -$1,502. 90-day loss: -$7,579.
✂ CUT
💰 Immediate savings: $7,583/month (Voolt + Networx)
No contract penalties. Redirect to proven winners.
📈 REAL PROFIT/LOSS (from ServiceTitan data)
30-Day Combined Loss
-$7,159
Rev $4,757 vs Cost $11,916
90-Day Combined Loss
-$30,328
Rev $5,420 vs Cost $35,748
All 3 aggregators combined (Voolt + Networx + Goodzer). Source: ServiceTitan API, March 5 2026.
⏰ 30-DAY TRIAL: Goodzer (Exclusive Call Leads, Previously Mismanaged)
🟠 Goodzer: $4,333/month
0 jobs in 90 days, BUT this source was previously mismanaged. Calls may have been coming in but not tagged correctly. Deserves a fair 30-day trial with proper tracking.
⏰ 30-DAY TRIAL
📋 Pass/Fail Criteria (April 5, 2026 Review)
| ✅ PASS (Keep) |
5+ booked jobs AND $5,000+ revenue AND CPL under $200 |
| 🟡 EXTEND |
1-4 booked jobs OR tracking issues still being resolved |
| ❌ FAIL (Cut) |
0 booked jobs after 30 days with proper tracking = definitive cut |
💡 30-day loss if it fails: -$4,333. Upside if it works: A rehabbed source at scale. Worth the test.
👀 Borderline: Evaluate in 30 Days
🟡 Service Local Pro: $6,500/month
25 completed jobs. $780/job. 1.3x ROAS. Not losing money, but barely profitable.
👀 WATCH
If it doesn't improve in 30 days, that's another $6,500/month to redirect. Potential total savings: $18,416/month.
5
💰 Updated Budget Plan: Data-Driven Reallocation
✅ We're past "Option C" Phase 2.
90 days of ServiceTitan data + 8 months of Service Direct leads. Voolt and Networx are clear cuts. Goodzer gets a 30-day trial because it was mismanaged; fair chance with proper tracking before the final verdict.
📋 Budget Reallocation
| Source |
Current Monthly |
New Monthly |
Change |
| ⭐ Google LSA |
$3,527 |
$7,000 |
+$3,473 📈 |
| 🎯 Google Ads Search (NEW) |
$0 |
$3,000 |
+$3,000 ✨ |
| ✅ Service Direct |
$8,667 |
$8,667 |
No change |
| 🟡 Service Local Pro |
$6,500 |
$6,500 |
Under review 👀 |
| 🟠 Goodzer (30-day trial) |
$4,333 |
$4,333 |
Under trial ⏰ |
| 🔴 Voolt |
$3,250 |
$0 |
-$3,250 ✂ |
| 🔴 Networx |
$4,333 |
$0 |
-$4,333 ✂ |
| TOTAL |
$30,610 |
$29,500 |
-$1,110/mo savings* |
*Immediate savings: $1,110/month while Goodzer is on trial. Budget concentrates on proven winners.
⏰ If Goodzer fails its 30-day trial: savings jump to $5,443/month
👀 If we also cut Service Local Pro: total savings up to $11,943/month
6
👉 Click-by-Click Action Steps
Each step has a specific owner. Stephanie Robert Audrey/Dispatch
1
✂ Cancel Voolt and Networx
📱 Open your email → 📩 Send cancellation to each vendor:
• Voolt: "Please cancel. 3 jobs in 90 days at $3,250/job is not sustainable. 30-day loss: -$1,324."
• Networx: "Please cancel. 8 jobs in 90 days at $1,625/job doesn't meet our ROI threshold. 30-day loss: -$1,502."
📅 Confirm no contract penalties before sending. If locked in, request pause or reduction.
🟠 Goodzer stays active. See Step 6 for 30-day trial setup.
Stephanie
2
📈 Increase Google LSA Budget to $7,000/month
💻 Open ads.google.com → 📑 Click "Local Services Ads" in top nav → ⚙ Settings → 💰 Budget → ✏ Change weekly budget from $813 to $1,615/week → 💾 Save
💡 LSA is pay-per-lead, not pay-per-click. Increasing budget just means Google shows your ad to more people. You only pay when someone actually contacts you.
Stephanie
3
🎯 Build Clean Google Ads Search Campaign
Robert builds a new Search campaign from scratch. NOT the old campaigns that have $0 attribution. Clean structure:
• Ad Groups: Emergency Plumbing, Sewer Repair, Drain Cleaning, Water Heater, Leak Repair
• Landing pages: Dedicated service pages (NOT the homepage)
• Budget: $3,000/month ($100/day)
• Tracking: Google forwarding numbers → ServiceTitan auto-attribution
📅 Target live date: March 17, 2026
Robert
4
📞 Fix Service Direct Missed Calls ($11,105 wasted)
78 billable SD calls went unanswered. That's money literally ringing and nobody picking up.
• 📱 Log into Service Direct dashboard → ⚙ Settings → 📞 Call routing → Check if calls go to main line or dedicated number
• 📄 Review the missed call times: are they after hours? During lunch? On weekends?
• ✅ If after hours: Enable SD's "business hours only" filter
• ✅ If during hours: Ensure overflow goes to a second dispatcher or voicemail-to-text with callback SLA
Stephanie
5
🚫 Fix "Couldn't Service" Waste ($14,890 wasted)
105 billable leads were services BSP doesn't offer (HVAC, backflow testing, out of area).
• 📱 Log into Service Direct dashboard → 📑 Account Settings → 🔧 "Campaign Details" or "Service Categories"
• ❌ Remove categories you don't service: HVAC, backflow testing, appliance repair
• 📍 Tighten the service area: remove zip codes outside your range. Top performing zips: 64119, 64118, 64030, 66062
• 📩 Email your SD rep: "We're getting billed for leads outside our service scope. Please review our campaign filters."
💰 Fixing this alone could save $7,000+/quarter in wasted SD spend.
Stephanie
6
⏰ Set Up Goodzer 30-Day Trial (Proper Tracking)
Goodzer was previously mismanaged; calls may have been coming in but tagged incorrectly. We're giving it a fair 30-day trial.
• 📩 Email Goodzer: "What tracking phone number do you have assigned to Bright Side Plumbing? We need to verify call routing."
• 📞 If they have a dedicated number: Give it to dispatch. Tag ALL calls from that number as "Goodzer - MRKT 2" in ServiceTitan.
• 📞 If calls come through main line: Ask dispatch to ask "How did you hear about us?" and tag Goodzer manually for 30 days.
• 📅 Review date: April 5, 2026
• ✅ PASS: 5+ booked jobs AND $5,000+ revenue AND CPL under $200 → Keep
• 🟡 EXTEND: 1-4 jobs OR tracking still being fixed → 2 more weeks
• ❌ FAIL: 0 booked jobs with proper tracking → Cancel immediately
Stephanie
Robert
7
📊 Set Up Live ROI Dashboard
Robert configures the Nexus Attribution Engine to pull ServiceTitan data automatically every day.
• 🤖 Auto-tagger runs daily at 6:00 AM CT
• 📈 Dashboard shows live cost-per-job, ROAS, and booking rate per source
• 📩 Weekly email digest every Monday with ROI changes
📅 No manual work required from Stephanie or Kalen. The data flows automatically.
Robert
8
🔎 Train Dispatch on Lead Source Tagging
The data shows 100% of jobs are tagged; dispatch is doing great! But some tags may be inaccurate (Google Ads calls tagged as "Google" organic).
• 📄 Robert provides a Lead Source Quick Reference Card for Audrey's desk
• 💬 Simple question: "How did you hear about us?" → Select matching campaign in ServiceTitan
• 🎯 Goal: Distinguish between "I Googled you" (organic) and "I called from a Google ad" (paid)
Audrey/Dispatch
9
📅 30-Day Service Local Pro Review
• 📅 Calendar reminder: April 5, 2026
• 📈 Pull fresh ROI data for Service Local Pro
• If ROAS improves to 2.0x+ → Keep
• If ROAS stays below 1.5x → Cut and redirect $6,500/month to Google Ads
💡 Robert will have automated data ready. No manual work needed.
Stephanie
Robert
7
💯 The Bottom Line
Spend LESS. Get MORE.
Cutting Voolt + Networx saves $7,583/month immediately. Goodzer stays on a 30-day trial.
Redirecting $6,473 to LSA and Google Ads Search concentrates spend on channels with proven 4-16x returns.
The hard numbers: All 3 aggregators combined lost $7,159 in 30 days and $30,328 in 90 days.
If Goodzer fails its trial: total savings jump to $11,916/month.
The data is clean. Dispatch is doing their job. The system works.
We just need to stop feeding money to sources that produce nothing.
8
🚫 Why the Old Google Ads Failed: Hard Numbers
Kalen remembers spending $4,000/week on ads and "never getting calls." Here's what the data actually shows, and why it felt that way.
📊 39 Campaigns Existed. 38 Are Paused. Here's What They Did:
| Campaign |
90d Spend |
Conversions |
Cost/Conversion |
Verdict |
| ✅ LSA (only one running) |
$10,581 |
141 |
$75 |
WORKING |
| Services-Search |
$4,170 |
3 |
$1,390 |
FAILED |
| Brand-Search |
$3,716 |
7 |
$531 |
FAILED |
| Performance Max v1 |
$610 |
1 |
$610 |
FAILED |
| Search Total |
$8,496 |
11 |
$772 avg |
|
🚨 Search campaigns cost 10x more per conversion than LSA.
And those 11 "conversions" were probably garbage; every conversion action was valued at $1. Google was counting page views as conversions.
🔍 5 Root Causes (Why It Felt Like "No Calls")
1
💥 59 Broken Conversion Actions
5 duplicate "Calls from ads," values set to $1 instead of real revenue ($350-$8K). Google had no idea what a real lead looked like.
2
🚫 No Offline Conversion Tracking
Google never learned which clicks became $8K sewer jobs vs tire-kickers. Smart Bidding was optimizing blind.
3
🚧 39 Campaign Chaos
Duplicate campaigns (#2, #3, #4 copies of the same thing). "Kansas 23," "Kansas 23 #2," "Kansas 23 #3," "Kansas 23 #4." No structure, no strategy. Combined daily budget if all ran: $7,947/day.
4
📞 3CX Phone Disconnected
Calls from ads weren't being tracked back to Google. Zero phone call attribution. Of 112 inbound calls tracked, 110 showed as "Abandoned."
5
🌐 No GCLID Capture on Website
Form submissions couldn't be matched to the ad click that generated them. Google had zero feedback on what worked.
💡 Translation:
Kalen DID get some calls. But Google was optimizing for the wrong thing (any random click = "conversion") instead of actual booked jobs. The money burned on low-intent clicks because nobody told Google what a real lead looks like.
9
📞 LSA: Why More Budget Didn't Mean More Calls
LSA is pay-per-lead, not pay-per-click. But increasing the budget doesn't automatically mean more leads. Here's the proof:
📈 LSA Monthly Performance (Real Numbers)
| Month | Leads | Spent | Cost/Lead | What Happened |
| Dec 2025 | 37 | $3,209 | $87 |
Baseline month |
| Jan 2026 | 72 | $5,174 | $72 |
📈 Best month, nearly doubled |
| Feb 2026 | 29 | $1,967 | $68 |
🔴 Dropped 60%. Budget was there; Google didn't serve it. |
| Mar 2026 (4 days) | 3 | $231 | $77 |
Partial month |
💡 Why February dropped:
The budget was $5,000/month. Google only spent $1,967. LSA has a natural volume cap based on: profile strength, number of photos, response time, review count, and service categories enabled. If the profile is weak, Google ranks you BELOW competitors in the 3-pack and the budget sits unspent.
⚠️ What's Wrong With the LSA Profile Right Now
❌ Sewer Booking Rate
57%
Should be 80%+. Price shoppers calling, dispatch quoting over phone.
❌ Drain Booking Rate
50%
Losing to Roto-Rooter on price. Need to win on speed, not price.
❌ Service Categories
Incomplete
Missing: leak detection, emergency heaters, expanded water heater. Google can't show ads for services not enabled.
⚠️ Response Time
Unknown
Response time is a TOP 3 ranking factor (since April 2025). Not being measured. Target: <60 seconds.
✅ What IS Working on LSA
• Emergency booking rate: 100%
• Water heater booking rate: 100%
• Answer rate: 94.7% (18 of 19 answered)
• Cost per lead: $75 (best of any paid source)
• ROAS: 16.6x (best of any paid source)
• Cost per booked job: $85 vs Networx $1,625 vs Voolt $3,250
💡 Note: BSP does NOT do pumping or septic. These will NOT be added as service categories. Only services BSP actually performs.
10
🔬 Scientific Method: What We Do With the Surplus Budget
We don't dump money and hope. Every dollar has a hypothesis, a measurement, a pass/fail criteria, and a kill switch. This is how you become 10x better than every competitor in KC.
Experiment 1 | Cost: $0
🔬 "Fixing LSA profile will increase lead volume at the same CPL"
| Baseline |
29 leads/month (Feb), $75 CPL |
| Changes |
Add missing service categories, 15+ photos, <60sec response time, update bio |
| ✅ Pass |
50+ leads/month at CPL under $100 |
| ❌ Fail |
No increase after 30 days = profile isn't the bottleneck |
| Timeline |
Results visible in 7-14 days |
Experiment 2 | Cost: $1,500/mo (start small)
🎯 "Clean Google Ads Search with proper tracking will produce leads under $200 CPL"
| Baseline |
Old Search campaigns: $772 CPA (garbage). 59 broken conversion actions. |
| Changes |
🔧 Clean 59 conversion actions down to ~8
💰 Set real values (Sewer=$500, Water Heater=$500, Drain=$150)
🔗 Build GCLID capture pipeline
🔁 Feed offline conversions (ServiceTitan revenue → Google)
🎯 5 clean ad groups: Emergency, Sewer, Drain, Water Heater, Leak Repair
🏠 Dedicated landing pages (NOT homepage)
🚫 Negative keywords to block DIY/jobs/wholesale
|
| ✅ Pass |
CPL under $200 after 30 days. Scale to $3,000/mo. |
| ❌ Kill Switch |
If CPL exceeds $300 after 30 days, pause and diagnose. No more burning blind. |
| Timeline |
4-6 weeks for meaningful data (need 15-30 conversions for Smart Bidding) |
Experiment 3 | Cost: $0
🔎 "Service Direct waste reduction will improve ROAS without increasing budget"
| Baseline |
55% of SD spend wasted. 78 missed calls ($11,105). 105 "Couldn't Service" leads ($14,890). |
| Changes |
Remove categories BSP doesn't offer (HVAC, septic, pumping, backflow). Tighten service area. Fix missed call routing. |
| ✅ Pass |
Waste drops below 30%. ROAS improves to 6x+. |
| Timeline |
Immediate. Within 1 billing cycle. |
Experiment 4 | Cost: $0 (Robert's time)
📑 "Organic SEO content will generate leads at $0 CPL within 90 days"
| Baseline |
303 jobs from Google organic (180d), $248K revenue, $0 cost |
| ✅ Pass |
10% increase in organic jobs within 90 days |
| Timeline |
60-90 days for SEO to compound |
11
📅 Week-by-Week Rollout: Microsteps With Owners
Every step has a specific owner and expected result. We test small, measure, then scale.
📅 WEEK 1: Foundation (Cost: $0)
1a
📞 Add All LSA Service Categories
💻 Open ads.google.com → 📑 Local Services Ads → ⚙ Profile → 🔧 "Services"
✅ Enable: General Plumbing, Drain Cleaning, Water Heater Install & Repair, Sewer Line Repair, Gas Line, Toilet, Faucet, Garbage Disposal, Water Line Repair, Leak Detection, Emergency Plumbing, Heating System Repair
❌ Do NOT add: Septic, Pumping (BSP doesn't do these)
🕑 Time: 15 minutes
Stephanie
1b
📝 Update LSA Bio
💻 Same page → 📑 "Business bio" section
📋 Paste: "5th-generation master plumber Kalen Barker leads every job. Family-owned in Overland Park, serving the KC metro. Sewer repair, water heaters, drain cleaning, leak detection, emergency plumbing. 4.9 stars, 384+ Google reviews. Upfront pricing, same-day service. Licensed, insured, bonded, Google Guaranteed."
🕑 Time: 5 minutes
Stephanie
1c
✅ Enable All LSA Highlights
💻 Same page → 📑 "Highlights" section
✅ Check all that apply: Free estimates, Licensed & insured, Family-owned, Background-checked, 24/7 availability, Same-day service, Online booking
🕑 Time: 2 minutes
Stephanie
1d
📞 Set Response Time Target with Dispatch
💬 Tell Audrey/dispatch: "When an LSA lead comes in, respond within 60 seconds. Every second counts; Google ranks us higher when we respond faster."
📋 Print the response time target and post at Audrey's desk
💡 Sewer leads: use the "$99 camera inspection" hook. Do NOT quote over the phone.
🕑 Time: 10-minute conversation
Stephanie
1e
🔧 Clean Up Google Ads Conversion Actions
💻 Open ads.google.com → 📑 Goals → 🔧 Conversions → Summary
• 🗑 Remove all duplicate "Calls from ads" (keep only ID 7476805672)
• 🗑 Remove duplicate "Clicks to call" (keep only ID 7177603564)
• 💰 Update values: Book appointment = $300, Click-to-Call = $150, Lead form = $200
• 🗑 Remove all REMOVED actions still polluting the list
🕑 Time: 30 minutes
Robert
📈 Expected result: More LSA impressions within 7-14 days. Google starts showing ads for services that were invisible.
📅 WEEK 2-3: Profile Strength + Search Build (Cost: $1,500/mo starts)
2a
📷 Shoot 8 LSA Profile Photos
📸 Assign Audrey or photographer. Required shots:
• 👥 Team photo: full crew in branded shirts
• 🔧 Before/After: sewer repair
• 📸 Tech at work: camera inspection
• 🚚 Branded truck
• 🔧 Water heater install before/after
• 🔍 Leak detection equipment in use
• 🔧 Emergency repair in progress
• 🏠 Clean finished bathroom/kitchen (after install)
💻 Upload all to LSA profile: ads.google.com → LSA → Profile → Photos
🎯 Target: 15+ photos total. Google rewards photo-rich profiles with higher placement.
Stephanie
2b
🎯 Build Clean Google Ads Search Campaign
Robert builds from scratch. NOT reusing any of the 38 paused campaigns.
• 🎯 5 Ad Groups: Emergency Plumbing, Sewer Repair, Drain Cleaning, Water Heater, Leak Repair
• 🏠 Landing pages: Dedicated service pages (NOT the homepage)
• 💰 Budget: $1,500/month ($50/day), conservative start
• 🔗 GCLID capture: Added to all forms on website
• 🚫 Negative keywords: DIY, jobs, wholesale, hiring, salary, how to, YouTube, reddit
• 📈 Tracking: Google forwarding numbers → ServiceTitan auto-attribution
📅 Target live date: March 17, 2026
Robert
2c
🔎 Fix Service Direct Waste
💻 Log into Service Direct dashboard → ⚙ Campaign Settings
• ❌ Remove: HVAC, septic, pumping, backflow, appliance repair
• 📍 Tighten service area to top-performing zips: 64119, 64118, 64030, 66062
• 📞 Fix call routing for missed calls (78 missed = $11,105 wasted)
💰 Fixing this alone saves $7,000+/quarter in wasted SD spend.
Stephanie
📈 Expected result: 15-25% more LSA impressions from photos. Search campaign live and collecting data.
📅 WEEK 4-6: Measure & Scale Decisions
3a
📈 Review LSA Lead Volume
• Did leads increase from 29/month after profile fixes?
• If YES (50+) → Profile was the bottleneck. Consider increasing budget to $7K.
• If NO (still under 40) → Volume cap is geographic/seasonal. Don't increase budget yet.
Robert
3b
🎯 Review Google Ads Search Performance
• 15-30 conversions needed for Smart Bidding to activate
• If CPL under $200 → Double budget to $3,000/month
• If CPL $200-$300 → Optimize keywords/landing pages, keep at $1,500
• If CPL over $300 → 🛑 Pause. Diagnose. Do NOT throw more money.
Robert
3c
⏰ Goodzer 30-Day Trial Verdict (April 5)
• ✅ 5+ booked jobs + $5K revenue → Keep
• 🟡 1-4 jobs → Extend 2 weeks
• ❌ 0 jobs with proper tracking → Cancel. Redirect $4,333 to Google Ads.
Stephanie
Robert
📈 Expected result: Clear data on whether Search works. LSA volume verdict. Goodzer verdict.
📅 WEEK 6-8: Optimize & Scale
4a
🚀 Scale What's Working
• If Search CPL < $200 → Scale to $3,000/mo, activate Smart Bidding
• If LSA volume increased → Increase to $7,000/mo
• If Goodzer failed → Total savings now $11,916/month freed up for proven channels
• Feed offline conversions: ServiceTitan job revenue → Google Ads. Google learns to chase $8K sewer jobs, not $150 drains.
Robert
4b
👀 Service Local Pro Verdict (April 19)
• If ROAS improved to 2.0x+ → Keep
• If ROAS still below 1.5x → Cut and redirect $6,500/month to Google Ads
• Potential total monthly savings: $18,416 redirected to proven channels
Stephanie
Robert
📈 Expected result: Budget concentrated 100% on channels with proven ROI. Every dollar tracked, measured, and accountable.
12
🔥 How We Become 10x Better Than Every Competitor in KC
| What |
Competition Does |
BSP Does (New) |
| 📈 Tracking |
Runs ads blind. No idea which clicks become jobs. |
Feeds actual ServiceTitan job revenue back to Google. Every dollar tracked. |
| 🎯 Campaigns |
Messy accounts. Duplicates. No structure. |
5 clean ad groups. Negative keywords. Dedicated landing pages. |
| 🏠 Landing Pages |
Sends traffic to homepage. |
Dedicated service pages. "Sewer Repair" ad → sewer repair page. |
| 📊 Optimization |
Guesses. Hopes. Prays. |
Scientific method. Hypothesis → test → measure → conclude. Kill switch on every experiment. |
| 🤖 Intelligence |
Checks reports monthly (maybe). |
Nexus AI monitors CPL daily. Automated alerts. Weekly intelligence reports. Ask Nexus bot for instant data. |
| 💰 Budget |
Dumps $4K/week and hopes for calls. |
Starts small ($1,500). Proves ROI. Scales only what works. Every dollar has a kill switch. |
13
🎤 Frictionless Data Input: Voice Typing for Stephanie
ServiceTitan does NOT have built-in voice-to-text for typing into fields. But you don't need it. Your computer already has it.
🌟 Option 1: Free, Already On Your Computer (Recommended)
🎤
Windows 11 Voice Typing: Press Win+H
💻 Click into ANY text field in ServiceTitan, email, Slack, anywhere
⌨ Press Win + H on your keyboard
🎤 Start talking. It types what you say. Works everywhere.
💬 Say "period," "comma," "new line" for punctuation
💡 Already on your Lenovo. Zero setup. Zero cost. Start using it today.
✅ Works in: ServiceTitan, Gmail, Slack, Word, Chrome, any text field
💲 Option 2: Chrome Extension for ServiceTitan ($0-$8/mo)
🔈
Voice In Chrome Extension
💻 Open Chrome → Search "Voice In" in Chrome Web Store → 🔗 Install
🎤 Click the microphone icon in any website (including ServiceTitan) and start dictating
💰 Free tier for basic English. $8/month for custom vocabulary (add plumbing terms)
💡 Best for: Dictating directly into ServiceTitan job notes, customer records, dispatch notes
⌨ Option 3: Logitech MX Keys S Keyboard (~$95)
⌨
Best Office Keyboard for When You Do Type
💰 Currently on sale: $95-$110 (normally $130)
⌨ Low-profile keys, backlit, quiet, Bluetooth, USB-C rechargeable
💡 Best combo: Get the keyboard AND use Win+H voice typing. Type when you want to, dictate when you don't.
❌ Skip Dragon NaturallySpeaking ($200-$500). It's an abandoned product. Windows voice typing is now better and free.
14
💯 The Bottom Line: v2.0
Spend SMARTER. Measure EVERYTHING. Kill FAST.
→
→
$18,167
IF ALL LOSERS CUT
The hard numbers: All 3 aggregators combined lost $30,328 in 90 days. Old Search campaigns burned $8,496 for 11 conversions at $772 each.
The new approach: Scientific method. Start at $1,500/month on Search with proper tracking. Prove it works. Scale only what earns. Kill what doesn't. Every experiment has a hypothesis, a budget, and a kill switch.
The competitive advantage: Nexus AI monitors every dollar daily. No competitor in KC has an intelligence system feeding ServiceTitan revenue back to Google in real-time. We don't guess; we know.
No more dumping $4K/week and hoping for calls. Every dollar proves itself or gets cut.
PERSONA ROI ATTRIBUTION (from Marketing Strategy Audit, Mar 2026)
Every lead source performs differently per persona. 301+ reviews across 6 platforms revealed these 4 customer types:
Emergency Eric/Erica
50-60% revenue, 25-30% leads
Top sources: LSA, Google Ads (after-hours). $5K-$15K tickets. Speed wins.
Renovation Rachel/Ryan
25-30% revenue
Top sources: Organic, Google Ads (evening). $5K-$15K tickets. Trust wins.
Business Owner Bob/Barbara
8-12% revenue
Top sources: Referral, Google Ads (biz hours). $2K-$8K. WIDE OPEN gap in KC.
Maintenance Mike/Maria
45-55% leads, HIGHEST LTV
Top sources: Organic, referral. $150-$500/visit, $5K-$25K lifetime. Gateway persona.
Marketing Audit Finding: 9 gaps identified worth $800K-$1.5M/year.
7 content packages generated, gap closure playbook created. See the Nexus Dashboard Document Library for full details.
Generated by Nexus AI, Bright Side Plumbing Intelligence Platform
Data: ServiceTitan API (90/180-day) + Service Direct CSV (Jul 2025-Mar 2026) + Google Ads API (39 campaigns audited) + Persona Analysis (301+ reviews)
Report prepared by Robert Dove, v3.0, March 8, 2026