OC Prime - New Temp Permit Functionality
The Temporary Permit Rate Templates feature allows administrators to control pricing, eligibility, and special conditions for temporary parking permits on a per-lot basis. Its primary purpose is to define how temporary permit pricing is calculated using assignable templates with customizable hourly rates and priority layers. This article is intended for OPS-COM administrators.
WhySetup Weand Built ThisConfiguration
EveryBefore settingissuing belowtemporary existspermits tousing solvethe rate template engine, you must enable the feature on the target lot and assign your pricing templates.
Enable Temp Permit Templates on a specificLot
This is where you build the "shape" of your pricing — painting different scenarios (peak hours, overnight, weekends) directly onto a calendar instead of configuring rules in the abstract.
CreatingCreate aand Configure Rate TemplateTemplates
Unpainted Time Slots: Any hourly section left unpainted is treated as not bookable. Users cannot book a permit or park in the lot during that time.
Fixed Rate Blocks and Early Bird PricingPricing: Usethistime slots into a single block when you want to charge one flat price for a stretch of time, or when you want to reward early purchases with a discounted rate that disappears after a cutoff —time this is what powers (Early Bird Salepricing). Windows.Once a cutoff time passes, the rate automatically reverts to whatever regular layer pricing applies to that time block.
- Highest Priority Layer Wins (Full Day): For any given day, the system identifies the highest-priority layer containing any painted blocks and uses only that layer for the entire day. Lower-priority layers are excluded completely—even if the higher-priority layer has unpainted hours (gaps are not filled by lower-priority layers).
-
HoldDate Overrides Precedence: A layer set toCtrlDate Overrideon(e.g.,yourakeyboardholiday or special event) is treated as the highest priority for that specific date andclickcompletelymultiplereplacestimetheslots.regular Weekly Schedule layers for that entire day. -
ChooseCross-Template Calculation: If a user qualifies for multiple templates on theMergesameoptionlot,tothecreatesystemacalculatesfixed-the rateblock.for each template independently and automatically applies the cheapest total price. Layers from different templates are never combined. -
ConfigurePriceaCalculator:bookingAdministratorscutoffcantime usinguse the admin-onlySalePriceEndCalculatorfieldtoolif you want the block to stop being bookable at that specific price after a certain time. Once the cutoff passes, the price reverts to whatever other layer applies for that time. Scroll to the form at the bottom ofon the template page toeditsimulate a stay and view the full rate breakdown.-
While editing a template, navigate to the Rate Layers section and click + Add Layer.
-
Configure the layer settings in the New Layer window:
-
Layer Name: Enter a descriptive name (e.g., Holiday Pricing, Special Event).
-
Priority: Select the layer priority. Higher-priority layers override lower-priority layers for the entire day.
-
Layer Type: Choose Weekly Schedule for regular recurring weekly pricing, or Date Override for specific calendar date overrides.
-
Repeat annually: (Appears when Date Override is selected) Check this box for recurring annual holidays and select the Month & Day, or uncheck it for a one-time event date.
-
-
Click Create Layer to add it to the template.
-
Ensure the newly added layer is selected in the Rate Layers list, then use your brushes to paint the 24-hour grid for that layer.
-
Click Update Template to save all
createdlayerblocks.changes. -
Same Priority Layers:Code:If two layers share a priority and their time blocks overlap, both are considered during price calculation. The system automatically selectsEnter thecheapestcodepricestringfor(automaticallytheconvertedcurrenttohouruppercase;block.must be unique per lot). -
Higher Priority Layers:Lot:If a layer has a higher priority, its pricing always takes precedence over lower-priority layers, even ifSelect thelowertargetprioritylotis cheaper. A single hour block on a higher priority layer will befrom theonlydropdown.bookable slot for that day, though lower priority blocks on other days of the week will remain bookable. -
CrossRestrictTemplatetoCalculation:Assignment (optional):IfSelect auser qualifies for multiple templates on the same lot, the system calculates the price under each eligiblespecific templateandassignment,automaticallyorselectsleavetheascheapest.—LayersAnyfromassignmentdifferent templates are never combined. Administrators can use the admin-onlyPrice Calculatortool on the template page— tosimulateapplyatogivenalltimebookingsslotatandthisviewlot.the full price breakdown. Single Hourly Blocks:These blocks are prorated. If a user arrives or leaves mid-hour, they are only charged for the portion of the hour actually used.-
Fixed Rate Blocks:Discount:These blocks are not prorated. Booking anywhere withinEnter theblockdiscountrequirespercentage.paying -
Active From & Expires: Select the
fullstartblockandprice,expirationbut grants the permitdates for theentirecode.blockduration. -
Max Uses (optional): Enter a maximum redemption cap, or leave blank for unlimited uses.
-
Click Save to create the promo code.
Layers and Priority Calculation
Layers let you handle exceptions without rebuilding your whole pricing — e.g., a holiday rate that should always win, layered on top of your everyday template.
Each template can contain multiple layers, and each layer is assigned a priority and schedule type.
Adding Rate Layers & Specific Date Pricing (Holidays/Events)
Assigning Templates to a Lot
This is where you decide who can use a given template, and how many permits it can cover — useful for scenarios like staff-only rates or capacity-limited event pricing.
Promo Codes
Built for scenarios like volunteer parking, private group rates, or limited-time discounts — visible only to people who have the code.
Using this Feature
Layers and Priority Calculation
Layers let you handle exceptions without rebuilding your whole pricing — e.g., a holiday rate that should always win, layered on top of your everyday template.
Each template can contain multiple layers, and each layer is assigned a priority on a per-day basis.
Proration Rules
This determines whether a parker is charged for exactly the time they used, or a flat fee no matter when they arrived — worth understanding so you can explain a charge if a parker asks about it.
Developer Note on Time Blocks: The sale_start, sale_end, and valid_until fields on time blocks are time-only reference values stored against a placeholder date. They must never be given a timezone cast. Doing so causes the weekly rate grid to silently stop rendering saved blocks. A code comment flags this at the cast site and must not be removed.
User Booking Flow
The goal on the parker side is getting from "I need to park" to "I'm parked" in as few taps as possible, while still surfacing special offers to those who qualify.
Select a start time
forusing Now or Later.- Select an end time using Duration (adjust slider from 30 minutes to 12 hours), Until Closing, Overnight, or Other.
- Tap a registered vehicle from the list to assign it to the permit.
- In the "Have a promo or access code?" section, enter a Promo code to receive a discount, or enter a Template password to unlock restricted rate templates.
- Click Check Price to calculate rates.
- Review the rate breakdown (the system automatically applies the cheapest qualified rate template).
- Review the Subtotal, Tax, and Total amounts.
- (Optional) Click < Change time to return to Step 1 and edit selections.
- Click Get Permit — $[Amount] to proceed to payment and finalize the booking.
Discount Percentage-
Enter or verify the auto-generated
ValidPermitDate#.Range -
Click
UsageConfirmLimitBooking(totaltonumberproceedoftoredemptions)payment and finalize the issuance.
1. Time & Vehicle Selection:
2. Pricing Review & Payment:
Admin-Side Permit Issuance
Administrators can issue temporary permit.permits directly from a user's profile using the configured lot rate engine:
Promo Codes
Built for scenarios like volunteer parking, private group rates, or limited-time discounts — visible only to people who have the code.
Administrators can createissuing a promomulti-vehicle codetemporary tiedpermit. to a specific lot and optionally restrict it to a specific template. Available configuration options include:
Promo code redemption rules: Each user can redeem a given promo code once per permit. If a user removes that permit from their cart before purchasing, the code becomes usable again for a new permit.
Concept Overview
| Concept | Behavior |
| Unpainted time slot | Not bookable |
| Same priority layers overlapping | Cheapest price wins |
| Higher priority layer | Always wins, even if pricier |
| Fixed rate block | No proration, full price for any partial use |
| Single hourly block | Prorated to actual time used |
| Multiple eligible templates | Cheapest template auto-selected; no cross-template layer mixing |
| Promo code | One use per user per permit; freed up if permit is removed from cart |
| Max permits limits | Template maximum is a sub-limit within the lot's overall maximum |
Best Practices and Considerations
-
-
UtilizeDay-LevelhigherPriority Rule: Within a single template, the highest-priority layer with painted blocks on a given date will win for the entire day. Lower-priority layersforareexceptions:ignoredReservecompletelyhigherand will not fill unpainted hour gaps. Always ensure high-priority and specific-date layers are fully painted for all 24 hours of the day. -
Unpainted Time Slots: Any hour block left unpainted on an active layer is non-bookable. Users cannot purchase a permit for unpainted hours.
-
Specific Date Overrides: Date-specific
events like holidays, ensuring special pricinglayers alwaysoverridestakestandardprecedencerates.over regular weekly schedules for that calendar date. -
Cross-Template Pricing: If a parker qualifies for multiple templates on a lot, the system calculates the price across all eligible templates independently and applies the cheapest option. Layers from different templates are never combined.
-
UnderstandProration Rules: Single hourly blocks are prorated—if a user arrives or leaves mid-hour, they are only charged for the portion of the hour actually used. Fixed-rate merged blocks are never prorated—booking anywhere within the block requires paying the full block price, which grants validity for the full block duration. -
Promo Code Limits: Promo codes apply a percentage discount to the subtotal prior to tax calculation. Each user is restricted to one redemption per promo code.
-
Permit Cap Warnings: Setting a Max Permits cap on a template
limits:assignmentThe template maximum permits setting iscreates a sub-limit within the lot'soveralltotalmaximum.capacity. Ifmultipleassignmenttemplate assignmentslimits sum to more than the lot's overall limit, the systemallowspermits theintentional overlapconfiguration butwill displaydisplays a warning message. -
EnforceAdminbookingLimitwindows:Warnings:EnableWhentheissuing30-day limit restrictionpermits on thelot-leveladminsettingside,toexceeding a template's Max Permits cap triggers a warning message on screen but will not blockusersthe administrator fromselectingprocessingdatesthebeyondpermit.a 29-day window.
-