Plumbing for rentals · DFW · Field-service software
ServiceTitan runs big residential trade shops: about 10,800 customers, each bringing it roughly $89k a year. A plumber serving landlords needs maybe a fifth of it, plus a few rental-specific things it only handles with custom fields. This page sizes it up, explains how rental work really flows (and the Texas license rules that come before any software), and lays out how we build the slice he needs for about $12 a month.
The short answer
An all-in-one operating system for residential trade contractors: phones, booking, dispatch, a tech app, flat-rate pricing, payments, marketing, payroll and, lately, AI agents. It's a public company (TTAN), and its numbers tell you who it's built for.
Sources: ServiceTitan 10-K (FY2026) · servicetitan.com/pricing · Projul and FSMCompare price reports (competitor-written; indicative) · ServiceTitan PM docs.
Each ServiceTitan capability, judged for a one-to-three-person shop whose customers are property managers and landlords. The last group is where rental work needs more than ServiceTitan gives out of the box.
| Module | What it does in ServiceTitan | For him | How we'd cover it |
|---|---|---|---|
| Running the job | |||
| Customers & locations | Customer = who pays; location = where the work is; contacts link to both. | Day 1 | Build manager → property → unit → equipment |
| Scheduling & dispatch | Drag-and-drop board, route optimization; Dispatch Pro and Scheduling Pro add-ons. | Day 1 | Build a calendar now, a board at 2+ techs |
| Technician app | Photos, forms, equipment, invoicing; core features work offline. | Day 1 | Build as an installable web app |
| Pricebook Pro | Pre-loaded flat-rate catalog with regional price averages and supplier catalogs. | With a crew | Build ~30 rental jobs he actually does |
| Estimates & financing | Proposals with options; consumer financing. | Day 1 estimates Skip financing | Build estimates are how over-limit approvals work; managers don't finance |
| Invoices, payments, statements | Online pay, pay by bank, balance-forward statements in bulk. | Day 1 | Build invoices & statements · Rent Stripe |
| Customer portal | Customers see invoices and history, accept estimates. | Day 1 | Build the manager portal is the selling point |
| Memberships & agreements | Recurring services and maintenance plans. | With a crew | Build later, as portfolio maintenance plans |
| Running the office | |||
| Phones Pro & AI voice agent | Call tracking, transcription, scorecards; 24/7 AI booking billed per call. | Skip | Rent a business-line app; rental work arrives by email and portal, not phone |
| Marketing Pro | Campaigns, direct mail, review requests. | Skip | His customers are a few dozen managers; a vendor packet does more |
| Reporting | KPI dashboards; advanced reporting only in The Works. | With a crew | Build 5 reports: revenue by client, days-to-pay, callbacks, no-access trips, jobs/day |
| Payroll & timesheets | Payroll, commissions, GPS-checked timesheets. | With a crew | Rent QuickBooks Payroll; export timesheets |
| Inventory & purchasing | Purchase orders, parts tracking, bill scanning. | With a crew | Build a van-stock list later |
| Fleet Pro | GPS tracking and vehicle maintenance. | Skip | A location stamp on "arrived" covers what managers ask |
| Accounting sync | QuickBooks Online/Desktop, Sage Intacct, Xero. | Day 1 | Rent QuickBooks Online; we push invoices and payments |
| Atlas & Max (AI) | AI assistant and agents across the business. | Skip | Our AI does one job, reading messy work orders; code decides |
| Rental-specific: where ServiceTitan is thin | |||
| Not-to-exceed limits | A custom field shown to techs. | Core gap | Build a hard gate with a recorded approval |
| Manager's WO# / PO# | A custom field. | Core gap | Build required per client, printed on every invoice |
| Intake from AppFolio / Property Meld | No direct feed found (same for Jobber and Housecall Pro): every job is retyped. | Core gap | Build email intake: template parsers, then AI |
| Tenant ≠ who pays | Tenant split billing, switched on by support. | Day 1 | Build resident on the unit; scheduling link by text |
| Equipment across a portfolio | Equipment records per location. | Day 1 | Build the portfolio view that sells replacement plans |
| License-aware dispatch | Not found. | Texas-specific | Build each worker's TSBPE credential gates which jobs they can take |
Capabilities from servicetitan.com/features, Pro add-ons and the ServiceTitan help center, checked October 2026.
Small-shop tools publish their prices and handle "one manager, many properties" reasonably well. None has a built-in not-to-exceed field, and none takes work orders straight from AppFolio or Property Meld.
| Tool | Published price / month | QuickBooks | Rental fit |
|---|---|---|---|
| Housecall Pro | Basic $59 · Essentials $149 (5 users) · MAX $299 (8 users), billed yearly | Essentials+ | Parent/child billing (unit notified, manager invoiced). Editing offline not supported. |
| Kickserv | Start $60 (5 users) · Run $119 (10 users) · Scale $199; 20% off yearly | All plans | Cheapest; connects to your own Stripe account. Thin feature set. |
| Jobber | Core $29 (1 user) · Connect $99 · Grow $149, billed yearly; extra users $29 | Connect+ | Properties under a client; PO as a custom field; ACH at 1%. |
| Service Fusion | Starter $208 · Plus $325 · Pro $533, unlimited users | Yes | Built-in PO# field; customer portal only on Pro. |
| Workiz | Not published (third-party: ~$225–325) | Standard+ | Built-in phone and AI answering, at extra cost. |
| ServiceTitan | Not published (reported $245–500 per tech) + onboarding | Yes | Strongest manager model; limits and PO as custom fields. |
Prices from each vendor's pricing page, checked 2026-10-05, except where marked third-party: Housecall Pro · Kickserv · Jobber · Service Fusion · Workiz (third-party). Whichever he picks, get data-export rights in writing.
Software cost, not counting QuickBooks or card fees (he pays those either way)
Change the crew size and horizon. ServiceTitan is shown as a range because its prices are only reported, not published.
In-house also costs about 140 hours of building across Phases 1–2, plus a few hours a month of upkeep. That's the real price; the hosting is a rounding error.
In Texas, plumbing for pay needs a state license or registration. That covers faucets, toilet flappers, drain clearing and water heaters, and the work has to be done for a company that has a Responsible Master Plumber (RMP). No "minor repair" exception for handymen turned up in the statute or the board's 2026 rules.
The stakes: unlicensed plumbing is a Class C misdemeanor, administrative penalties run up to $5,000 per violation per day, and since January 2026 the board charges the full $4,000 per violation for employing unlicensed people. The regulator is the Texas State Board of Plumbing Examiners (TSBPE), still independent, not TDLR.
| Credential | To get it | Fee | What it allows |
|---|---|---|---|
| Plumber's Apprentice | Age 16+, fingerprints. No experience. Hours count only after registering. | $15 | Assists with a licensed plumber on site the whole time. |
| Drain Cleaner-Restricted | Apprentice registration + training affidavit | $18 | Clears drains alone under the RMP's general supervision. |
| Drain Cleaner / Residential Utilities Installer | 4,000 h as drain cleaner-restricted / 2,000 h as apprentice | $18 each | Cleanouts and p-traps / yard water and sewer lines on 1–2 family homes. Together (with 4,000 h) they unlock video supervision for fixture repair and replacement. |
| Tradesman Plumber-Limited | 4,000 h, 24-h course, exam | $71 | Any plumbing on 1–2 family homes under an RMP, i.e. exactly single-family rentals. Can supervise apprentices there. |
| Journeyman | 8,000 h, 48-h course, exam | $80 | All plumbing, under an RMP. |
| Master → Responsible Master Plumber | 2 years as journeyman (cut from 4 in Sept 2025); RMP adds $300k liability insurance on file | ~$450+ | The license a plumbing company runs under. Pulls permits. One company at a time. |
From TSBPE license pages and the March 2026 rules; fees are the board's application and license fees (exam vendor fees may be extra). Up to 1,000 hours can come from classroom training.
Path A · recommended
Fastest and cheapest. Hours start counting the day he registers; about 2 years (4,000 h) to Tradesman-Limited, which covers 1–2 family homes. Add Drain Cleaner-Restricted early so he can clear drains alone.
Path B
Board rules allow an owner who employs a Responsible Master Plumber. The RMP serves one company at a time and carries $300k liability (managers will want $1M). Payroll from day one.
Path C · alongside A
Paint, drywall, flooring, hardware, cleaning, trash-out on unit turns, with a Dallas Home Repair license. Same customers, legal now. Caution: rekeying locks for pay may need a state locksmith license.
Our read: A and C together. He learns plumbing on the RMP's clock while his own make-ready business builds the manager relationships. The software works for both: it records each worker's credential and won't dispatch a gas water heater to an apprentice alone. Before taking plumbing work orders through his own company, confirm the subcontracting rules with a Texas attorney; the research flagged that as unsettled.
$15 plus fingerprints. Hours only count from this day, so it comes before anything else. tsbpe.texas.gov
$18 plus a training affidavit. Drains are the most common rental call, and this lets him do them without a licensee standing there.
Ask the owner straight out: "I want to learn the rental side and get my Tradesman-Limited." Many are short-staffed for turns.
The 2020 application lists $48/yr; confirm the current fee with Dallas Code Compliance.
W-9, $1M general-liability certificate naming each manager as additional insured, ACH form, license and registration numbers, a one-page price list.
Two questions: can his company take plumbing work orders and send them to an RMP partner, and does rekeying need a locksmith license?
Managers dispatch from their property software or a maintenance coordinator. Vendors usually get an email plus, sometimes, a portal login. None of these offers vendors an API; email is the one channel all of them send, which is why our intake reads email.
| Platform | What the vendor gets |
|---|---|
| AppFolio | Vendor Portal (the manager switches it on): accept or decline, submit estimates and invoices, notes with up to 10 photos, upload W-9 and insurance, direct deposit. |
| Property Meld | Vendor Hub: schedule with residents, submit invoices. Plugs into AppFolio, Buildium, Rent Manager, Yardi, Rentvine. Its Vendor Nexus program refers vetted vendors to managers. |
| Buildium | Work orders by email; a vendor website with a ledger the manager controls. |
| Yardi | VendorCafe for invoices, work orders and payment status; VendorShield compliance, which the vendor pays for. |
| Rentvine · Propertyware | Vendor portal / app for invoices, estimates, ACH and insurance updates. |
| Latchel | Vendors must use its app; before/after photos required to invoice; 10% fee deducted. |
| Lula | App-based dispatch, no sign-up fee, paid in 5 business days. Dallas is a Lula market. Requires $1M liability. |
Sources: AppFolio · Property Meld · Latchel · Lula Pros. Lula and Property Meld's Vendor Nexus are also ways to find the first customers.
Sources: TXR-2201 sample · TXR-2001 sample · Prop. Code §92.056 · DFW-area vendor packet.
The big single-family landlords are real but small in share: Invitation Homes owns 3,554 Dallas homes and outsources plumbing to vetted vendors; AMH owns 3,663 in DFW. Together that's about 2% of one-unit rentals. The real market is small landlords and the third-party managers who run their houses, and that's who the manager portal is built for.
Sources: ACS 2024, table B25032 · Invitation Homes 10-K · AMH 10-K.
Work orders come in from wherever the property manager sends them, get cleaned up into one queue, and flow out to four audiences. Everything inside the dashed boxes at the bottom is rented, not built.
All of it runs on Cloudflare (Workers + D1 + R2), the same account that already hosts the college and house-flip plans. No server to patch.
Generic tools key everything off a customer. A rental plumber's world is manager → property → unit → asset, and the bill-to is almost never the person who opens the door. Get this shape right and most features fall out of it.
Client — manager or landlord · terms · default NTE · invoice rules └─ Property — address · lockbox notes (encrypted) · main shut-off └─ Unit ├─ Resident — name · phone · text consent · move-in / move-out ├─ Asset — water heater (serial, year, size, fuel) · toilets · disposal └─ Work order — source · PM's WO# / PO# · NTE · priority · status ├─ Visit — window · tech · arrived / left · GPS stamp │ └─ Photos (before/after) · checklist · parts used · signature ├─ Estimate → Approval — who approved, when, how much └─ Invoice → Payment — rolled into the client's monthly statement Company — RMP license · insurance expiry · W-9 → reminders └─ Worker — TSBPE credential → which jobs they may take alone
The asset table is the quiet moat: after a year, he knows the age of every water heater across a manager's portfolio and can sell a replacement schedule before they fail.
One status machine, enforced in code. The red step is the one that loses money when skipped: work above the manager's not-to-exceed limit needs a recorded approval before the wrench turns.
Side exits: Parts on order, No access (billable trip charge), Callback (tracked separately so his re-do rate stays honest).
Same dual-brain split we use elsewhere: the model reads messy text, code makes every decision. A model can never accept a job, set a price, or skip the NTE gate.
| Layer | Does | Never does |
|---|---|---|
| Fast pathcode | Parses known email templates (AppFolio, Property Meld) with fixed rules. Most volume should land here, at zero cost. | Guess at anything it can't match; it hands off instead. |
| ReasoningClaude Haiku 4.5 | Reads a free-text email or text and returns JSON: address, unit, resident, issue, PM's WO#, NTE, plus a confidence score. | Decide priority, price, or whether to take the job. Below 0.8 confidence it goes to a review queue. |
| Decisioncode | Matches the address to a known unit, dedupes by WO#, sets priority from keyword rules (active leak, no water, sewage backup = emergency), enforces NTE, queues it. | Write customer-facing text. |
Budget: about 1,500 tokens in and 300 out per email ≈ $0.003 per work order on Haiku 4.5 ($1 / $5 per million tokens). At 200 work orders a month that's about 60¢. Every call is logged with its input, output and cost, so any work order can be replayed.
| Piece | Choice | Per month |
|---|---|---|
| App, API, database, photos | Cloudflare Workers Paid, with D1 (SQLite) and R2 for photos. Tech app is a PWA: installs from the browser, works offline in a crawlspace. | ~$5 |
| AI intake | Claude Haiku 4.5, only for emails the fast path can't parse | < $1 |
| Tenant texts | Twilio, registered as a sole-proprietor A2P 10DLC brand ($4.50 + $15 vetting once, $2/mo campaign) plus per-message fees | ~$5 |
| Payments | Stripe: card 2.9% + 30¢; ACH 0.8% capped at $5. Push managers to ACH: a $1,400 water heater costs $5 to collect, not $41. | per payment |
| Accounting | QuickBooks Online Simple Start. He needs this whether he builds or buys; the app pushes invoices and payments to it. | $38 |
| Domain + email | Cloudflare Registrar + Email Routing (also feeds the work-order inbox) | ~$1 |
| Total software | Excluding payment fees and the QuickBooks he'd pay anyway | ≈ $12 |
Sources: Twilio 10DLC fees · Stripe pricing · QuickBooks pricing (NerdWallet) · Cloudflare Workers pricing. Prices as of Sept–Oct 2026.
Each phase is gated by real jobs, not by a calendar. Effort assumes evenings with Claude Code doing most of the typing; your son is the product owner (he writes the checklists, prices and statuses), you're the builder.
Log every step he actually does: how the order arrived, how he reached the tenant, what the manager wanted on the invoice. That log is the spec. Building before this means building the wrong thing.
Three samples per source (AppFolio, Property Meld, a landlord's free text). These become the fast-path templates and the AI extractor's test set.
Start 10DLC early: brand vetting takes days and texts sent before approval get filtered by carriers.
Import from his spreadsheet. Lockbox codes encrypted at rest, shown only on the day of the visit.
Manual entry is fine at this stage; the inbox comes in Phase 2.
Offline-first: queue photos and notes locally, sync when signal returns. Big buttons, works with wet hands.
Managers reject invoices missing the WO# or with labor and materials lumped together, and some won't pay anything older than 45 days. Photos attached means fewer disputes and faster payment.
Magic-link login per manager; each client sees only its own properties.
Measure on the Phase 0 sample set before turning it on: target ≥95% correct unit match.
Approval stored with name, time and amount; the invoice cites it.
Cuts the "no access" trips that kill a day. Opt-in language registered with 10DLC.
Recurring, schedulable work between tenants: the steadiest revenue in the rental niche.
Each job type carries the credential it needs (gas water heater → licensed plumber on site; drain clearing → drain-cleaner registrant can go alone), and dispatch refuses a mismatch. Every open order shows days since the tenant reported it against Texas's 7-day reasonableness presumption.
Managers pay on terms; he needs to see who owes what at 30/60/90 days.