What are the most common data-quality problems in ServiceTitan?
Duplicate customers, jobs stuck in non-final statuses, completed work that sits uninvoiced, job types used as informal tags, business units that encode two different ideas at once, and campaign fields inherited from years ago. None of these are software defects. They are the residue of busy people making reasonable local choices, and they all distort reporting in predictable directions you can test for.
The problems that actually move the numbers
- Duplicate customers and locations. Created when a caller's number does not match, or a service address is typed slightly differently. Splits history, breaks repeat-customer analysis and inflates new-customer counts.
- Jobs parked in a non-final status. Work that was really finished but never marked complete never reaches revenue reports, then arrives in a lump when someone cleans up.
- Uninvoiced completed jobs. Makes recent periods look weak and older periods look like they grew, purely from paperwork timing.
- Job types used as tags. Someone creates a job type to flag a promotion or a crew. Now the dimension that should describe the nature of work also encodes something else.
- Business unit drift. Units added for a temporary reason and never retired, so the same work reports under three labels depending on the year.
Duplicates deserve their own paragraph
Duplicate customer records are the most expensive of these because they are invisible in aggregate. Revenue totals stay correct — the money is counted once either way. What breaks is every question about behavior over time: repeat rate, lifetime value, membership attach, churn, and whether a marketing channel produces customers who come back.
The practical detection method is fuzzy matching on normalized phone number plus normalized service address, then human review of the candidate pairs. Do not merge automatically. Address normalization produces false positives at duplexes, apartment complexes and commercial parks, and an incorrect merge is much harder to undo than a missed one.
Audit by comparing two things that should agree
Good data audits rarely find problems by staring at one report. They find them by comparing two sources that ought to match and investigating the gap. Completed jobs versus invoiced jobs. Tracked calls versus bookings. Membership count versus recurring billing count. Technician hours versus payroll hours.
Each pair has a legitimate explanation for a small difference and a story worth chasing when the difference is large. That reconciliation habit is the foundation of any credible business intelligence work, and it does not require any new software to start.
Fix the process, not just the records
Cleaning historical records without changing the behavior that produced them buys you about a quarter. The durable fixes are narrower dropdowns, required fields at the moment of intake, retired options that no longer apply, and a short weekly exception report showing jobs that have been sitting in an unfinished status too long.
Automating that exception report is a small, unglamorous, high-return piece of operational AI. It works because it puts the problem in front of a person while the context is still fresh.
Topics: data quality · duplicates · audit · reporting hygiene
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.