CRITICAL REVENUE RECOVERY

LSA Battle Plan: $4.5M/Year Sitting on the Table

Budget is $10,000/week. We're spending $48/day. 684 leads analyzed. Every finding verified. Every solution costed. Here's exactly what's wrong and how to fix it.

📊 The Data (684 LSA Leads Analyzed)

684
Total LSA Leads
$35.9K
Total LSA Spend
$71
Cost Per Lead
7.5%
Dispute Rate (Good)
42%
Unknown Customer Names
-60%
Volume Drop (Jan to Mar)
3.3%
Budget Utilization
54%
Message Leads Unanswered

✅ What's NOT the Problem

✅ Services: All 14/14 Active

Every plumbing service is enabled. Find & repair leak, install faucet, install garbage disposal, install water heater, repair everything, unclog drain, sewer repair. This is not limiting our visibility.

✅ Service Area: 22+ Cities Covered

Belton, Blue Springs, Bonner Springs, De Soto, Edwardsville, Gardner, Gladstone, Grain Valley, Independence, Kansas City (MO+KS), Leawood, Lee's Summit, Lenexa, Liberty, Meriden, Mission, Olathe, Overland Park, Parkville, Prairie Village, Shawnee, Spring Hill, Stilwell. Full KC metro coverage.

✅ Dispute Rate: 7.5% (Under 15% Threshold)

41 credited out of 547 charged+credited leads. This is healthy. Google is NOT throttling us for excessive disputes. We were wrong about the 62% figure, that was from the Google Ads API counting all_conversions differently than LSA conversions.

🚨 What IS the Problem (5 Issues Found)

💀
Issue #1: 42% of Leads Have No Customer Name (287 of 684)
Why this is a problem: When Google shows "Unknown" as the customer name, it means the call was either too short for the system to capture the name, went to voicemail, was not answered, or the caller hung up before identifying themselves. We PAID for 194 of these at $71 each = $13,774 spent on leads that likely didn't connect properly.

💰 Revenue affected: $13,774 wasted spend + unknown number of lost bookings. 📈 LSA ranking affected: Short/missed calls signal to Google that we can't handle the volume, reducing future lead delivery.

🤖 AI Solutions

Option A: AI Voice Agent
AI answers overflow calls when Ashton is on another line. Captures name, service needed, books directly into ST.
✅ Pros: Zero missed calls. 24/7 coverage. Instant name capture. Brenda uses this.
❌ Cons: $300-$800/month. Customer may prefer human. Setup time 1-2 weeks.
Cost: $300-$800/mo | ROI: recovers 10%+ of $13K wasted = $1,377+/mo
Option C: 3CX Auto-Attendant
Configure 3CX to route unanswered calls to a queue with hold music and callback option instead of voicemail.
✅ Pros: Free (already have 3CX). Keeps caller on the line. No new vendor.
❌ Cons: Caller still waits. No name capture if they hang up. No text follow-up. Doesn't fix the root cause (single point of failure in Ashton).
Cost: $0 | ROI: lowest, only prevents some hangups
💬
Issue #2: 61 Message Leads, 54% With No Customer Name
Why this is a problem: Google sends both phone calls AND text messages through LSA. 61 leads came as messages. 33 of them (54%) have unknown customer names, which likely means nobody responded. Google tracks message response time and rate. If we're ignoring messages, Google reduces our message lead volume AND our overall LSA ranking. Brenda's team uses AI agents to respond to ALL message leads.

💰 Revenue affected: 61 potential jobs at $2,600 avg = $158,600 potential revenue. Even at 30% booking = $47,580. 📈 LSA ranking affected: Non-response to messages is a direct ranking signal.

🤖 AI Solutions

Option B: HubSpot Workflow
LSA message triggers HubSpot workflow. Auto-text + email response. Creates task for Ashton.
✅ Pros: Integrated with CRM. Full tracking. Part of existing HubSpot investment.
❌ Cons: Requires HubSpot approval first. May have delay vs direct AI response.
Cost: Included in HubSpot $1,450/mo | ROI: medium
Option C: Manual (Ashton checks messages)
Add "Check LSA messages" to Ashton's morning routine. Respond manually.
✅ Pros: Human touch. No new system. Ashton knows the business.
❌ Cons: Response time measured in hours, not seconds. Ashton already overloaded. 6 missed calls yesterday.
Cost: $0 | ROI: lowest (slow response = low ranking signal)
📈
Issue #3: Volume Dropping 60% (Jan 83 Leads to Mar 22 Pace)
Why this is a problem: LSA lead volume is in freefall. December: 66 leads. January: 83 leads (peak). February: 39 leads. March: 22 leads in 20 days (pace of ~33). That's a 60% decline from January. Our budget hasn't changed ($10K/week). Google is actively reducing how often they show our ad. This is the throttling in action.

