📈 Lead Source ROI Report

Real ServiceTitan Data: Every Job, Every Dollar, Every Source
Prepared for Stephanie & Kalen | March 5, 2026 | by Robert Dove | v2.0
● Live Data: 90-Day Lookback + LSA Rebuild Plan

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.
644
Total Jobs
$710K
Total Revenue
13
Lead Sources
$11.9K
Cut Immediately
100%
Jobs Tagged

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

Google LSA
16.6x
Service Direct
4.6x
Networx
1.6x
Service Local Pro
1.3x
Voolt
0.4x
Goodzer
0.0x
📍 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.
602
BSP Leads
174
Booked
29%
Booking Rate
$27,935
Wasted Cost
$293
Cost/Booked (90d)

🚨 Where Your Money Goes (BSP Billable Leads)

✅ Booked
162 | $23,035
❌ Not Booked
195 | $27,935
🚨 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

52%
Aug '25
38%
Sep
31%
Oct
21%
Nov
35%
Dec
24%
Jan '26
26%
Feb
👉 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.
$30,610
CURRENT MONTHLY
$29,500
NEW MONTHLY
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)

MonthLeadsSpentCost/LeadWhat Happened
Dec 202537$3,209$87 Baseline month
Jan 202672$5,174$72 📈 Best month, nearly doubled
Feb 202629$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.
$30,610
CURRENT MONTHLY
$29,500
PHASE 1 (NOW)
$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