One-time setup: open this file in a text editor and paste your
Supabase anon key into the SUPABASE_ANON_KEY line near the bottom,
then save and reload this page.
No dashboard access
This account isn't a member of an operator organization, so it has no dashboard. If you're a property manager, manage your guest passes on the property-manager page instead.
No activity yet today. Gate opens, payments, and validations will appear here.
Plate activity
Latest scans
Plate
Verdict
Direction
Seen
No scans yet. Camera reads will appear here in real time.
Watchlist
Active entries
Plate
Reason
Watchlist is clear.
Enforcement records
Citations & violations
Plate
Violation
Action
Status
Issued
Citation #
No enforcement records yet. Citations will appear here.
Financials
Money & reconciliation
·to
—
Self-park gross
—
Door access gross
—
Charging gross
—
Valet gross
—
Hotel bookings gross
—
Guest fees gross
—
Total gross
—
Net after refunds
—
Unpaid / outstanding
—
Uncollected charging
—
Validations issued
—
Self-park sessions
—
Valet billed externally (memo)
—
SpotHero payout, est. (memo)
—
Refunded
Hotel bookings
Paid to us when booked · separate revenue stream
Guest
Plate
Hotel
Stay
Amount
Refunded
Status
Guest fees
Charged to guest pass hosts · guest missed the nest window
Charged
Guest plate
Host
Nest
Amount
Refunded
Status
Refund approvals
Over $50 — needs a second person
No money has moved on these. The refund is created when it is approved, and every
check runs again at that moment — including asking Stripe what has already been
refunded. You cannot approve a request you raised yourself.
Plate
Kind
Amount
Collected
Reason
Raised
Transactions
All sessions in range
Plate
Location
Status
Payment
Billed
Collected
Card
Started
Settled
No sessions in this range.
Validations issued
For back-billing review
Plate
Validator
Note
Amount
Issued
No validations issued in this range.
Validator
Validations
Total owed
Door access
Overhead door — separate revenue stream
Requested
Plate
Phone
Door fee
Parking
Status
Payment
Paid
No door access events in this range.
Charging
EV charging — separate revenue stream
Stall
Plate
Amount
Status
Payment
Paid
No charging sessions in this range.
Valet
Attended parking — separate revenue stream
Ticket
Plate
Amount
Validated
Refunded
Net
Payment
Card
Settled
No valet revenue in this range.
Reconcile with Stripe
Verify collected against Stripe
Location
Stream
Plate
Issue
DB collected
Stripe captured
Refunded
Stripe status
Stripe fee
Net after fee
Started
Run a reconciliation to compare your records against Stripe.
Audit
One vehicle, every record
Search a plate or valet ticket to see everything the system recorded for it — camera reads and their photos, door openings, session lifecycle, and money in or out — merged into a single timeline. This is the trail to hand an accountant or attach to a dispute.
to
When
Stream
Event
Detail
Amount
Evidence
Nothing recorded for that search.
Waiting for approval
Resident sign-ups
Plate
Name
Unit
Phone
Submitted
Guest passes
Hosts with a card on file invite guests to their nest
Guest fee $if not at the nest withinmin
Host sign-up link · anyone may sign up, a card on file is required
Hosts
Name
Phone
Nest
Unit
Card
Active passes
Guest visits · last 30 days
Plate
Host
Nest
Entered
At nest
Fee
Resident sign-up link
Give this to the building · residents register their own plate
Monthly parkers
Permit roster · patrol checks these plates
Plate
State
Parker
Unit
Permit #
Account
Mobile
Valid from
Valid until
Status
Loading…
Add a monthly parker
Plate is the key patrol matches on
Validate
Merchant codes & recent validations
One QR per validating business, ready to hand over. What has actually been applied lives
where each question is answered: per vehicle on Audit, per merchant on Financials.
Validation codes
Merchant validation QRs
Each validating business gets its own QR. The business posts it for customers to scan —
scanning applies that business's discount to the customer's open parking session.
Download the PNG to hand to the merchant.
Daily close
Transient income for GENEVA
Reporting
Operational analytics
·toHourly counts
—
Cars
—
Transactions
—
Parking revenue
—
Avg ticket
—
Door access revenue
—
Charging revenue
—
Valet revenue
—
Gated lot revenue
—
Refunded
—
SpotHero payout, est. (memo)
—
Median stay
—
Peak occupancy
—
Revenue / space
Daily trends
Transactions & revenue
Occupancy curve
Hourly — single day
Peak occupancy by day
Highest simultaneous vehicles
Arrival heatmap
Arrivals by hour × day of week
ShowRows
No arrivals in this range.
From cars to cash
Every car, and why it did or didn't pay
Session reconciliation
Issued vs accounted — revenue leakage check
—
Issued (all streams)
—
Accounted (paid / held / permit)
—
Unaccounted
—
Leakage rate
AccountedUnaccounted
Unaccounted = transient sessions that started but were never paid, validated, or held. These are potential lost revenue worth investigating (tailgating, equipment faults, or unpaid exits).
Leakage by stream
Uncollected across parking, access & charging
Stream
Issued
Accounted
Unaccounted
Uncollected $
Leakage
Each stream's started/issued events vs. what was actually collected (or legitimately $0). Charging leakage comes from card-free sessions that ran up a balance; access leakage is gate opens that never paid.
Revenue by rate tier
Every settled ticket at the tier it hit · revenue is what was collected
Rate
Rate tier
Sessions
Revenue
Validated
No settled sessions in this range.
Revenue calendar
—
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Monthly customer list
Name
Tenant
Plate
Phone
Passback
Registered
Valid until
Last used
Visits (range)
No monthly parkers at this location.
Monthly activity lookup
Who parked, when — searchable by name, plate, phone, or tenant, over the selected range
Name
Tenant
Plate
In
Out
Duration
No monthly activity in this range.
Garage status
Vehicles in the gated lot right now
Plate
Kind
Registration
Entered
Elapsed
Gated lot is empty.
Vend exceptions
Abnormal arm events — fail-opens, refused loops, violations
When
Plate
Kind
Exception
No exceptions in this range.
Composite summary
Revenue to account for — accountant view
Ticket revenue
Transient QR (parking collected)—
Gated lot (collected)—
Valet (collected)—
Hotel bookings (collected)—
Validations issued—
Total parking revenue—
Non-ticket revenue
Door access—
Charging—
Total non-ticket revenue—
Total to account for
Grand total collected—
Less refunds—
Net collected—
Outstanding
Unpaid / outstanding—
Gated violations due—
Uncollected charging—
Valet billed externally (memo)—
SpotHero payout, est. (memo)—
Unaccounted sessions—
SpotHero
Reservation channel · not collected by us
Arrivingto
—
Reservations
—
Arrived
—
No-show
Booked, never seen
—
Channel volume
Paid to SpotHero
—
Overstays
Channel volume is what parkers paid SpotHero, not a payout figure — SpotHero's
documentation states the remittance value is adjustable, and none of this money passed
through our Stripe. It is deliberately excluded from the totals and exports above.
Expected — booked to arrive in the next 24 hours
Plate
Arrives
Until
Order
Reservations in range
Plate
Arrives
Until
State
Value
Order
Overstays — past booked exit, no exit read
Order
Plate
Booked exit
Arrived
Hours over
Bookings with no licence plate
No plate on these bookings, so a camera cannot match them. The parker opens the door with
the Rental ID on the door page, or the attendant redeems them. At a camera garage, ask
SpotHero to require the plate on the listing so the car is recognised on arrival.
Order
Status
Enter after
Exit before
Value
Patrol staff
Plate checks and citations · app.parkproof.ai/patrol.html
Loading…
Stripe Connect
Onboard the operator so payments settle into their own account
Select a single location to onboard it.
Creates a Standard Stripe account for this location (first click) and returns a
hosted onboarding link to email the operator. Clicking again refreshes status from
Stripe and re-mints the link if onboarding isn't finished. Once complete, the
operator is merchant of record — their statement descriptor, their Stripe fees,
their disputes — and ParkProof's per-transaction fee applies automatically.
Onboarding link — email this to them. Single-use, expires in a few minutes.
Access policy
Per-location gate rules
What must be true before the gate opens at this location. Choose a single location in the switcher above to edit its policy.
Require payment
Gate opens only when the session is paid or has an authorized pre-auth hold.
Allow $0 validated sessions
Let fully-validated ($0) sessions open the gate.
Require identity verification
Unknown visitors must pass Persona ID verification before the gate opens.
Overhead door
Door fee · Monday to Friday
Charged per overhead-door open outside the attended hours below. $0 = no fee.
Attended hours · Monday to Friday
No door fee inside this window (door is up, attendant on duty). Leave both blank to charge the weekday fee all day.
to
Door fee · Saturday & Sunday
$0 with “Door payment covers parking” on = weekend parkers pay the posted weekend parking rate at the door instead (the $15 “parking + door” sign).
Door payment covers parking
A paid door open also buys the parking day (fee replaces the parking charge; a plate that already paid today opens free). Off = the fee is access only, parking is separate.
This location has a custom fee schedule set by SQL that these boxes can’t express. It is left untouched on save; clear it in SQL to manage it here.
Require active parking session
Door opens only if the plate also has an active parking session here.
Card holders bypass checks
Monthly/permit parkers with an access card skip payment & ID checks.
Select a single location in the switcher above to view or edit its access policy.
Guest passes
Pre-approved phone numbers for free door access
Add a phone number with a time window, and that guest opens the overhead door for free during the window — no payment. Reusable within the window; expired passes simply stop working. Select a single location above to manage its passes.
Select a single location in the switcher above to manage guest passes.
Access verification
Door identity-check QR (test)
Post this at the gate/overhead door. Each scan opens a fresh Persona identity verification. Sandbox/testing mode — use the “Pass verifications” toggle in the flow to simulate a pass or fail.
Overhead Door — Verify
Approved plates
Door access allow-list (per location)
Plates allowed to open the overhead door, each valid for a set window. Select a single location in the switcher above to manage its list.
Select a single location in the switcher above to manage its approved plates.
Hotel stay pass
Links to give the hotel · passes sold per night ·
show 30 nights
These are spaces you are committing to hold. A night that reaches its limit stops being offered on the hotel's link; the shorter stays stay on the menu.
Night
Sold
Limit
Left
QR codes
Pay & door codes per location
Each location shows a QR for every module it has on: a Pay for Parking code where Sessions is enabled, and an Overhead Door code where Access is enabled. Print and post each at the matching entrance. Download the PNG for signage.
Modules
Per-location features
Turn modules on or off for each location. Self-park (QR pay) and
Plate (LPR) feed the full reconciliation report; Enforce
covers patrol, citations and audit; Charge runs EV charging sessions and
Access controls gate/door entry; Manual-ticket and Ticketech
are for pre-numbered paper-ticket garages.
Settings
Enforcement policy
Choose what a patrol citation creates when an unpaid vehicle is found.
Grace period — how many minutes a vehicle has to pay before patrol can cite it.
minutes
After-hours alerts
Text the night manager about unpaid cars
When a garage is unattended, the manager on duty gets one text covering
every site with an unpaid car — worst first. Nothing sends until at
least one manager and one garage are switched on below.
Night managers
Name
Mobile
Rotation
Every
On tonight
Loading…
min between texts
Rotation startswith rotation order 0
Garages
Attended hours are the location’s own local time. Leave both blank
where nobody is ever on site — then it alerts around the clock.
Location
Alerts
Attended from
Until
Wknd unattended
Alert after
Loading…
Charging stalls
EV stalls per location
Add and manage the EV charging stalls at this location. Select a single location in the switcher above to manage its stalls.
Stall
Connector
Status
No charging stalls at this location yet.
Select a single location in the switcher above to manage its charging stalls.
Charging rules
Billing & limits per location
How EV charging is billed at this location. Pick a billing model and fill the fields it uses. Select a single location in the switcher above to edit.
Tip: a ~10-minute free period covers card-network minimums and is a courtesy to drivers — but it's your call.
Require card to start
Card-required stalls collect a card and place a $10 hold at start, captured at end. Off = no-card, attendant-settled.
Select a single location in the switcher above to edit its charging rules.
Charging QR codes
Stall QR codes per location
Each stall has its own QR. Print and post it on the charger — drivers scan it to start and end a charging session. Download the PNG for signage.
No charging stalls at this location yet. Add stalls under Charging stalls above.
Select a single location in the switcher above to view its stall QR codes.
Valet rates
Per-location pricing & card policy
Pricing and card policy for valet at this location. Select a single location in the switcher above to edit it. Changes apply to new check-ins only — cars already parked keep the terms they checked in under.
Take a card (pre-authorize)
Hold the all-day rate at check-in and capture the actual amount at pickup. Turn off for locations billed externally — sessions are still recorded, but no card is charged.
Within the threshold the short-stay rate applies; past it, the all-day rate. The all-day rate is also the amount held on the card at check-in.
Select a single location in the switcher above to view or edit its valet rates.
Session rates
Per-location time-based pricing tiers · view only
Time-based pricing for QR parking sessions at this location. A session is billed the first tier its time fits within, and the longest tier acts as the all-day maximum. Read-only here — rates are edited in the admin console.
Select a single location in the switcher above to view or edit its session rates.
Watchlist
Flagged plates
Flag a plate so patrol shows an alert when it's scanned (stolen, banned, repeat violators, etc.).
Plate
Reason
Notes
Added
No plates on the watchlist.
Garage audit report
Patrol sweep export
Export a full patrol sweep for a day — every vehicle scanned, its verdict, and the unpaid count. PDF to present, Excel for the data.
Daily ticket range
Manual-ticket garages
For garages that issue pre-numbered paper tickets. Set the day's opening and last-issued
numbers so patrol can audit parked cars against the range. Pick the business day
the tickets belong to — for an after-close sweep, choose the day it covers, not tonight's date.
Location
Business day
Opening
Last issued
Updated
No ticket ranges set yet.
Ticketech import
Transient ticket reconciliation
Upload a Ticketech Ticket Search export (.xls). Each day's paid
transient tickets become the audit baseline — patrol counts cars present, this is
what they're reconciled against. Re-uploading the same export updates rather than duplicates.
The Charge module isn't enabled for this location. Enable it under Settings → Modules, or switch to a charging location.
ParkProof Charge
EV charging — live stall status & billing
—
Active sessions
—
Overstaying
—
Available stalls
—
Reserved
No charging stalls yet. Add stalls to get started.
ParkProof Valet
Live lot status, releases & damage claims
—
Opening ticket
—
Closing ticket
—
Cars
—
Revenue
Rate
Cars
Revenue
Ticket
Name
Phone
In
Out
Rate
Amount
—
On the lot
—
Needs release
—
Open claims
—
Revenue today
On the lot now 0
Needs release · settled overnight 0
Open damage claims 0
Add an attendant
Attendants 0
Loading…
Send pay link
Text a driver a link to pay for parking
Enter the plate and the driver's mobile number. ParkProof creates or attaches the session and texts them a link to pay. For a car already in the lot, this is how you collect from an unpaid plate once you have a number.
By providing this number, the driver agrees to receive payment links for their
parking sessions (and receipts if they pay) from ParkProof by SMS.
Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Pay link (hand to the driver if needed)
—
Unpaid with a phone on file
Plate
Mobile
Started
Exited
Link sent
Owed
Select a single location in the switcher above to send a pay link.
ParkProof Sessions
QR / LPR sessions, SpotHero and monthly reads
—
Sessions today
—
Last 7 days
—
Paid today
Plate
Type
Status
Payment
Amount
Entered
Exited
Unpaid in lot
Self-park sessions not yet paid or validated — the exit attendant's checklist
Plate
Phone
Started
Elapsed
Billed so far
Overstayed — upcharge due
Paid sessions past their paid-through time and still in the lot
Plate
Phone
Paid
Paid through
Over by
Collect the difference with Send pay link above — the driver's session reprices when they pay again.
Adding a parker texts them their personal gate link. The link is one-tap entry/exit
with anti-passback — rotate it if it's ever shared.
Name
Plate
Status
Visits (30d)
Avg stay
Total hrs (30d)
Violations
Link sent
Passback violations
Broken in/out sequences — billable at the daily rate
When
Parker / plate
Note
Billable
ParkProof Plate
License-plate reads (LPR)
—
Reads today
—
Last hour
—
Unmatched today
Photo
Plate
Match
Direction
Camera
Read at
ParkProof Enforcement
Citations, warnings & audit
—
Open citations
—
Issued (7 days)
—
Issued today
Evidence
Citation #
Plate
Violation
Action
Status
Created
Patrol staff
Sign in at app.parkproof.ai/patrol.html
A patrol account can check plates, photograph violations and issue citations at the
location selected above. It cannot take a payment by hand, cancel a session, change a
rate or edit the permit roster.
Paid but did not open
Refund it, or void it if the driver got in
These drivers paid the access fee and the door did not physically open. Until this list is
empty someone has taken money for nothing.
When
Plate
Phone
Paid
Why it failed
Gates & doors
Open from here
Every relay configured across your locations. Opening from here is recorded against your
account in the access log — it is an override, not an anonymous pulse.
No relays configured on any location yet.
+ Add a door
The id is on the relay and in the Shelly app under device settings. The device must already be
claimed in the Shelly account — we check before saving.
Door proximity check
Overhead door opens only from phones at the garage
The door page asks the phone for its location. Soft logs every open with its distance from the pin and never
blocks anyone. Hard refuses a phone that cannot be placed at the garage. Run Soft first and switch to Hard
once the numbers below show real drivers passing.
Mode
Pin the door itself. Easiest: stand at the door, tap Use my current location, check the accuracy, then Save. Or right-click the door in Google Maps and paste the two numbers.
Monthly phone keys
One-tap door on the parker’s own phone
A monthly parker opens this link on their phone, enters their plate and the permit number from their hang tag
(or a one-time Setup code from the Permits tab), confirms a code texted to their own mobile, and sets up
Face ID. After that their phone opens the door with one tap — only that phone, only at the garage, only
while the permit is active. Needs the door pin above.
Plate
Phone
Device
Set up
Last used
Opens
Status
No phones set up at this garage yet.
ParkProof Access
Overhead door & guest access
—
Active guest passes
—
Door opens today
—
Denials today
—
Sent to pay · never opened
Select a single location in the switcher above to view its access activity.
Guest passes
Approve a vendor or visitor for free door access
Add a mobile number and a window. That guest opens the overhead door for free while it lasts,
as many times as they need. Expired passes simply stop working.
Phone
Guest
Note
From
Until
Added by
Status
Team
Who can authorize door access here
Add someone at this building so they can issue guest passes and approve vendors.
They sign in at app.parkproof.ai with the email and password you set.
Pick a single location in the switcher above first.
People 0
Loading…
Gate misuse
Out-of-sequence gate use on reservations — strikes, cards on file, fees charged (last 30 days)
Strike 1 warns the driver. After strike 2 the booking must add a card before the gates open again.
Every strike after that is charged the garage’s misuse fee on that card. Clearing a strike keeps the row but stops it counting.