How to Build Parking Management Software
RaftLabs builds custom parking management software for $140K-$210K over 14-18 weeks. The core system covers a structured inventory model (structure, level, zone, space), LPR via PlateRecognizer, dynamic pricing, online reservations, monthly pass management with Stripe, EV charging via OCPP, merchant validation, and an operations dashboard. Aggregator fees on 10,000+ monthly transactions typically exceed this build cost within 18-24 months.
Key Takeaways
- ParkWhiz and SpotHero charge 10-15% per booking and own the customer relationship. At 10,000+ monthly transactions, aggregator fees exceed the cost of a custom build within 18-24 months.
- License plate recognition is more practical than per-space sensors for most operators. The PlateRecognizer API costs $49-$299/month and returns plate text in 300ms using any IP camera.
- Dynamic pricing is not optional for serious operators. Base rate tables plus event-based surcharges and occupancy-triggered multipliers can increase revenue per space 20-40% during peak periods.
- Monthly pass management requires Stripe recurring billing, RFID or LPR credential storage, multi-vehicle support, and a waitlist engine for limited-capacity passes.
- EV charging integration uses OCPP, the open standard for communicating with ChargePoint, EVgo, and Blink hardware. Bill by kWh consumed, parking time, or flat session fee.
TL;DR
Parking is a yield management business. Every unsold space, every hour of empty asphalt, is revenue you cannot recover. Aggregators like ParkWhiz and SpotHero exist to help operators fill that inventory. They do, and they charge 10-15% for it, plus they own the booking data, the customer email, and the repeat purchase relationship.
According to INRIX's 2023 Global Parking Report, US drivers spend an average of 17 hours per year searching for parking, costing the economy an estimated $73 billion annually. Operators who offer online reservations and real-time availability reduce that friction and capture bookings from drivers who would otherwise keep circling.
For a single garage doing modest volume, that trade-off is reasonable. For a commercial real estate operator managing a dozen structures, a hospital system with campus parking, or a parking management company running 50+ properties, the math flips. Building your own platform gives you direct bookings, no commission, full customer data, and pricing logic you control.
This guide covers what that platform looks like, what it costs, and what the technically hard parts actually are.
Who Builds Custom Parking Software?
The clearest candidates are operators where aggregator fees exceed build ROI within 18-24 months. At a 10% commission on 10,000 monthly transactions averaging $15 each, you are paying $15,000/month, $180,000/year, to platforms that do not share the customer data.
Other typical buyers: real estate developers adding smart parking to a mixed-use property who want a branded guest experience, municipal governments replacing 15-year-old ticketing systems with modern enforcement and reporting, and multi-property parking companies that need one platform instead of one system per location.
Hospital systems and universities are a specific case. They have monthly permit holders, visitor parking, validation agreements with affiliated clinics, and enforcement across a campus. Off-the-shelf systems rarely handle all of that in one platform.
The Inventory Model: Structure, Level, Zone, Space
Every parking platform starts with the same data model. The hierarchy is: Structure → Levels → Zones → Spaces.
A structure is a physical building or surface lot. Each structure has one or more levels. Each level has zones (sections within that level, often labeled A through D or by color). Each zone contains individual spaces.
Spaces have types: standard, compact, oversized, ADA accessible, EV charging, reserved monthly, and short-term transient. Each space has an operational status at any moment: available, occupied, reserved (pre-booked), or under maintenance.
This model matters because pricing, reporting, and enforcement all operate at the space level. When a car enters Structure 3, Level 2, Zone B, the system needs to mark the correct space as occupied and tie that occupancy to a reservation or a walk-in ticket.
License Plate Recognition: The Practical Approach
Per-space sensors exist. Ultrasonic and magnetic sensors mounted at each parking space report occupancy via an IoT gateway. They work. They also cost $150-$400 per space to install, plus wiring, plus ongoing maintenance. For a 500-space structure, that is $75,000-$200,000 in hardware before software.
License plate recognition at entry and exit lanes is more practical for most operators. One camera per lane instead of one sensor per space. The system infers occupancy from vehicle count: cars entering minus cars exiting equals current occupancy.
The most accessible LPR option for custom development is the PlateRecognizer API. It costs $49-$299/month, works with any standard IP camera, and returns plate text with a confidence score in under 300ms. No proprietary hardware required.
The entry flow is straightforward. A car approaches the entry lane. The camera captures a frame. The API returns the plate text. The system checks the plate against the reservation database and the monthly pass database. If there is a match, the gate opens and the entry is logged. If there is no match, the system either issues a paper ticket (barcode printed at the kiosk) or directs the driver to a pay station.
Car arrives → Camera captures frame → PlateRecognizer API → Plate text returned
→ Check reservations + monthly passes
→ Match: open gate, log entry timestamp, mark space occupied
→ No match: print entry ticket with barcode, timestamp, and structure/lane ID
Enterprise operators running high-volume facilities with 24/7 operations typically use Genetec or Avigilon hardware with embedded LPR processing. The accuracy is higher, but the per-camera cost is $3,000-$8,000 versus $200-$800 for an IP camera using the PlateRecognizer cloud API.
Paper tickets with a QR or barcode remain a necessary fallback for rentals, visitors, and LPR failure scenarios. The ticker is scanned at the pay station on exit.
Dynamic Pricing Engine
"Dynamic pricing in parking is not about gouging customers during events. It's about sending accurate signals about availability. Operators who tie pricing to real occupancy data see utilization increase in both directions: higher yields at peak and better fill rates off-peak."
Casey Wiederkehr, CEO of the International Parking & Mobility Institute, in a 2023 IPMI Smart Parking Summit keynote
Static hourly rates leave money on the table during peak demand and kill utilization during slow periods. A dynamic pricing engine solves both.
According to a 2022 University of California study on parking demand management, demand-responsive pricing reduces peak-hour cruising by up to 34% and increases average revenue per space by 18-27% compared to fixed-rate structures.
The engine stores all rate rules as configurable price tables in the database. No rates are hardcoded in the application. An operations manager can change pricing from the admin dashboard without a developer.
The rule layers work like this. The base rate sets weekday vs. weekend pricing and peak vs. off-peak time blocks. A weekday morning peak from 7am to 9am might be $5/hour. The same garage on a Tuesday afternoon is $2/hour.
Event-based surcharges apply when a stadium, arena, or convention center within a defined radius has a scheduled event. The system checks an events calendar (loaded manually or via API from Ticketmaster or Eventbrite) and applies a premium rate for that day. A $2/hour garage becomes $12 flat for a concert night.
Occupancy-based multipliers trigger automatically. When a structure exceeds 80% capacity, the system applies a 1.25x-2x multiplier to the displayed rate for new walk-in transactions. Reservations already made are not affected.
Early bird pricing runs as a separate promotional rule: book before 9am for a 40% discount on the daily rate. This drives advance reservations, which improves revenue predictability.
-- Simplified rate resolution query
SELECT rate_value
FROM pricing_rules
WHERE structure_id = $1
AND day_type = $2 -- 'weekday' or 'weekend'
AND $3 BETWEEN time_start AND time_end -- current time
AND is_active = true
ORDER BY priority DESC
LIMIT 1;
The pricing engine runs at the moment a customer initiates a booking or a walk-in ticket is created. The rate displayed at booking is the rate charged. Occupancy-triggered changes apply only to new transactions, not to reservations already confirmed.
Reservations and Online Booking
The customer-facing booking flow covers location selection, entry and exit date/time, space type preference, and price confirmation. Stripe handles payment at the time of booking.
Confirmation comes via email and SMS. The confirmation contains either a QR code or a reservation number. At the gate, the driver presents the QR code to a scanner or the LPR camera reads the plate tied to the reservation.
Booking sources include the operator's own website via an embeddable widget, a direct mobile app, and the aggregator APIs if the operator still wants to accept ParkWhiz or SpotHero bookings for a portion of inventory. Accepting some aggregator bookings at a lower inventory allocation is common during the transition to a proprietary platform.
The reservation data model is straightforward: reservation ID, structure, space type, entry datetime, exit datetime, plate number, rate applied, payment status, and confirmation code. Overstay is handled at exit: if a customer pre-booked 2 hours and exits at 3 hours, the system charges the overage at the applicable walk-in rate before the gate releases.
Monthly Pass Management
Monthly passes are a separate product from transient reservations, and they carry distinct complexity.
A monthly pass holder has a billing record (Stripe recurring subscription), one or more registered vehicles (stored as plate numbers for LPR, or as RFID/access card credentials), and a pass type that defines which structures and access hours are covered.
Some operators allow two vehicles per pass. The rule is that only one vehicle from the pass can be on-site at a time. The system enforces this by checking for an active entry from any plate on the pass before allowing a second entry.
Billing runs monthly via Stripe's recurring billing. Failed payments trigger a configurable grace period. After the grace period, the LPR database removes the plate from the valid access list and the gate stops opening for that vehicle.
Monthly passes are limited by physical capacity. When passes for a structure are at capacity, new applicants join a waitlist. When a monthly pass holder cancels, the system moves the waitlist queue forward and notifies the next person via SMS to claim the pass within 48 hours.
EV Charging Integration
EV charging spaces are distinct inventory. A driver booking an EV charging space needs both the parking reservation and confirmation that a charger will be available.
The integration standard is OCPP (Open Charge Point Protocol). OCPP is the vendor-neutral API that communicates between the parking management software and the charging station hardware. ChargePoint, EVgo, and Blink all support OCPP. The parking system sends start and stop commands, reads charger status (available, in-use, offline, faulted), and retrieves energy consumption data for billing.
Billing for EV sessions combines parking fees and charging fees. Options: charge by kWh consumed plus the standard parking rate, charge a flat session fee that covers both parking and charging, or charge by time in the charger with a premium rate after the charging session completes (to discourage ICE vehicles and encourage turnover).
EV session lifecycle:
Reservation confirmed → Car arrives, plate matched → OCPP: start charging session
→ Driver plugs in → kWh tracked in real time
→ Driver unplugs, exits → OCPP: stop session, retrieve energy consumed
→ Final invoice: parking rate + (kWh consumed × $/kWh)
→ Stripe charge finalized
Pre-booking a specific EV charging space for a time window requires the same reservation system as standard spaces, with the charger OCPP endpoint linked to that space record.
Merchant Validation
Mixed-use properties, hotels, and office buildings often offer validated parking for tenants and customers. Merchant validation is a comp system that lets a business offset part of the parking fee for their visitors.
The flow works in three steps. First, the merchant (restaurant, retailer, or office tenant) logs into their own simple dashboard and enters a validation code for the customer. Second, the customer enters the validation code at the pay station. Third, the system applies the agreed discount automatically, typically 1-2 hours free.
The merchant dashboard tracks daily validation counts and the dollar value of comps. At the end of the month, the parking operator invoices each merchant for the total validation value from that period. This shifts the cost of visitor parking from the individual parker to the business benefiting from their visit.
Enforcement
Enforcement logic covers two scenarios.
The first is overstay in gated garages. The customer pre-booked a 2-hour window. They exit at 3 hours. The exit gate system charges the overage at the standard walk-in rate before releasing the gate.
The second is surface lots and open areas without barriers. These require an enforcement officer app. The officer arrives at a vehicle, enters the plate, and the system returns the current status: valid reservation, valid monthly pass, or no record found. If there is no valid record, the officer issues a citation. This can integrate with Passport, T2 Systems, or a custom citation module that tracks open citations, payments, and payment history.
Lost ticket fees apply when a driver exits a gated garage without a ticket or a plate match. The standard approach is a flat fee posted at the exit pay station. The cashier or automated system charges the lost ticket rate and logs the transaction.
Operations Dashboard
The dashboard is the interface operations managers use daily. It shows real-time occupancy across all structures: which spaces are open, which are occupied, and which are reserved but not yet arrived.
Revenue reporting breaks down by day, week, and month, with filters by rate type: transient walk-in, advance reservation, monthly pass, and event pricing. This is how the revenue management team identifies which pricing rules are driving yield and which time slots are underperforming.
Equipment status is part of the dashboard because gates and LPR cameras are revenue-critical. A failed gate at a busy entry lane is an immediate problem. The dashboard shows each piece of field hardware with its last heartbeat, error codes if applicable, and a maintenance ticket link.
Utilization reporting shows average occupancy by hour of day and by day of week. Parking operators use this data to set pricing rules and decide where to invest in capacity upgrades.
Tech Stack
Technology decisions
React
Front endOperations dashboard and customer-facing booking widget. The occupancy map with real-time space status is the most complex UI component.
React Native
MobileEnforcement officer mobile app. Officers check plate status, issue citations, and escalate to supervisors in the field.
Node.js
Back endAPI layer handling reservations, LPR event processing, pricing rule resolution, Stripe webhook handling, and OCPP commands.
PostgreSQL
DatabaseReservations, monthly passes, transactions, pricing rules, and equipment status. Indexed on plate number for fast LPR lookups at gate speed.
WebSockets
Real-timeReal-time occupancy updates from LPR entry/exit events to the operations dashboard. Gate events push state changes in under 1 second.
PlateRecognizer API
LPR$49-$299/month. Processes any IP camera frame and returns plate text with confidence score in 300ms. Most practical LPR option for operators not running enterprise Genetec/Avigilon setups.
Stripe
PaymentsTransient reservation payments and monthly pass recurring billing. Stripe webhooks confirm payment before gate credentials are issued.
OCPP client
EV chargingOpen Charge Point Protocol client for commanding and monitoring EV charging station hardware from ChargePoint, EVgo, and Blink.
Twilio
NotificationsSMS for reservation confirmations, monthly pass renewal reminders, payment failure alerts, and waitlist notifications.
Cost and Timeline
A complete parking management platform, covering LPR integration, dynamic pricing, online reservations, monthly pass management with waitlist, EV charging via OCPP, merchant validation, enforcement officer app, and the operations dashboard, runs $140K-$210K and takes 14-18 weeks.
A reservation-only system without LPR or dynamic pricing comes in at $80K-$110K in 10-12 weeks. LPR integration and the pricing engine each add 2-3 weeks of development and testing time.
The LPR integration is the most time-intensive component. Camera placement configuration, confidence threshold tuning, plate-to-reservation matching logic, and the manual fallback flow for low-confidence reads require careful testing in a production-like environment before go-live.
Build vs. Buy
T2 Systems, ParkAdmin, and FLASH parking offer operator platforms with broad feature sets. GoodPark and Parkbench serve smaller operators. These platforms are the right answer for operators who need to go live fast with a single structure.
Custom development makes sense when: you run 10 or more properties and need a single platform across all of them, your pricing logic is proprietary and an off-the-shelf system cannot configure it, you need direct integration with a building management system or a parking access and revenue control (PARC) system, or when your monthly transaction volume means aggregator fees exceed the cost of a build within 18-24 months.
The data ownership question is also real. Aggregator platforms own the customer contact information for bookings they process. A proprietary platform means every customer who books is in your CRM, available for direct marketing, loyalty programs, and push notifications. That relationship compounds over time.
RaftLabs has built reservation systems, LPR integrations, and operator dashboards for real estate and mobility companies. If you are mapping out a parking platform for your portfolio, we scope these builds in a two-week discovery sprint before writing a line of code. We also work with operators launching new products who need to move fast.
Frequently asked questions
- A custom parking management platform costs $140K-$210K and takes 14-18 weeks. LPR integration and dynamic pricing add 4-6 weeks compared to a basic reservation-only system. T2 Systems, ParkAdmin, and FLASH parking offer operator platforms. Building custom makes sense when you run 10+ properties, need proprietary pricing logic, or when aggregator fees on 10,000+ monthly transactions exceed build ROI.
- PlateRecognizer is the most practical option for most parking operators. It costs $49-$299/month, processes a camera frame from any standard IP camera, and returns plate text with a confidence score in under 300ms. Enterprise operators use Genetec or Avigilon hardware with embedded LPR. PlateRecognizer's cloud API avoids the upfront hardware cost and integrates in days rather than weeks.
- Dynamic pricing stores rate rules as configurable time-based price tables in the database. Base rates vary by time block: weekday vs. weekend, peak hours vs. off-peak. Event-based surcharges trigger when a stadium or venue within a defined radius has an event scheduled. Occupancy-based multipliers apply when a structure exceeds 80% capacity. Early bird discounts run for bookings made before 9am. No rates are hardcoded.
- EV charging integration uses OCPP, the Open Charge Point Protocol. OCPP is the standard API for communicating with charging station hardware from ChargePoint, EVgo, Blink, and others. The parking system sends start/stop commands, reads charger status (available, in-use, faulted), and tracks energy consumed. Billing can be by kWh, by parking time, or a flat session fee. Guests can pre-book a specific EV charging space for a time window.
- Merchant validation lets retailers, restaurants, or offices in a mixed-use building comp customer parking. A merchant enters a validation code on their tablet. The parker enters the same code at the pay station and receives the agreed discount, typically 1-2 hours free. The system tracks daily validation counts and total value per merchant, then invoices merchants monthly for the comped amount.
Ask an AI
Get an instant summary of this post from your preferred AI assistant.
Related articles

How to Build Roofing Company Management Software (2026)
Roofing software is not a generic field service app. Aerial measurement APIs, storm restoration workflows, insurance supplement tracking, and material ordering tied to crew scheduling make this vertical-specific enough that the general tools fall short. Here is the full engineering picture.

How to Build a Freight Platform Like Flexport: Supply Chain Visibility, Carrier Integration, and Real Costs
Flexport raised $2.3B and processes $19B in freight. Freight forwarders, 3PLs, and importers building their own visibility layer don't need Flexport's margin model. Here's what the build actually requires.

How to Build an App Like GoFundMe: Crowdfunding Platform Architecture
GoFundMe earns $45K-$60K on every $1M raised, all without charging a platform fee. Here's the architecture, compliance requirements, and real cost to build a crowdfunding platform, from charitable campaigns to equity crowdfunding under the JOBS Act.
