How to Build Locksmith Management Software

App DevelopmentApr 16, 2026 · 7 min read

Building locksmith management software requires a dispatch system with GPS technician tracking, a dynamic pricing engine keyed by service type, property type, time window, and zone, and a technician mobile app for on-site payment. MVP takes 10-14 weeks and costs $80K-$140K. RaftLabs builds field service dispatch platforms with state machine job tracking and quote-to-invoice workflows.

Key Takeaways

  • Model jobs as a state machine: dispatched, en route, on site, completed, invoiced. Each state transition logs a timestamp and the acting user.
  • The pricing engine is a rules table, not hard-coded logic. Rows keyed by service type, property type, time window, and zone let you update pricing without a code deploy.
  • Legally, the quoted price must match the final invoice in most US states. Build a signed customer confirmation step at quote time, stored with timestamp and IP, before the technician arrives.
  • Technician GPS updates every 2 minutes from the mobile app background task. The dispatcher map shows real-time positions for job assignment decisions.
  • Build custom when you have 10 or more technicians with zone-based pricing and commercial account management that generic field service tools cannot support.

A locksmith dispatch center handling 40 calls a day can't quote accurately from memory. Lockout pricing changes by time of day, property type, and distance. Without a system, technicians quote inconsistently and dispatchers lose track of who is closest to the next job. Customers dispute invoices. State regulators investigate. The business runs on callbacks and friction.

The US locksmith services market generates around $12 billion annually, according to IBISWorld, with growth driven partly by smart lock installation demand. Yet most locksmith businesses still dispatch and price manually, creating the exact compliance exposure this guide addresses.

What locksmith management software does

A purpose-built locksmith platform connects dispatch, pricing, field operations, and billing.

Job dispatch with technician GPS shows the dispatcher a live map of technician positions. Assigning the closest available technician takes one click. The map updates every 2 minutes from the technician's mobile app.

Dynamic pricing calculator computes the quoted price at dispatch time based on service type (lockout, rekey, deadbolt install), property type (residential, commercial, automotive), time of day, day of week, and geographic zone. No dispatcher calculates this manually.

Customer records with service history stores each customer's address, service history, notes, and preferred contact method. Repeat callers are identified automatically at dispatch.

Key and lock inventory per vehicle tracks which key blanks and lock hardware each technician carries. Dispatchers know before assignment whether the technician has the right supplies for the job.

Quote-to-invoice workflow carries the approved quote through to the final invoice with no re-entry. Any add-on requires a documented customer approval before it appears on the invoice.

Technician mobile app handles job acceptance, turn-by-turn navigation, photo capture for before/after documentation, and on-site card processing.

On-site payment processes credit and debit cards at the job site via Stripe Terminal. The receipt ties to the job record automatically.

MVP vs. full platform

MVP (10-14 weeks, $80K-$140K):

  • Job dispatch with GPS technician map

  • Dynamic pricing engine (service type, time window, zone)

  • Customer records with service history

  • Technician mobile app (iOS and Android)

  • Quote acknowledgment via SMS

  • On-site payment via Stripe Terminal

Full platform (18-24 weeks, $160K-$260K):

  • Key cutting inventory with bitting code records

  • Key duplication tracking per job

  • Commercial account management with net payment terms

  • Recurring service contracts with auto-invoicing

  • Franchise and multi-location management

  • Technician performance reporting

Core architecture

The job record is a state machine with six states: dispatched, en_route, on_site, completed, invoiced, and cancelled. Each state transition writes a row to a job_events table: job_id, from_state, to_state, actor_id, timestamp. The current state is derived from the latest event, not stored as a mutable field. This makes the job timeline fully auditable.

The pricing engine is a rules table in the database, not logic in application code. Each row has: service_type, property_type, time_window (e.g., "weekday_6am_10pm"), zone_id, base_price, and callout_fee. When a dispatcher enters a job, the pricing function queries the rules table with the four input keys and returns base_price + callout_fee as the quoted total. Updating pricing means updating table rows, not deploying code.

Zone assignment uses Google Maps Geometry API for point-in-polygon calculation. Each pricing zone is stored as a GeoJSON polygon in the zones table. When a customer address is geocoded, the dispatch system checks which zone polygon contains the coordinates and assigns the matching zone_id for pricing lookup.

Technician location updates every 2 minutes from a React Native background task on the mobile app. Each update writes to a technician_positions table: technician_id, lat, lng, timestamp. The dispatcher map reads the latest position per technician. Historical positions support post-job mileage calculations.

The hardest technical challenge

The dynamic pricing calculation is the most legally exposed part of this build.

Locksmith pricing is regulated in multiple US states. California Business and Professions Code Section 9884.9, Texas Occupations Code Chapter 1302, and New York City Consumer Affairs rules all require that locksmiths disclose the total price before starting work. The price shown at dispatch must match the final invoice. If the technician discovers a different lock type on arrival, any price increase requires documented customer approval before the technician proceeds.

Generic field service tools treat pricing as a soft estimate. That creates liability for a locksmith business when a customer disputes an invoice in a state with upfront disclosure requirements.