💰 Revenue affected: At Jan pace (83 leads/month) x 80% booking x $2,600 = $172K/month. At Mar pace (33 leads) = $69K/month. Delta: $103K/month lost = $1.2M/year. 📈 LSA ranking affected: Lower volume creates a death spiral. Fewer leads = fewer bookings = lower booking rate = even fewer leads.

🤖 AI Solutions

Option B: Increase Budget
Throw more money at the problem. Increase weekly budget above $10K.
✅ Pros: None. Budget is already $10K/week and we're spending $48/day.
❌ Cons: Completely ineffective. We're at 3.3% utilization. More budget with the same behavior = same 3.3% utilization on a bigger number.
Cost: More wasted budget | ROI: zero
Option C: Google Support Escalation
Contact Google LSA support to investigate if there's a technical issue or manual penalty.
✅ Pros: Rules out technical glitch. Free. Google may have insights we can't see.
❌ Cons: Google support is slow. May not have actionable answer. Likely just tell us to improve behavior metrics.
Cost: $0, just time | Good as a parallel action, not primary fix
Issue #4: Review Count 352 (Competitors May Have 500+)
Why this is a problem: Brenda confirmed "review count is king" for LSA ranking. Free Agency article confirmed reviews are the #1 factor. We have 352 Google reviews at 4.92 stars. If competitors in KC have 500+ reviews, Google shows them first. Our review velocity is "stalled" at ~2/week. We need 5/week to hit 500 by August.

💰 Revenue affected: Indirect but massive. Higher review count = higher LSA ranking = more leads = more revenue. Brenda's $20M company attributes 35% of leads and 40% of revenue to LSA. 📈 LSA ranking affected: #1 factor per multiple sources.

⭐ IMPORTANT: Where Do Reviews Need to Come From?

Answer: Regular Google Business Profile (GBP) reviews. NOT the LSA review system.

LSA has a built-in "Request a review" button, but that only works for LSA customers and is limited. The reviews that actually boost your LSA RANKING are your regular Google Business Profile reviews, the same reviews everyone sees when they Google "Bright Side Plumbing."

Google pulls your GBP review count and rating INTO the LSA ranking algorithm automatically. More GBP reviews = higher LSA ranking = more LSA leads. This means:

✅ Get reviews from ALL customers, not just LSA customers. Every drain cleaning, every water heater, every sewer job. Whether they came from Google Ads, SLP, a referral, or walked in off the street.

✅ Send reviews to Google Business Profile (the regular Google review link), NOT the LSA review request tool.

✅ Every review on Google from any source helps LSA ranking.

❌ Do NOT limit review requests to only LSA customers. That would mean only ~33 potential reviews per month. Getting reviews from all 80+ jobs per month is 2-3x the velocity.

🤖 AI Solutions

Option B: Tech-Initiated Review Request
Tech hands customer a card or sends a text with the Google review link before leaving the job site.
✅ Pros: Immediate. Personal touch. Customer is at peak satisfaction right after job.
❌ Cons: Depends on tech remembering. Inconsistent. Can't filter unhappy customers. No automation.
Cost: ~$50 for cards | ROI: medium, depends on tech compliance
Option C: Nexus Auto-Text Review Request
Nexus script monitors ST for completed jobs. Sends automated text with Google review link 2 hours after completion.
✅ Pros: No HubSpot needed. Can deploy today. Automated.
❌ Cons: No CSAT filter (sends to everyone including unhappy customers). No CRM tracking. Basic compared to HubSpot workflow.
Cost: $0 (existing infrastructure) | ROI: medium
📋
Issue #5: LSA Lead Management Not Happening Daily
Why this is a problem: Brenda's #1 operational rule: "Mark ALL active and new calls daily in the LSA platform. Keep a close eye on booking rate, making sure calls are marked as booked rather than archived." We don't know if Ashton is doing this. If leads are sitting unmarked, Google sees a low booking rate and sends fewer leads. This is free to fix and may be the single biggest factor.

💰 Revenue affected: If booking rate drops from 80% to 60% in Google's eyes because leads aren't marked, Google could reduce volume by 30-50%. At current pace, that's $20K-$35K/month. 📈 LSA ranking affected: Booking rate is a direct ranking signal.

🤖 AI Solutions

