How to Build Car Wash Management Software
Building car wash management software with LPR access control, unlimited memberships, and multi-location POS takes 12-16 weeks and costs $100K-$180K for MVP. RaftLabs has built membership and hardware-integrated platforms for subscription-first businesses. Full platforms run $220K-$380K. Design for LPR's 2-5% failure rate with QR code fallback before launch.
Key Takeaways
- Unlimited monthly memberships ($29-$49/month, wash daily) are the core revenue model for modern express car washes. The software must handle Stripe Billing for recurring charges, failed payment retry logic over 7 days, pause and cancellation flows, and plan upgrades.
- License plate recognition (LPR) opens the gate when a member drives up, with no app or sticker required. Cloud options like PlateRecognizer cost $100-$500/month. LPR accuracy is 95-98% in ideal conditions. Design fallback flows for the 2-5% failure rate: mobile QR code, employee override.
- Multi-location architecture means each wash has its own pricing and equipment, but members can wash at any location. Key metric: visits per active member per month. Benchmark is 4-6 visits. Below 3 indicates a churn risk. Above 8 means your pricing may be too low for your market.
- Building custom makes financial sense at 5+ locations. DRB Systems and Rinsed are strong SaaS options. EverWash handles membership as a service but takes a revenue share and owns the member relationship. Custom software is worth it when you want full ownership of member data and no revenue share.
- Equipment monitoring is optional in MVP but valuable at scale. Track tunnel equipment status (conveyor, brushes, dryers) and chemical levels. Even manual manager entry creates a daily operations log that prevents 'the dryer was broken for a week and nobody reported it' situations.
The business case for unlimited car wash memberships is straightforward. A member pays $39 per month and can wash every day. Most members wash four to six times a month. The wash costs you under $4 per visit in chemicals and labor at full tunnel throughput. The economics work, and they are predictable in a way that single-wash revenue is not.
According to the International Carwash Association's 2024 industry report, membership-based express tunnels now account for over 40% of US car wash industry revenue, up from under 15% in 2018. The model works. What decides whether you win or lose on it is the software.
What makes or breaks that model is the software. Specifically: recurring billing that handles failed payments without churning good members, license plate recognition that opens the gate in under two seconds without an app or sticker, and reporting that tells a chain owner what is happening across all locations in one view.
Generic subscription software and generic POS tools were not built for this combination. RaftLabs has built membership platforms and hardware-integrated POS for subscription-first businesses. Here is what car wash management software actually requires to build.
What this software actually does
"Car wash memberships have one of the best retention profiles in any subscription business. Churn rates below 3% monthly are achievable when the software makes pausing and returning frictionless."
Eric Wulf, CEO of the International Carwash Association, speaking at the 2023 Car Wash Show
Car wash management software connects the wash entrance to the billing system, and the billing system to the owner's dashboard.
When a member pulls up, the LPR camera reads their plate, the system checks membership status, and the gate opens. If the member is not active (payment failed, account paused, plate not on file), the gate stays closed and a fallback option appears: scan a QR code from the mobile app, or pull into the attended lane.
When a non-member pulls up, the kiosk presents a wash menu. The customer selects a wash level, taps a card or phone to pay, and the gate opens.
Behind both interactions, the platform manages subscriptions, processes recurring payments, handles failed payment retries, and logs every visit to every member's account.
The buyers of this software fall into three categories. First are tunnel car wash operators who own two to five locations and want to consolidate reporting. Second are express car wash chains building a roll-up business who need the same software stack across acquired locations. Third are investors who want the membership infrastructure without the EverWash revenue share model.
Core features: MVP vs. full product
| Feature | MVP | Full product |
|---|---|---|
| Unlimited membership management (monthly recurring billing) | Yes | Yes |
| Point of sale (single-wash purchases) | Yes | Yes |
| License plate recognition (LPR) for access control | Yes | Yes |
| Basic reporting (transactions, revenue, active members) | Yes | Yes |
| Multi-location management | No | Yes |
| Equipment status monitoring | No | Yes |
| Employee management and time clock | No | Yes |
| Fleet and commercial accounts | No | Yes |
| Gift cards | No | Yes |
| Marketing automation (lapsed member reactivation) | No | Yes |
| Corporate account invoicing | No | Yes |
| Chemical usage tracking | No | Yes |
| Customer mobile app (wash history, add vehicle, pause/cancel) | No | Yes |
The MVP covers what a single-location operator needs to run memberships and POS. The full platform covers chain operations, hardware monitoring, and member marketing.
The architecture
Membership billing. Memberships are the financial engine. Use Stripe Billing for subscription management. Each member has a Stripe Customer object with a saved payment method. The membership is a Stripe Subscription that bills monthly on the signup anniversary date. Failed payment handling is critical: configure Stripe to retry on day 1, day 3, and day 7 after failure. After three failed attempts, pause the membership and send the member a payment update link. The gate access system checks membership status on every plate scan. A paused membership shows as inactive at the gate immediately, not at the next billing cycle.
Support pause functionality for traveling members: a member can pause their plan for one to three months and resume without creating a new subscription. Support plan upgrades and downgrades (from basic wash to ultimate wash tier) effective on the next billing date.
License plate recognition. When a member drives to the wash entrance, the LPR camera captures the plate image. The image goes to PlateRecognizer (cloud REST API) or an OpenALPR instance (self-hosted, open source). The API returns the plate text, typically in under one second. Your system queries the membership database for that plate. If an active record exists, it sends the gate open signal to the gate controller via your hardware integration. Log the visit to the member's account: timestamp, location, wash type.
Store one or two vehicle plates per consumer membership. Fleet accounts store the full vehicle pool. PlateRecognizer cloud pricing: $100/month for up to 1,000 scans, scaling to $500/month at higher volumes. Self-hosting OpenALPR eliminates the per-scan cost but requires server infrastructure and ongoing maintenance.
Point of sale. Single-wash POS is a React web app running in kiosk mode. The screen shows wash levels (basic, deluxe, ultimate) with prices. The customer taps their card or phone to a Stripe Terminal reader. Stripe processes the payment and sends a confirmation to your backend, which triggers the gate open signal. For attended lanes, a staff member uses the same POS on a tablet with an employee login. Print or email receipt is optional. The kiosk should work with minimal staff intervention for the fully automated express wash model.
Multi-location management. Each location is a separate entity in the database with its own wash menu, pricing, and hardware integration. Members are global: one account, one billing relationship, valid at any location unless the plan is restricted to a home location. Each visit record logs which location the wash occurred at. Chain-level reporting aggregates visits, revenue, new members, and churn by location and in total. Key operational metric: visits per active member per month. A healthy benchmark is 4-6. Below 3 suggests members are not engaged and are likely to churn. Above 8 may signal that pricing is too low for your market.
Equipment monitoring. Tunnel equipment includes the conveyor, brushes, dryers, and chemical dosing systems. At the MVP level, equipment status is manual entry: a manager checks equipment each morning and logs any issues. At the full platform level, IoT sensors on chemical tanks report fill levels, and equipment manufacturer APIs from PDQ, Washworld, or Sonny's report equipment status. Wire sensor data to AWS IoT Core via MQTT. Alert staff immediately when equipment enters a fault state. Track chemical usage over time to detect dosing anomalies before they affect wash quality.
The hardest technical challenge
PlateRecognizer's 2023 accuracy benchmarks show their cloud API achieves 97-99% accuracy in ideal conditions and 93-95% in adverse conditions (rain, night, unusual plate fonts). LPR reliability is the hardest problem in car wash software to design for.
LPR accuracy is 95-98% in clean conditions. Rain streaks on the camera lens, a lifted truck that sits higher than the camera's calibrated angle, snow on a plate, or a custom plate font that the recognition engine has not seen before all reduce accuracy. At 500 scans per day, a 3% failure rate means 15 members who paid $39 a month cannot get into the wash without intervention.
Design for failure before you go live. Three failure modes need handling.
The first: plate not recognized. The camera captures the plate but the OCR returns no match. The kiosk displays a "Member? Scan your pass" prompt. The member opens the mobile app and scans a QR code linked to their account. The gate opens.
The second: plate recognized but no active membership. Could be a new vehicle the member has not added, or a membership that lapsed. The kiosk shows the member's last four digits of the phone number prompt. If they enter the correct number, they can add the vehicle on the spot.
The third: camera hardware failure. The camera is offline, covered in debris, or has a network issue. Staff at the attendant station can look up members by plate, phone number, or name and override the gate manually from the POS.
Build all three fallback paths before launch. Test the first fallback with a muddy plate in your staging environment. The primary path working is not enough; the fallback experience is what members remember when something goes wrong.
Build timeline and cost
MVP (LPR access control, unlimited memberships with Stripe Billing, basic POS, transaction reporting): 12 to 16 weeks, $100K to $180K.
Full platform (adds multi-location management, equipment monitoring, customer mobile app, fleet accounts, marketing automation, gift cards): 20 to 26 weeks, $220K to $380K.
Typical team composition: one product manager, two to three backend engineers, one to two frontend engineers, one mobile engineer (for the customer app), one QA engineer.
Infrastructure: $1K to $3K per month. AWS IoT Core for equipment telemetry and Stripe Billing fees are the primary cost drivers at scale. Stripe charges 0.5% per recurring payment billing event on top of card processing.
Build vs. buy
According to the ICA's 2024 State of the Industry report, operators with 5+ locations report spending $18K-$60K per year on SaaS tools that still require manual consolidation of cross-location data. That gap closes when you own the software.
DRB Systems is the dominant car wash management platform. Pricing starts around $500/month and scales to $2,000+ for enterprise deployments. Strong LPR integration, loyalty, and reporting. Heavily enterprise-focused with a sales process to match. The right choice for very large chains that need tier-1 support.
Rinsed ($300-$800/month) is car wash specific and well-regarded for membership management and marketing. It covers most of what single-location and small chain operators need. Limited customization on pricing structures and reporting. Owned member data stays with you.
EverWash handles membership as a service rather than a software license. Instead of a monthly fee, EverWash takes a percentage of membership revenue. They handle marketing and member acquisition. The downside: EverWash owns the member relationship, not you. If you exit the partnership, you cannot export the full member list with billing details intact.
Build custom when three conditions apply. You operate five or more locations and want full ownership of member data and billing relationships with no revenue share. You need LPR integrated with custom gate hardware at a specific spec that DRB does not support. Or you are building a roll-up business where consistent software infrastructure across acquired locations is a core value driver, and you cannot force acquired locations onto a vendor's timeline.
For single-location operators, Rinsed is likely the right starting point. Evaluate custom when the chain grows to a scale where the monthly SaaS fees equal the carrying cost of owned software.
Tech stack
| Layer | Technology | Why |
|---|---|---|
| POS and kiosk | React (kiosk mode in Chrome) | Runs on any tablet or mounted hardware, no native app required |
| Customer mobile app | React Native | Shared iOS/Android for membership management and wash history |
| Admin dashboard | React | Multi-location reporting, member management, equipment monitoring |
| Backend API | Node.js | JavaScript across the stack, fast iteration |
| Database | PostgreSQL | Members, subscriptions, vehicles, visit logs, location config |
| LPR integration | PlateRecognizer API (REST) | Cloud OCR: pass plate image, receive plate text |
| Memberships and billing | Stripe Billing | Subscription creation, retry logic, payment updates |
| In-person payments | Stripe Terminal | Chip, contactless, and magstripe for kiosk and attended POS |
| Equipment IoT (optional) | AWS IoT Core + MQTT | Sensor data from tank levels and equipment status |
| Push notifications | Firebase | Customer app: payment failed, wash complete, plan change confirmations |
RaftLabs builds membership platforms, recurring billing systems, and hardware-integrated POS. If you are scoping a car wash management platform or a multi-location subscription product, one call is enough to validate the architecture and define Phase 1. Talk to the team to get started.
Frequently asked questions
- Use Stripe Billing for subscription management. Each member has a Stripe Customer record with a payment method on file. Memberships are Stripe Subscriptions with monthly billing on the member's signup anniversary date. When a charge fails, Stripe retries automatically over 7 days (you configure the retry schedule: day 1, day 3, day 7). After three failed attempts, the system pauses the membership and sends the member a payment update link. The gate access system checks membership status on each scan. A paused membership shows as inactive at the gate immediately.
- An LPR camera at the wash entrance captures the vehicle's plate. The image is sent to PlateRecognizer API (or OpenALPR self-hosted) via a REST call, which returns the plate text. Your system looks up the plate in the membership database. If an active membership exists, the gate signal is sent to open. The process takes under two seconds. Store one or two vehicles per membership account. For fleet accounts, store the entire vehicle pool. PlateRecognizer cloud pricing runs $100-$500/month depending on scan volume.
- A React web app running in kiosk mode on a mounted tablet, connected to a Stripe Terminal card reader. Chrome in kiosk mode locks the display to the app with no browser chrome. Stripe Terminal handles chip, contactless, and magstripe payments. For fully automated express washes, the same React app runs on a weatherproofed outdoor kiosk. For attended lanes, it runs on a staff tablet. The backend API receives payment confirmations from Stripe and triggers the gate controller via the same hardware integration used for LPR.
- Each location is a database record with its own wash menu, pricing tiers, and equipment configuration. Members are global: one account, one billing relationship, valid at all locations. Each location has a location ID that prefixes all transaction records. Daily and weekly reporting rolls up per location and across the chain. The chain owner sees aggregate revenue, active members, and visits per location in a single dashboard view. Adding a new location means creating a location record, configuring its hardware integration, and assigning staff accounts to it.
- An MVP covering LPR access control, unlimited memberships with Stripe Billing, and basic POS takes 12-16 weeks and costs $100K-$180K. A full platform adding multi-location management, equipment monitoring, customer mobile app, fleet accounts, and marketing automation takes 20-26 weeks and costs $220K-$380K. Monthly infrastructure runs $1K-$3K. Compare against DRB Systems at $500-$2,000+/month and Rinsed at $300-$800/month. Custom builds are cost-justified when you operate 5+ locations and want to avoid EverWash's revenue share model.
Ask an AI
Get an instant summary of this post from your preferred AI assistant.
Related articles

How to Build a Live Streaming App in 2026 (Cost, Features & Tech Stack)
Discover how to plan, architect, and monetize a live or on-demand streaming app. Covers costs, tech stack, protocols, and features real platforms actually use.

How to Build a Video Chat App in 2026 (Step-by-Step Guide)
Discover the real tradeoffs behind WebRTC, SDKs, and APIs, plus costs, team roles, and tech stack choices to build scalable video chat apps.

Why AI integration fails in real products
Adding AI to an existing product is harder than building AI from scratch. Here are the 4 patterns that kill integrations before they reach users - and what to do instead.
