How to Build Plumbing Contractor Management Software
Building plumbing contractor management software costs $120K-$200K for an MVP and takes 12-16 weeks. RaftLabs builds field service platforms with five core systems: emergency dispatch with nearest-available routing, a flat-rate pricing book, truck parts inventory per vehicle, license compliance validation, and permit tracking per job. The hardest problem is truck inventory. Without it, technicians arrive on-site without the required part and the customer waits another four hours.
Key Takeaways
- Most plumbing companies use flat-rate pricing, not time-and-materials. Your pricing book needs 500-1,000 task entries with fixed prices. Technicians select tasks on-site and the system totals the invoice. This is different from how most field service platforms work out of the box.
- Truck inventory is the unsolved problem. Dispatchers must know what parts each truck carries before routing to an emergency job. Without this, technicians arrive on-site without the required part, cannot complete the job, and the customer waits for a second truck roll. Most companies skip this and absorb the cost.
- An MVP covering dispatch, flat-rate pricing, scheduling, and invoicing costs $120K-$200K and takes 12-16 weeks. A full platform with truck inventory, permit tracking, and service agreements costs $240K-$400K over 22-30 weeks.
- License compliance is a legal requirement. A journeyman plumber cannot legally perform work that requires a master plumber license. Your dispatch module must validate that the assigned technician holds the required certifications for the job type before confirming the assignment.
- ServiceTitan dominates the plumbing software market at $398+ per month. Build custom when you operate 20 or more technicians across multiple markets, or when you're building a plumbing-specific SaaS for a regional or franchise operator that ServiceTitan's pricing doesn't fit.
A plumbing company routes a technician to an emergency water heater replacement. The technician drives 45 minutes to the job site, inspects the unit, and realizes their truck doesn't carry a 40-gallon natural gas water heater. The customer waits four more hours. The company eats the cost of a wasted truck roll and an unhappy customer.
This happens multiple times a week at most plumbing companies. It's not a training problem. It's a data problem. Dispatchers don't have real-time visibility into what parts each truck is carrying.
Building plumbing contractor management software means solving the dispatch and pricing problems that every generic field service platform handles, plus the truck inventory problem that almost nobody solves.
According to the Field Service Management market report by MarketsandMarkets, the global field service management market is projected to reach $6.9 billion by 2028. Plumbing-specific tooling is a fast-growing slice of that, driven by service companies needing more than generic scheduling platforms.
What plumbing contractor software actually covers
A full plumbing contractor platform needs more than scheduling and invoicing. The specific operational requirements of a plumbing business create requirements that generic field service tools handle poorly.
A full platform needs:
Emergency and scheduled dispatch with nearest-available routing
Flat-rate pricing book with on-site task selection
Truck parts inventory with real-time visibility per vehicle
License and certification tracking with dispatch compliance validation
Permit application, approval, and inspection tracking per job
Service agreement management for recurring maintenance contracts
Large job project billing with progress invoicing and material procurement
Multi-market analytics for companies operating across regions
Build the MVP in this order: dispatch and scheduling, then flat-rate pricing and invoicing, then license compliance. Truck inventory, permit tracking, and service agreements come in the second phase. Get the daily dispatch workflow right before adding operational complexity.
Emergency dispatch and service call routing
Plumbing emergencies don't wait. A burst pipe, a backed-up main line, or a failed water heater at a restaurant are calls that need a technician on-site within two hours or the customer calls a competitor.
The dispatch module needs to show dispatchers:
Available technicians sorted by current location (GPS from the mobile app)
Each technician's current job status and estimated completion time
Technician license level (master, journeyman, apprentice) relevant to the job type
Inventory on the technician's truck for jobs requiring specific parts
Routing an emergency call means matching the nearest available technician who is both licensed for the work and stocked with the required parts. Most dispatch software gets the first two right and ignores the third.
For GPS location, use background location from the mobile app (iOS and Android both support this). Update position every 2-5 minutes while the technician is active. Don't poll every 30 seconds. It drains the phone battery and generates unnecessary API calls.
For job status, the technician updates status through the mobile app: on the way, arrived, job started, job complete. These status transitions trigger notifications to the dispatcher and, optionally, to the customer via SMS.
"The companies winning in residential service are those where the dispatcher knows more about a truck's capability than the technician does. Technology bridges that gap." -- Mike Agugliaro, Field Service Industry Consultant and co-founder of CEO Warrior
Flat-rate pricing book
Most residential plumbing companies use flat-rate pricing. The customer agrees to a fixed price for a specific task before work begins. This removes haggling, sets clear expectations, and lets technicians close jobs on-site without calling the office for approval.
A flat-rate book has 500-1,000 task entries. Each entry has a task name, description, and price. Categories include drain cleaning, faucet repair, toilet repair and replacement, water heater service, pipe repair, fixture installation, and others.
The technician interface on the mobile app should:
Let the technician search or browse tasks by category
Let them add multiple tasks to a single job
Show the running total as tasks are added
Generate an invoice for customer signature on the spot
Prices vary by market. A company operating in multiple cities needs market-level price overrides. The price for a water heater installation in San Francisco is different from the price in Phoenix. Build pricing tiers into the data model from the start.
The flat-rate book also serves as the diagnostic guide. Technicians reference it to check if a task they've identified on-site is in scope for a flat-rate quote or needs to go through an estimate process for larger or more complex work.
Truck inventory management
This is the hardest operational problem in plumbing software and the one that generates the most revenue loss when unsolved.
Every service truck carries a standard set of parts: common faucet cartridges, toilet flappers and fill valves, pipe fittings in standard sizes, pressure regulators, hose bibs, drain snakes and cables. For most routine service calls, the exact inventory doesn't matter. For emergency calls requiring specific equipment, it matters completely.
Real-time truck inventory requires three workflows.
First, technicians must confirm parts used after each job. When a technician completes a water heater installation, they confirm in the mobile app that they used one 40-gallon natural gas water heater and the associated fittings. The system deducts these items from their truck inventory record.
Second, a restock request workflow triggers when truck inventory falls below a threshold. When a truck's water heater stock drops to zero, the system creates a restock request for the warehouse or supply house. The technician can also manually request restocking when they need something specific.
Third, a parts transfer workflow handles the case where a technician needs a part that another truck or the warehouse has. The dispatcher can authorize a parts transfer: the technician picks up the part from another location or the warehouse delivers it to the job site.
The failure mode without truck inventory is the costly truck roll. A technician dispatched to a job they can't complete because the required part isn't on their truck. At $150-$300 in labor time per failed truck roll, a company doing 50 calls per day can absorb significant losses weekly from this problem alone. PHCC's industry data shows that failed truck rolls are among the top controllable cost drivers for plumbing contractors in the US.
Most companies absorb this cost and call it an "operational reality." It's not. It's a solvable data problem. RaftLabs has seen this pattern in field service builds across multiple verticals. The shops that solve it see truck roll failures drop below 5% within the first 90 days of using real-time truck inventory.
License and certification compliance
Plumbing work requires specific licenses. The legal structure varies by state, but the core license levels are:
Master plumber: can supervise work, pull permits, and operate a plumbing business
Journeyman plumber: can perform most plumbing work under master supervision
Apprentice: limited scope, must work under direct supervision
Beyond core licenses, specialized work requires certifications:
Backflow prevention: required to install and test backflow prevention devices (often required by municipal water authorities)
Medical gas piping: required for work in healthcare facilities
Your dispatch module needs to know what certifications each technician holds and their expiration dates. When assigning a technician to a job, the system should validate that the assignment is legal. A journeyman cannot legally perform work that requires a master plumber in most jurisdictions.
Certification expiration tracking matters for insurance and liability reasons as much as for legal compliance. Store expiration dates and surface alerts 60 and 30 days before any certification expires. Send alerts to the technician and to the operations manager.
Permit tracking per job
Most plumbing work requires a permit. The permit workflow varies by municipality but typically follows: application submitted, permit issued, rough inspection, final inspection and sign-off.
Your system should track per job:
Whether a permit is required for this job type in this jurisdiction
Permit application status and application number
Permit issue date and expiration date
Scheduled inspection dates
Inspection results (pass, fail with required corrections)
Final sign-off date
Many companies track permits on a spreadsheet or in email. The risk is a failed inspection when the municipality catches up, or a lien on the property until the permit is properly closed.
For companies doing new construction plumbing or major renovation work, the permit workflow is a critical path item. Work cannot proceed past the rough-in stage until the rough inspection passes. Build permit status into the job progress tracking so project managers can see when work is blocked pending an inspection.
Service agreements and recurring revenue
Annual service agreements are a meaningful revenue line for plumbing companies: annual water heater flush and inspection, drain cleaning contracts, water softener maintenance, backflow testing (required annually by many municipalities for commercial properties).
Service agreement management needs:
Contract terms: services included, annual or semi-annual schedule, price per year
Automatic scheduling: create service appointments at the correct interval based on contract terms
Renewal tracking: alert 60 days before contract expiration with renewal rate and history
Separate reporting from one-time calls: recurring revenue tracked as a distinct revenue category
Service agreements require a different sales and pricing workflow than one-time calls. They're sold by the salesperson or account manager, not quoted on-site by the technician. Build service agreements as a separate module with its own pricing and scheduling logic.
Build costs and timeline
Option 1: MVP. Dispatch, flat-rate pricing, scheduling, invoicing, license tracking, basic job management. Timeline: 12-16 weeks. Team: 2 senior backend, 1 frontend, 1 designer. Cost: $120,000-$200,000. Running cost: $1,000-$2,500 per month.
Option 2: Full platform. Everything in Option 1 plus truck inventory management, permit tracking per job, service agreement management, large job project billing with progress invoicing, multi-market pricing, and operations analytics. Timeline: 22-30 weeks. Team: 3 senior backend, 2 frontend, 1 mobile. Cost: $240,000-$400,000. Running cost: $2,500-$5,000 per month.
Option 3: Buy and configure. ServiceTitan is the dominant platform for plumbing, HVAC, and electrical at $398+ per month. Jobber ($69-$249/month) covers smaller operations well. FieldEdge is a mid-market option with stronger flat-rate pricing support. For companies with under 20 technicians, buying is almost always more cost-effective than building. Build custom when you're operating 20 or more technicians across multiple markets and the per-seat licensing cost exceeds the cost of ownership for a custom system, or when you're building a SaaS product for plumbing franchises or regional operators.
Technology decisions specific to plumbing software
The mobile app is the most important piece of the system. Technicians spend their day in the van, not at a desk. The app needs to work in areas with poor cellular coverage. Build offline capability for job creation, time tracking, and flat-rate task selection. Sync when connectivity returns.
For truck inventory, SQLite on the mobile device handles offline inventory deduction well. When the technician completes a job offline, the deduction is recorded locally and synced to the server when connectivity is available. Conflicts (two technicians deducting from the same warehouse inventory offline) are rare and can be resolved with a last-write-wins policy for truck-level inventory.
For GPS and dispatch, use background location with geofencing rather than continuous streaming. Define a geofence around the job site. When the technician enters the geofence, the system automatically updates status to "arrived." This reduces manual status updates and improves dispatcher visibility without draining phone batteries.
For flat-rate pricing, store the pricing book in a PostgreSQL database with market-level overrides. The mobile app caches the full pricing book locally so technicians can work without network connectivity. Refresh the cache daily or when prices change.
RaftLabs has shipped field service platforms and contractor management SaaS products. See our SaaS application development service or talk to us about your architecture.
Frequently asked questions
- An MVP covering service dispatch, flat-rate pricing, scheduling, invoicing, and basic license tracking costs $120K-$200K and takes 12-16 weeks. A full platform with truck inventory management, permit tracking, service agreements, large job project billing, and multi-market analytics costs $240K-$400K over 22-30 weeks. Infrastructure costs post-launch run $1,000-$3,500 per month depending on technician count and real-time data requirements.
- Flat-rate pricing means the customer pays a fixed price for a specific task, regardless of how long it takes. A flat-rate book lists 500-1,000 tasks with set prices. The technician selects tasks from the book on-site and the system calculates the total. Most residential plumbing companies use flat-rate pricing because it removes customer uncertainty and improves close rates.
- Truck inventory management. For emergency calls requiring a specific part, the dispatcher needs to know which truck carries that part before routing. Without real-time truck inventory, technicians arrive on-site without the required part, the job can't be completed, and the customer waits hours for a second dispatch. Most companies skip this system and absorb the cost of failed truck rolls.
- Use ServiceTitan ($398+ per month) or Jobber ($69-$249 per month) for single-location operations or companies with fewer than 20 technicians. Build custom when you operate at 20 or more technicians across multiple markets, when you're building a SaaS product for a plumbing franchise network, or when your business model creates requirements that off-the-shelf tools handle poorly.
- Core license types are master plumber (required for permit pulls), journeyman plumber, and apprentice registration. Specialized certs include backflow prevention and medical gas piping. Your dispatch system should store expiration dates for each certification and block assignment of a technician to a job that requires a certification they don't hold or that has expired.
Ask an AI
Get an instant summary of this post from your preferred AI assistant.
Related articles

How to Build Car Wash Management Software
Unlimited monthly memberships are why modern car washes are attractive investments. The software that powers them, license plate recognition, recurring billing, and multi-location reporting, is not something you buy off the shelf without trade-offs.
How to Build an Applicant Tracking System Like Greenhouse: Recruiting Pipeline, Collaboration, and Real Costs
Greenhouse costs $6,000-$30,000 per year. Staffing agencies processing 500+ candidates per month, companies with multi-country hiring workflows, and HR tech startups building for niche roles often find that off-the-shelf ATS tools don't fit. Here is the architecture for building your own.

How to Build Pest Control Management Software
Pest control is a $22B market built on recurring service agreements and EPA-mandated application records. Off-the-shelf tools cost $200–$400/month per branch. A custom platform costs $90K–$160K for an MVP and makes sense for multi-state operators, franchises, or PE rollups that need white-labeled compliance documentation.