Option B: Auto-Sync ST Bookings to LSA
Script matches ST booked jobs to LSA leads by phone number and auto-marks them as booked in LSA.
✅ Pros: Fully automated. No human step. Always accurate.
❌ Cons: LSA has no API for marking leads (must use UI or Google Ads API). Complex to build. May not be technically possible.
Cost: Engineering time | ROI: high if feasible
Option C: Weekly Batch Review
Robert reviews LSA leads every Monday. Marks booked/not booked in bulk.
✅ Pros: Simple. Robert has context.
❌ Cons: Weekly is too slow. Google wants daily signals. Leads sit unmarked for days.
Cost: Robert's time | ROI: low (too infrequent)
👪
Issue #6: Family Lead Split (Unconfirmed)
Why this is a problem: Kalen's family company does $20M+ on LSA. If there is a lead split where BSP only gets 25% of leads, our effective budget is $2,500/week, not $10,000. This would explain the 3.3% utilization. BUT we don't know if the split exists or what percentage it is. Kalen needs to answer this question.

⚠️ Status: UNANSWERED. Kalen needs to confirm.

This is a one-question conversation: "Kalen, is there a lead split between Bright Side and the family company on LSA? If so, what percentage does BSP get?"

📅 Execution Timeline

TODAY
🔥 Ashton marks ALL LSA leads as booked in the dashboard. Daily from now on. Zero cost.
TODAY
💬 Check and respond to ALL 61 pending LSA messages. Answer every single one.
TODAY
👪 Ask Kalen about the family lead split. One question, one answer.
MONDAY
🤖 Deploy AI text-back for missed calls (Nexus script, 30-second auto-text with booking link).
MONDAY
💬 Deploy AI message auto-responder for LSA messages (OpenAI + Nexus).
MONDAY
📨 Set up daily Slack reminder for Ashton: "Mark LSA leads as booked" at 8 AM CT.
WEEK 1
⭐ Deploy automated review request (post-job text with Google review link). Target: 5/week.
WEEK 2
📸 Upload all 38 photos to LSA profile. Verify profile completeness 100%.
WEEK 2-3
📈 Monitor LSA Intelligence Engine daily. Look for volume recovery signals.
WEEK 4
📊 Measure: Has volume recovered from 33/month pace toward 83/month? If not, escalate to Google support.

💰 Revenue Impact

$69K/mo
Current LSA Revenue (33 leads/mo)
$172K/mo
Target (83 leads/mo, Jan pace)
$389K/mo
Full Utilization ($43K budget)
$103K
Monthly Gap (Current vs Jan)

Every fix in this plan is either free or under $500/month. The revenue at stake is $103K/month ($1.2M/year) just to get back to January levels. Full utilization at $10K/week budget with 8.95x ROI = $4.66M/year.

🤖 AI Solution: Broccoli AI (Brenda's Recommendation)

🥦
Broccoli AI: AI Voice + Message Agents for Plumbing

broccoli.com | ServiceTitan Marketplace | Y Combinator ($24.2M raised)

✅ Why This Fits BSP Perfectly

Built specifically for plumbing/HVAC/trades. Not a generic answering service. NOW auto-books via web scheduler automation (built March 31 2026). Playwright fills ST form automatically. dispatch board. 85% booking rate. Handles 100+ concurrent calls. Brenda's company uses this exact approach.

Two Agents We Need:

📞
Step 1: Book a demo with Broccoli AI (broccoli.com)
🔎
Step 2: Confirm ServiceTitan integration works with our setup
💬
Step 3: Confirm they handle LSA messages (not just calls)
💰
Step 4: Get pricing. Compare to: $13,774/month in missed call waste + $103K/month in lost LSA revenue
Step 5: Deploy call agent first (biggest impact). Add message agent next.
📈
Step 6: Monitor LSA volume recovery over 2-4 weeks. Target: back to 83 leads/month.

🚫 Fraud Mitigation: India Bot Spam BANNED

✅ COMPLETED: India, Pakistan, Malaysia Hard-Excluded (March 20)

21 new geographic exclusions applied across all 7 BSP campaigns via Google Ads API. 66 fake India conversions and $97.65 in wasted spend identified. Refund request prepared for Tag Implementation call. GA4 audiences created: "Non-US Traffic" (14152960317) for exclusion and "US Traffic Only" (14153307479) for clean reporting.

🙌 The Cost of Doing Nothing

🔴 Every day we don't fix this: $3,400 in potential revenue lost

$103K/month gap / 30 days = $3,400/day. The fixes cost less than one day of doing nothing.