Skip to main content

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.

Setup and Configuration

Before issuing temporary permits using the rate template engine, you must enable the feature on the target lot and assign your pricing templates.

Enable Temp Permit Templates on a Lot

    1. Navigate to the Parking Management module, hover over Lot Administration, and click Pricing & Lot Admin.

    2. Select the lot you wish to configure.

    3. Click the Rate Template tab and toggle on Use New Booking Flow (Enable new temp permits for this lot).

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.

Create and Configure Rate Templates

  1. Navigate to the Parking Management module, hover over Lot Administration, and click Rate Templates.

  2. Click the + Create New button to open a blank template.

  3. Enter a Template Name and optional Description.

  4. In the Brushes section, click + Add Brush to create brushes by setting a Name, Price, and Colour.

  5. Select the Brush tool (or click Select next to a created brush) to paint pricing onto hourly sections of the day.

  6. Click Select next to the Eraser brush to mark specific hourly slots as unbookable or to correct an error.

  7. Hold shift and click multiple consecutive time slots in the grid, then click Merge Selected Hours into Block to open the Merge into Block window:

    • Enter the Block Name, Flat Price for Entire Block ($), and choose a Block Color.

    • Modify the Sale End (modify for Early Bird) field if you want to set a cutoff time where the special rate stops being bookable.

    • Click Merge to save the block.

  8. Edit existing brushes anytime by clicking the Edit button next to them.

  9. Click Update Template to save your changes.

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 Pricing: Merge time 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 (Early Bird pricing). Once a cutoff time passes, the rate automatically reverts to whatever regular layer pricing applies to that time block. 

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.

  • 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).
  • Date Overrides Precedence: A layer set to Date Override (e.g., a holiday or special event) is treated as the highest priority for that specific date and completely replaces the regular Weekly Schedule layers for that entire day.

  • Cross-Template Calculation: If a user qualifies for multiple templates on the same lot, the system calculates the rate for each template independently and automatically applies the cheapest total price. Layers from different templates are never combined. 

  • Price Calculator: Administrators can use the admin-only Price Calculator tool on the template page to simulate a stay and view the full rate breakdown.

Adding Rate Layers & Specific Date Pricing (Holidays/Events)

  1. While editing a template, navigate to the Rate Layers section and click + Add Layer.

  2. 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.

  3. Click Create Layer to add it to the template.

  4. 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.

  5. Click Update Template to save all layer changes.

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.

  1. Navigate to the Parking Management module, hover over Lot Administration, and click Pricing & Lot Admin.
  2. Select the lot you wish to configure and click the Rate Template tab.
  3. Click Add Assignment.
  4. Select the Template you wish to assign.
  5. Select the eligible User Types who can access this template. Only user types already enabled for the lot will be available.
  6. (Optional) Enter a Password if you wish to restrict access to this template.
  7. (Optional) Enter a Max Permits value to set a permit issuance cap for this specific template assignment.
  8. Click Save to apply the configuration.

Promo Codes

Built for scenarios like volunteer parking, private group rates, or limited-time discounts — visible only to people who have the code.

  1. Navigate to the Parking Management module, hover over Lot Administration, and click Promo Codes.

  2. Click the + Create New button to open the Create Promo Code window.

  3. Configure the promo code details:

    • Code: Enter the code string (automatically converted to uppercase; must be unique per lot).

    • Lot: Select the target lot from the dropdown.

    • Restrict to Assignment (optional): Select a specific template assignment, or leave as — Any assignment — to apply to all bookings at this lot.

    • Discount: Enter the discount percentage.

    • Active From & Expires: Select the start and expiration dates for the code.

    • Max Uses (optional): Enter a maximum redemption cap, or leave blank for unlimited uses.

  4. Click Save to create the promo code.

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.

1.  Time & Vehicle Selection:

  • Select a start time using 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.

2. Pricing Review & Payment:

  • 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.

Admin-Side Permit Issuance

Administrators can issue temporary permits directly from a user's profile using the configured lot rate engine:

  1. Navigate to the desired user's profile and click the Parking tab.

  2. Locate the target lot under Manage Lots and click the Temporary Permit button.

  3. In the Temporary Parking Permit Registration window, select or confirm the Requested Lot.

  4. Set the Start and End dates and times.

  5. Select the Vehicle from the user's registered vehicles list.

  6. (Optional) Check Apply to all Vehicles if issuing a multi-vehicle temporary permit.

  7. Enter or verify the auto-generated Permit #.

  8. Click Confirm Booking to proceed to payment and finalize the issuance.

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

    • Day-Level Priority Rule: Within a single template, the highest-priority layer with painted blocks on a given date will win for the entire day. Lower-priority layers are ignored completely and 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 layers always take precedence 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.

    • Proration 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 assignment creates a sub-limit within the lot's total capacity. If assignment limits sum to more than the lot's overall limit, the system permits the configuration but displays a warning message.

    • Admin Limit Warnings: When issuing permits on the admin side, exceeding a template's Max Permits cap triggers a warning message on screen but will not block the administrator from processing the permit.