The Roll-Off Rentals page, the sidebar entry with the container icon, is the dispatcher's one screen for every roll-off box that's on the ground right now. It's the operational twin of the Roll-Off Swap Cycle billing article: that one explains how a term bills, this one explains where you *see* the term, filter it, schedule its next visit, and close it out.
If you're new to the roll-off model itself, start with the Roll-Off Swap Cycle Workflow first. This article assumes you already know what a rental term is.
---
RP-1: What You See on the Page
The header split. Two pills on the left, one button on the right.
The KPI strip. Always reads from OPEN rentals, no matter which tab you're on:
---
RP-1b: Customer Requests
When a customer asks for something from the portal's Dumpsters section, it lands in Customer requests under the KPI band (hidden when the queue is empty), oldest first. The same requests are in Inbox → Requests → Dumpsters, and the page's Requests button opens that section. Each row shows the request (Swap, Pickup, Extension or New dumpster), the customer, the container and site, the date they want ("Wants Tue, Oct 6", or "New pickup Tue, Oct 20 (now Sun, Oct 4)" for an extension), their notes and when they asked. Each new request notifies admins and dispatchers by bell, push and email, controlled per person by the Customer Requests row in Settings → Notifications.
One button settles each kind:
| Request | Button | What it does |
|---|---|---|
| Swap | Schedule swap | Opens the Schedule dialog on the customer's date; the new job is linked to the request |
| Pickup (no pickup booked yet) | Schedule pickup | Same, for a pickup job. Scheduling it also sets the rental's expected pickup to that date |
| Pickup (a pickup is already booked, asked date still ahead) | Move pickup to Tue, Oct 6 | Moves the booked pickup job instead of adding a second one, moves the rental's expected pickup with it, and notifies the driver |
| Pickup (a pickup is already booked, no usable asked date) | Keep pickup on Tue, Oct 8 | Tells the customer the booked day stands. Shown when the customer gave no date, or their date has already passed |
| Extension | Extend to Tue, Oct 20 | Sets the rental's expected pickup to that date and moves an already-booked pickup with it |
| New dumpster | Book delivery | Opens the job wizard prefilled from the request (customer, site, size, debris type, delivery date and notes). When the job is created the request is marked scheduled on its own |
"Today" is your company's calendar day, so a request can never push a job into the past:
When Schedule swap / Schedule pickup opens the Schedule dialog from a request, the date field reads "Customer asked for Tue, Oct 6" under it (with a note added when that day has passed), with the date pre-set to the asked day or to tomorrow.
If Book delivery creates the job but the request can't be closed, the wizard says "Job created. The customer's request couldn't be marked scheduled. Close it from the Roll-Offs page." and you close it from the ⋮ menu.
The ⋮ menu holds Mark done (Mark booked on a New dumpster request, "Tells the customer it's taken care of"), Decline… (with an optional reason the customer sees), and on a pickup request with a booked job, Keep pickup on the booked date and Move pickup… ("Pick a different day"). Every outcome is posted to the customer's portal conversation, so they see it in their messages. A request the customer withdrew from the portal simply leaves the queue.
---
RP-2: Filter, Search, Sort
Every filter composes. Search AND container AND overage AND driver, then sort, so they never fight each other.
---
RP-3: The Term Row
Each row is one rental term. Six columns:
| Column | What it shows |
|---|---|
| Customer | Customer name. Debris type appears below as a small caption if set. |
| Container | Product label (e.g. "20-Yard Roll-Off") plus the specific unit's item code once the delivery is done. "N completed swaps" below if any. Amber "N pulls missing weight" when a completed pull can't bill yet: on an Included in the rate rental with an included-tons allowance, a pull with no weight; on a Landfill cost + markup rental, a pull with no weight OR no disposal site. |
| Status | Badge: Scheduled / Active / Pickup due / Completed / Cancelled. |
| Term | `start_date → expected_end_date`. Below it, "N day(s) left" (muted) or "N day(s) overdue" (red). Rows that haven't delivered yet show "Not delivered · N day term" instead. |
| Rates | Haul rate, included tons, $/ton over, $/day over, pulled straight from the term. If nothing's set, amber "Rates not set" appears (see RP-6). |
| Actions | The verbs available on this row's current state. |
---
RP-4: Row Actions
Which buttons appear depends on the term's status.
Active or Pickup-due terms:
Completed terms:
Cancelled terms: view-only.
---
RP-5: The Schedule Job Dialog (Swap and Pickup)
The Schedule dialog is shared between the Swap and Pickup buttons; the only difference is the job type it pre-selects.
Fields:
Scheduling a pickup here (or from a customer's pickup request) also sets the rental's Expected pickup to that date, so the rental doesn't flip to overage the day after the old date.
The Edit rates link at the bottom jumps directly into the term editor (RP-6), useful when you're about to schedule a swap and notice the term's still at "Rates not set" from delivery.
Saving creates one `jobs` row attached to the term (`rental_term_id` set) and drops it on the dispatch board.
---
RP-6: Edit Term Dialog
Pencil icon opens the same shared editor used from the customer profile's Rentals & Service tab. Fields:
What happens on save
Saving rewrites the term row, then automatically calls `recomputeTermCharges` for the term's already-completed pulls that haven't been invoiced. If you entered rates *after* the delivery had already run, a common "container hit the ground unpriced" scenario, the toast tells you how many staged lines got re-priced. Already-invoiced pulls are not touched (the final statement is frozen; see the Swap Cycle article's ROL-9 for the reset flow).
---
RP-7: The Customer-Profile Rentals & Service Tab
Every roll-off term also shows up on the customer's profile under Rentals & Service. Same editor, same actions, same shared dialogs, just scoped to one customer. Use the customer view when you're on a call with them about their box; use the Roll-Off Rentals page when you're planning the day.
Both surfaces read from `rental_terms` in the same order and both invalidate the same query cache on save, so they never disagree.
---
RP-8: Empty States
---