The Desk at /dashboard/shop-rentals is the page you'll open every
morning. It's your at-a-glance view of what's happening in the shop today
and what needs attention.
What the page shows
Header — quick navigation
Top right has three buttons:
- Refresh — re-pulls all data; useful after another staff member updates a booking
- Customers — jumps to the customer list
- Reservations — jumps to the full bookings list
KPI tiles — four numbers that matter
| Tile | What it counts | Why it matters |
|---|---|---|
| Upcoming bookings | All future reservations across all dates | Volume gauge |
| Active rentals | Currently active status (out on rental) | Bikes off the rack right now |
| Needs assignment | Model-bookings that need a specific bike picked | Operator queue |
| Booking revenue | Total revenue across all reservations | Quick top-line check |
If "Needs assignment" is non-zero, click into the Assignment Queue card below.
Setup status cards
Four cards link to setup screens:
- Rental pricing — how many active tiers
- Bookable inventory — total assets across active caps
- Pickup locations — how many active locations
- Rental calendar — count of reservations scheduled today
If any of these show "0," your shop isn't fully configured yet — see Setting up your first shop.
Today's Manifest
The main left column lists every reservation with a pickup or return happening today, sorted by pickup time. Each row shows:
- Booking number, status badge, delivery flag (if applicable)
- Customer name (or email if name not set)
- Bike model / vehicle number / quantity
- Pickup time, length, total
Quick actions appear on each row depending on status:
| Status | Buttons shown |
|---|---|
confirmed | Check in |
checked_in | Start rental |
active | Complete return |
| any other | (no inline button — click row to drill in) |
These transitions auto-stamp actual_pickup_at and actual_return_at so
the manifest is always accurate. See
Check-in / start / complete
for the full state machine.
Assignment Queue
Right column. Lists model bookings (where the customer reserved a "city bike" without a specific vehicle assigned) for the next 14 days that still need a vehicle picked.
Each row shows the remaining-to-assign count (e.g., 2/3 means 2 still
unassigned of 3 booked). Click the row to drill into the booking detail
where you assign specific vehicles from the eligible-vehicles dropdown.
Counter Actions
Lower-left card has shortcuts to high-frequency tasks:
- Customer lookup — search the customers list
- Find reservation — jump to bookings search
- Assign assets — jump to inventory assignment queue
- Edit rental packages — jump to pricing tiers
Next 14 Days
Bottom-right card. The next 10 upcoming reservations (any date in the next two weeks) as a full table. Quick way to spot a busy weekend coming up.
System status
Bottom strip. Shows green/amber depending on whether your shop is configured. If locations, inventory caps, or pricing tiers are all present and active, you see "Shop rental setup is ready for managed bookings." Otherwise it nudges you to finish setup.
Subaccount switching
If you operate multiple shops (e.g., a beach location and a downtown location, each as separate subaccounts), switch in the top-right subaccount selector. The Desk re-loads with that subaccount's data.
Auto-refresh
The page does not auto-refresh. If multiple staff are working and one closes a rental, the others won't see the update until they hit Refresh or navigate away and back. We're considering live polling in a future release; for now, refresh manually before you process a walk-in to make sure you're seeing the latest manifest.
When the manifest is empty
If today's manifest is empty:
- You have no bookings scheduled today, OR
- Your subaccount selector might be on the wrong shop, OR
- Your filter (vehicle UUID, etc.) might be too restrictive
The manifest is filtered by today's pickup/return — bookings entirely on past or future dates won't appear here. Use the Calendar (month grid) for a broader view.
Common Desk workflows
Morning open
- Glance at "Upcoming bookings" and "Active rentals" KPIs
- Scroll today's manifest top-to-bottom — make sure each pickup is ready
- Check "Needs assignment" — if non-zero, work through the queue before the customer arrives
Mid-day check-in
When a customer walks in for a pre-booked reservation:
- Search by name or booking number in Find reservation OR
- Spot them in today's manifest
- Click Check in, then Start rental when they ride away
End-of-day reconciliation
- Sort the manifest by status — anyone still
activeafter closing time should get a phone call (and potentially a late fee, see Late returns) - Verify all
completedreturns have anactual_return_at(auto-stamped if you used the Complete return button) - Check the booking revenue tile against your shift's expected total