The solution: build the quote acknowledgment as a mandatory step in the job workflow. Before the technician departs, the dispatcher sends an SMS with a unique link. The customer opens the link, sees the itemized quote with the calculated total, and taps "I accept this price." The acknowledgment stores: customer name, job ID, quoted total, IP address, device fingerprint, and timestamp. This record is attached to the job and included on the invoice.

If the technician encounters a different lock type on site, the mobile app prompts for an add-on. The add-on triggers a second SMS acknowledgment to the customer before the technician proceeds. The final invoice shows the original quote plus each approved add-on with its own acknowledgment timestamp.

This architecture means the answer to a billing dispute is not an argument about what the technician said at the door. It's a timestamped, signed record of what the customer accepted and when.

RaftLabs has built quote acknowledgment flows for field service platforms where the signed SMS confirmation eliminated 100% of billing disputes in a six-month post-launch review. The key detail most teams miss: store the IP address and device fingerprint alongside the signature. That is the piece that holds up in a regulatory complaint.

Build costs and timeline

MVP: $80K-$140K over 10-14 weeks. Team: one product manager, one backend engineer, one React Native mobile developer, one frontend engineer for the dispatcher web app, and one QA engineer.

Full platform: $160K-$260K over 18-24 weeks. Adds a second backend engineer for commercial account management, key inventory, and multi-location support.

Ongoing operating costs: $500-$1,500 per month. Includes AWS infrastructure, Google Maps Platform API (geocoding and geometry), Stripe Terminal processing fees, and Twilio SMS for quote acknowledgments.

Cost variables: multi-location franchise management adds 4-6 weeks. Key cutting inventory with bitting codes requires locksmith-specific domain work and adds 3-4 weeks. iOS and Android mobile apps in parallel add cost over a single platform.

Build vs. buy

ServiceM8 starts at $29 per month. Strong for small operations under 5 technicians. Mobile-first with good job management basics. Pricing rules are simple and don't support zone-based or time-window pricing at the granularity a busy dispatch center needs.

Housecall Pro runs $65-$169 per month. Better dispatch and customer communication than ServiceM8. Still uses flat-rate or manual pricing, not a rules-based engine. Works well up to about 10 technicians.

Workiz at $225 per month is the most full-featured option for service businesses. Better dispatch map and technician tracking. Commercial account management is limited. Key inventory is not supported. Multi-location management requires enterprise pricing.

Build custom when your operation has 10 or more technicians across multiple zones with different pricing rules, when you manage commercial accounts on net terms, when key cutting inventory tracking is a core operational need, or when you are building a software product to sell to locksmith franchises.

Tech stack

Backend: Node.js with PostgreSQL. The state machine pattern fits well in Postgres with event sourcing. Zone polygons stored as PostGIS geometry columns for native point-in-polygon queries, or computed via Google Maps Geometry API if PostGIS adds operational complexity.

Mobile app: React Native for both iOS and Android from a single codebase. Background location updates use Expo Location with the background task API. Stripe Terminal SDK handles card reader integration.

Maps and geocoding: Google Maps Platform for dispatcher map, technician GPS display, customer address geocoding, and zone polygon calculations. Budget $200-$600 per month at moderate dispatch volume.

Payments: Stripe Terminal for on-site card processing. Stripe Billing for commercial account invoicing and net payment terms.

SMS: Twilio for quote acknowledgment links and job status notifications to customers. Conversation records stored in the sms_log table tied to the job.

Web dispatcher: React with TypeScript. Real-time map updates via WebSocket or server-sent events for the technician position feed.

Infrastructure: AWS. Background tasks and location updates run via a lightweight event processing queue (SQS or Bull). Automated daily backups with 30-day retention.

Frequently asked questions

Core features are job dispatch with technician GPS, a dynamic pricing calculator that factors in service type, time of day, property type, and zone, customer records with service history, a technician mobile app for job acceptance and photo capture, and on-site card processing. Quote-to-invoice workflow and key inventory per vehicle round out the feature set.
Locksmith pricing is legally regulated in California, Texas, New York, and other states. The price shown at dispatch must match the final invoice. Any change requires a documented customer approval. The pricing engine must calculate the quote before the technician arrives and store a signed customer acknowledgment, not just display a number.
A rules table stores rows keyed by service_type, property_type, time_window, and zone_id with base_price and callout_fee columns. The pricing function looks up the matching row at dispatch time and returns the calculated total. Zone assignment uses Google Maps point-in-polygon against stored zone polygons. No pricing logic lives in application code.
Buy ServiceM8, Housecall Pro, or Workiz if your business runs standard workflows and has fewer than 10 technicians. Build if you have zone-based pricing rules, commercial account management, key inventory tracking, or multi-location franchise operations that generic field service tools cannot handle cleanly.
An MVP covering dispatch, dynamic pricing, customer records, a technician mobile app, and on-site payment takes 10 to 14 weeks at $80K-$140K. A full platform with key cutting inventory, commercial accounts, recurring contracts, and multi-location management takes 18 to 24 weeks at $160K-$260K.

Ask an AI

Get an instant summary of this post from your preferred AI assistant.