A complete audit of ServiceTitan data integrity, financial proof, and the automated systems that protect your numbers going forward.
ServiceTitan is the system of record. It holds every job, every invoice, every lead source tag. But like any system that depends on human data entry, it contains errors. The old agency never checked. We built an automated audit system that catches and corrects these errors every week.
The system is not broken. The inputs had errors from the old agency's setup and from intake staff not always asking "how did you hear about us?" We built Experiment #34: ServiceTitan Fortress to catch and correct these errors automatically, just like a bank reconciliation catches and corrects statement errors.
The Fortress is a 6-phase automated audit system built specifically to fix ServiceTitan data quality. It runs weekly and cross-references ServiceTitan against Google Ads, GA4, 3CX phone records, and Facebook to catch misattributions, phantom leads, and source tagging errors. Every correction is logged with a before/after record so you can see exactly what changed and why.
The bottom line: ServiceTitan is the right system. The data entry errors are normal for any business. What is NOT normal is having an automated system that catches them. Most plumbing companies have these same errors and never know. BSP now has a system that finds them, fixes them, and proves the corrections. That is the difference.
Tagged as "Google" lead in ServiceTitan. Google Ads got credit for $15,215 in revenue it did not generate.
Confirmed as Service Local Pro (SLP) lead. Kalen verified on dispatch board, March 16. SLP now gets proper credit.
Google Ads ROI was overstated by $15,215. SLP ROI was invisible. Budget decisions based on this data would send money to the wrong channel.
Cross-referenced ServiceTitan source tags against actual lead source data. The Fortress flagged the mismatch between what ServiceTitan recorded and what the dispatch board showed.
17 jobs tagged as "Angi" leads in ServiceTitan, attributing $2,640 in revenue to Angi.
BSP does not advertise on Angi. These are intake errors from not asking "how did you hear about us?" at booking.
$2,640 attributed to a channel BSP doesn't use. Every other channel's ROI is distorted when phantom sources absorb real revenue.
Fortress cross-checked active advertising channels against ServiceTitan source tags. Angi is not in BSP's active channel list, so every "Angi" tag was automatically flagged for review.
6 of 7 Google Ads campaigns had ZERO positive location targets. Ads served globally. 67 "Book appointment" conversions from India (61), Pakistan (2), Malaysia (2). 71.6% of clicks were from outside the US.
All 7 campaigns now target 22 KC metro cities with 11 international exclusions. Fixed March 15 via Google Ads API.
Smart Bidding was optimizing for clicks from India instead of KC homeowners. $56,604+ in ad spend wasted globally by the old agency. Google's AI was learning the wrong patterns.
Nexus Offensive Engine Geo Fortress subsystem analyzed geographic_view data via Google Ads API. Found that 71.6% of all clicks originated from outside the United States.
28 PRIMARY conversion actions. user_engagement (218 events/week!) was teaching Google's AI to optimize for scrolling, not phone calls. A dead Housecall Pro integration event was still firing.
8 clean conversion events. generate_lead created (fires on phone calls + form submissions only). Smart Bidding now has clean signals to optimize against.
Google was spending your ad budget to get people who scroll, not people who call. Every dollar was partially wasted because the AI was rewarding the wrong behavior.
Conversion Integrity subsystem audited all 69 conversion actions via Google Ads API. Identified 28 marked as PRIMARY when only ~8 should be. Found ghost events from deprecated integrations.
Large revenue ($106,459), 6 jobs, commercial account. Flagged for source validation due to high value.
Tagged "Existing Customer." Commercial whale at 9249 Ward Parkway. 100+ estimates since October 2021. Kalen confirmed correct tagging.
The system validates correct data too. Not every entry is wrong. This builds confidence that when the Fortress says something is right, it IS right.
Revenue Bloodhound subsystem flagged high-value accounts for validation. Kalen confirmed correct tagging. No correction needed.
This is not a guess. This is not a projection. This is a mathematical proof derived directly from QuickBooks actuals using the same methodology that CPAs use in financial audits. Every line item below has a receipt. Every formula is shown. Every step is verifiable.
The Equation Engine (Experiment #5) exists to ensure that every number in every report is mathematically validated before it reaches your desk. No rounding errors, no estimation, no "trust me" numbers. If you want to verify any line item below, open QuickBooks and check it yourself. The numbers will match.
campaignId field and confirmed it matched what we wrote.
PATCH /jpm/v2/tenant/{tenant_id}/jobs/{job_id}
Body: {"campaignId": 1591}
Result: 200 OK ✅
Campaign ID 1591 = "Pay Per Click (PPC)" in ServiceTitan.
GET /jpm/v2/tenant/{tenant_id}/jobs/{job_id}
Check: job.campaignId == 1591?
Result: YES ✅ (19 out of 19 confirmed)
This is the verification step. We do not just write and hope. We write, then check, then report.