PortaPro Docs

Win and serve customers

desktop_windows
Customer Portal
24/7 access to schedules, invoices, and service history.
price_change
Quotes & Invoices
View, approve, and pay documents online.
event_available
Online Booking
Customers book roll-offs and event rentals on your website and pay a deposit. Nothing is scheduled until you approve.
credit_card
Payment Processing
Secure online payments with flexible options.
sms
Inbox
Portal messages, text (SMS), and email in one inbox per customer, plus a Requests tab for everything customers ask for in the portal.
signature
E-Signatures
Sign contracts digitally with audit trails.
build
Service Checklists
Standardized pumping and cleaning workflows.
map
Venue Blueprinting
Pin inventory clusters on satellite maps, link to quotes, and send branded site plans.
mark_email_read
Email From Your Inbox
Send invoices, quotes, and sales email from your real address, with your real deliverability.

Run the field

assignment_add
Job Schedules & Dispatch
Create jobs, dispatch routes, and manage recurring service.
alt_route
Route Optimization
Routes planned around tank capacity, disposal-site hours, and service windows.
smartphone
Mobile App
Offline-first workflows for field operations.
location_on
Unit Pins
Every unit's exact spot on the site map. Drivers move pins from the field.
description
Services Hub
Service requests, checklists, and proof-of-work logs for every job.
sms
Team Chat
Channels and direct messages for drivers, dispatch, and the office.
connect_without_contact
Walkie-Talkie
Push-to-talk inside the PortaPro app, on the channels your crew already uses, with searchable transcripts.
phone_in_talk
Calls & Huddles
1:1 calls and channel huddles for your crew, plus meetings customers join from a browser.

Control the business

inventory
Equipment Inventory
Availability by date, so a weekend booking shows before the weekend.
festival
Event & Tent Rentals
Kits, tents booked by size, pull sheets, scan-back check-in, and charges for what comes back missing.
dashboard
Event Layouts
Tents and tables to scale on the venue or its floor plan, seating charts from the guest list, and a share link for comments and approval.
calendar_month
28 Day Invoicing
Bill every site automatically on the industry-standard 28-day cycle, with duplicate prevention built in.
attach_money
Bookkeeping & Billing
Quotes, invoices, expenses and receipts, bank reconciliation, and QuickBooks, Xero and FreshBooks sync.
group
Customer Accounts
Profiles, sites and locations, contacts, and history.
format_list_bulleted_add
Leads & Deals
The CRM built into PortaPro.
outdoor_garden
Temporary Fencing
Draw the fence on the satellite map or type the feet: panels, gates, stands, clamps and sandbags counted for you, screen priced by the foot.
Roll-Off Rentals
Live ledger for every container on the ground, overage and landfill disposal billed from the weight ticket, and dumpster requests from the customer portal.
local_shipping
Fleet Management
Maintenance, compliance, inspections, and vehicle tracking.
my_location
GPS Tracking
Plug-in trackers for the trucks, battery tags for the units, and an alert when a unit leaves its pin.
phone_in_talk
Business Phone
A real business line with an IVR, ring groups, voicemail, and recording. Click to dial, ring your cell, and every call logs itself on the customer.
manage_accounts
Team Management
Roles, the time clock, and the credentials about to expire.
person_add
Hiring
A careers page, an application built for CDL drivers, and a Hire button that turns the applicant into a team member.
wallet
Payroll
W-2 and 1099 payroll inside PortaPro. In beta, rolling out in stages.
bar_chart
Reporting & Analytics
Gallons by disposal site, overdue sites, and reports on your billing cycle.
water_drop
Septic Service
The tank on the customer's record, pump-out dates predicted, and every septic report form, from pumping to real estate transfer, shipped and attached to the job.
Also in PortaPro:QuickBooks Sync,Xero Sync,FreshBooks Sync,Claude & ChatGPT,Equipment Scanning,Shared Truck Devices,Consumables,Marketing Tools,Automated Review Requests,Septic Reminders,Celebrations,Help & Support

Run your portable sanitation operation from lead to ledger.

One system, 46 features, no per-user or per-vehicle fees or limitations.See all featuresarrow_forward

Learn & Discover

calculate
ROI Calculator
Estimate time, labor, fuel, and cost savings with PortaPro.
route
Route Efficiency Simulator
See how optimized routing can increase weekly service stops.
scale
Dumpster Weight Calculator
Estimate debris weight and the roll-off size it needs.

Support & Training

headset_mic
Support
Submit a request, email our team, or book a call.
support
Help Centeropen_in_new
Guides, documentation, and step-by-step setup resources.
favorite
Our Promise
Why we refuse to let software get worse over time.

GPS Asset & Vehicle Tracking

How GPS tracking works
location_on
Unit tracking device
A sealed battery tag inside the unit. It reports when the unit moves, and the battery lasts five to seven years.
navigation
Vehicle tracker
Plugs into the truck's OBD-II port. Live location, plus odometer and fuel on supported trucks.

Solutions

local_shipping
In the Field
A service day from the yard to the invoice, and where each job goes wrong.
wc
Portable toilet operators
Same-day missed stops, proof for every stop, and rate card invoices.
water_drop
Septic operators
Pump-outs predicted from the tank, and the county's own forms filled from the job.
water_drop
Grease trap service
Each trap on its own cadence, and the FOG 25% rule measured.
Roll-off haulers
Days past term, tons over the allowance, and landfill fees on one final invoice.
celebration
Tent and party rentals
A tent booked by size, packages as one line, every chair checked in.
festival
Event and festival operators
A site plan on the quote, and a weekend priced as a weekend.
account_balance
Municipal contracts
Invoices before the period with the PO printed, and a record of every park visit.
domain
Multi-location operators
Several yards, service territories, divisions, and roles in one account.
Why Operators SwitchPricing
Sign Inrocket_launchStart Free Trial
homeHelp Centerchevron_rightCustomer Managementchevron_rightLong-Term Rental Workflow (Construction & Ongoing Sites)

Long-Term Rental Workflow (Construction & Ongoing Sites)

schedule12 min read
calendar_todayUpdated October 10, 2026
long-term rentalrate cardcycle billingautopayconstructionrecurringrate-card-firstrentals

On this page

LTR-1: When to Use This WorkflowLTR-2: Create the Customer and Their SiteLTR-3: Set Up the Rate Card (What's at the Site)LTR-4: Place Units on the Map (Physical Ground Truth)LTR-5: The Rentals & Services Tab, What's Actually DeployedLTR-6: Run the First Cycle InvoiceLTR-7: Set Up Autopay (End the Dead End)LTR-8: Auto-Generated Delivery Jobs (Pending-Delivery Sites)LTR-9: TroubleshootingLTR-10: Related Articles

Need more help?

Need more help?

Contact Us

Have questions about PortaPro? Fill out the form below and our team will get back to you within 24 hours.

Or schedule a quick call at a time that works best for you.

Contact Us

Have questions about PortaPro? Fill out the form below and our team will get back to you within 24 hours.

Or schedule a quick call at a time that works best for you.

PortaPro

Contact:
support@portaprosoftware.com

© 2026 PortaPro. All rights reserved.
All-in-one software for portable sanitation operators.

Quick Links

PricingROI CalculatorDumpster Weight CalculatorFree TemplatesSeptic Rules by StateCompare SoftwareBlogIn The Field

Platform

DispatchBillingFleet ManagementCustomer Portal

Support

Contact supportGetting set upHelp Centeropen_in_newStatusCareers

Company

TermsPrivacyCookie PolicySecurityAccessibilityAbout

Serving operators across North America. Proudly Built in America. 100% US Customer Support

Privacy Policy·Terms of Service·Accessibility·Contact

This article covers the rate-card-first workflow, the way PortaPro is designed to handle construction sites and any other customer who rents units month after month on a recurring cycle. If you're doing weekend event rentals, see the Weekend Event Rental workflow instead; if you're doing roll-off dumpsters, see the roll-off swap cycle guide.

The rate-card-first workflow is different from single-job dispatch. Instead of booking one delivery job that carries the units, you declare what's at each site on the customer's Rate Card, place the physical units on the map, and PortaPro bills the recurring cycle automatically. This article walks you through the full lifecycle: set up the customer, add sites and units, place them on the map, run cycle invoices, and set up autopay so the customer's card is charged on cycle close.

---

LTR-1: When to Use This Workflow

Use rate-card-first when:

  • The customer rents units on a recurring monthly, weekly, or 28-day cycle
  • The same units stay at the site over multiple billing periods
  • You want PortaPro to generate cycle invoices automatically instead of billing job by job
  • The site has more than one unit type (e.g. a construction site with a standard, an ADA, and a handwash station)
  • Use single-job dispatch instead when:

  • It's a one-off delivery (event, party, short project)
  • The customer only ever gets one invoice per rental
  • Signals you're on the wrong workflow

  • You created a customer, added a delivery job, and their Rentals & Services tab is empty → the units live on the job, not on a Rate Card. That's fine for one-off jobs, but you'll bill each pickup instead of on cycle.
  • You added Rate Card rows but they never appear as physical placements on the map → declaration alone doesn't place units; you also need to place pins.
  • ---

    LTR-2: Create the Customer and Their Site

    Step 1: Create the customer

  • Navigate to Customers → + New Customer
  • Fill in name, contact info, and billing address
  • Set the payment terms (Net 30 is the default; use Net 15 or Due on Receipt if that's your standard for this customer)
  • Save
  • Step 2: Add a service location

    Even if the service address is the same as the billing address, create it explicitly as a service location. The Rate Card attaches to service locations, not to the customer as a whole.

  • Open the customer profile
  • Go to the Sites tab
  • Click + Add Site
  • Enter the name (e.g. "Main St Project," "Lakewood Park"), address, and any GPS notes
  • Set the status:
  • - Active, the site is live now; PortaPro treats it as billable immediately

    - Pending Delivery, the site is contracted but the units aren't out yet; PortaPro will auto-generate a delivery job when you set a scheduled delivery date

    Active sites go straight into the current cycle; pending-delivery sites wait for the auto-generated delivery job to complete before they activate.

    Ending or pausing a rental? Status is only for operational state, the temporary and end-of-life steps are the Pause and Close actions on the site card's three-dot menu. Pause a site to stop billing while the customer is away (rates and counts kept, resume in one click); Close it when the customer is done (units come home, counts zero out, the site is hidden but every invoice is kept and it can be reopened). See Customer Sites for details.

    ---

    LTR-3: Set Up the Rate Card (What's at the Site)

    The Rate Card is where you declare "at this site, the customer has N of these units, at this rate, on this billing period." It's the contract in software form.

    Step 1: Open the Rate Card

  • From the customer profile, open the Sites tab
  • Click into the site you want to configure
  • Click Rate Card (or the ➕ to add the first row)
  • Step 2: Add a Rate Card row

    Each row represents one unit type at one site. Fill in:

  • Product, pick from your inventory (e.g. "Standard Portable," "ADA Unit"). If your row is missing a product, add units to that product first via Inventory.
  • Unit type / label, human-readable name shown on invoices
  • Quantity, how many of this type at this site
  • Billing period, `per_week`, `per_month`, `per_28_day`, or `flat` (the customer's cycle should match this, mixing biweekly rate rows with a monthly cycle will produce prorated math, which is correct but harder to read)
  • Rate, the per-period price
  • Service day of week, the day this unit is serviced (drives skills routing and the driver's route plan)
  • Effective from / to, leave blank to use "always"; set an effective start date if you're mid-cycle and don't want this row billed until next cycle
  • Save the row. Repeat for every unit type at the site.

    Important: fill in every field

    When a Rate Card row is missing `product_id`, `unit_type`, or `service_day_of_week`:

  • Delivery-job auto-generation can't include this row (`product_id` gates delivery-line creation)
  • Skills routing can't route the service visit (`service_day_of_week` gates day-of-week planning)
  • The row still bills correctly on cycle close, but the operational side of the workflow is broken
  • PortaPro shows a soft warning in the Rate Card modal when these fields are missing. Fix the warning before you save.

    ---

    LTR-4: Place Units on the Map (Physical Ground Truth)

    The Rate Card declares *what should be at the site*. Placing pins on the map records *where each unit physically is*. Both are needed:

  • Declaration only → billing works, but drivers on-site have no map guide
  • Placement only → drivers know where units are, but there's no cycle invoice math
  • Both → the full workflow
  • Step 1: Open the customer's map

  • From the customer profile, click the Map tab
  • Or navigate to Map View and search the customer
  • Step 2: Drop a pin at the exact location

  • Right-click / long-press the map at the placement spot
  • Choose Drop Pin and label it (e.g. "North corner," "By trailer")
  • Step 3: Attach units to the pin

  • Click the pin to open its detail sheet
  • Click Add Units
  • Choose Tracked (specific item codes like `#1002`) or Untracked (per-type counts, e.g. "2 Standards, 1 ADA")
  • Save
  • PortaPro enforces that the sum of untracked counts across all pins at a site cannot exceed what you declared on the Rate Card. It shows a "placement discrepancy" warning if it does.

    Step 4: Move a pin when the unit moves (September 2026)

    Pins are not frozen once dropped. When a unit gets moved on site:

  • From the office: open the pin's detail sheet and click Move on map. The pin becomes draggable; drag it to the new spot and click Save position. The move is recorded in the pin's history ("Moved 87 m by dragging on the map") and the pin shows when and how many times it has moved.
  • From the field: drivers move pins from the job sheet, Move pin here snaps the pin to the phone's GPS (accuracy recorded), Adjust on the map drags it, and Only some splits a cluster so the units that moved get their own pin. See Moving Unit Pins from the Field. This map updates live as they do it, and the job's notes carry one line per move.
  • Can't fix it now? Either side can flag a pin Needs relocation with a note. Flagged pins render orange on every map and clear automatically when the pin is moved.
  • Moving or splitting a pin never changes the Rate Card or the invoice, pins are placement, not declaration.

    ---

    LTR-5: The Rentals & Services Tab, What's Actually Deployed

    The Rentals & Services tab on the customer profile shows every site with active deployed inventory. As of the July 2026 update, this tab reads from three sources at once:

  • Job-assigned units, units on live equipment assignments from open delivery jobs (dispatch-first workflow)
  • Placed units, units placed via map pins (both tracked item codes and untracked type counts)
  • Declared units, units declared on the Rate Card at active sites that don't yet have placements or assignments
  • This is why customers on the rate-card-first workflow, where units are declared and placed, not job-assigned, used to see an empty Rentals & Services tab even though their cycle invoice billed $1,170 of active service. That's fixed. You'll now see the sites correctly, labeled with the source:

  • Assignments → job-based deployment; the "View Job" and "Assign" buttons work
  • Rate Card / placed → rate-card-first deployment; the job buttons are hidden because there is no job to open
  • Unit counts on the tab

    When a site has both declared and placed units, the tab shows the placed count (physical truth), otherwise it shows the declared count (contractual). This keeps the tab honest: it never invents units the customer doesn't physically have.

    ---

    LTR-6: Run the First Cycle Invoice

    Once the site is active with a Rate Card, PortaPro will generate cycle invoices on the customer's schedule automatically. You can also generate one manually to verify.

    Manual cycle invoice (verification):

  • Open the customer profile
  • Go to Sites → Rate Card
  • Click Generate cycle invoice (the current cycle). For a cycle that already closed, use ⋮ → Bill previous cycle or ⋮ → Bill an earlier period…
  • The draft lands on the customer's Financial tab, one line per Rate Card row
  • The invoice appears in draft state. Review it, then send.

    What lands on the invoice

  • One line per Rate Card row (declared units × rate × period)
  • Any completed service jobs' fees that weren't already billed (e.g. an emergency pumping fee, see the emergency/on-call workflow)
  • Any wasted-trip or damage fees on completed jobs that weren't already billed
  • Prorated math if the site was mid-cycle when it activated
  • What does NOT land here

  • Roll-off rental term charges (those go on a separate final statement at term end, see the roll-off workflow)
  • Event rental charges (those bill at accept + pay time, upfront)
  • ---

    LTR-7: Set Up Autopay (End the Dead End)

    The recommended setup for cycle billing is: when the cycle closes and the invoice sends, the customer's card is charged automatically. To do that, PortaPro needs a card on file.

    Step 1: Save a card

  • From the customer profile, open Sites → Rate Card and find the Autopay card
  • Click Add card. The Save a card on file window opens inside PortaPro, on your connected Stripe account
  • Enter the customer's card details and save
  • Step 2: Turn autopay on

    The Autopay card has two switches:

  • Cycle invoices: charge every cycle invoice the moment it sends
  • One-off invoices: charge one-off and manually issued invoices on their due date
  • Turn on the one you need. Autopay needs a saved card to charge.

    ---

    LTR-8: Auto-Generated Delivery Jobs (Pending-Delivery Sites)

    When you add a site with status Pending Delivery *and* a Scheduled Delivery Date, PortaPro auto-generates a delivery job for that date. The job carries only Rate Card rows that have a `product_id` set, rows without one are skipped silently (which is why the field warning in LTR-3 matters).

    Once the driver completes the delivery job:

  • The site flips from `pending_delivery` to `active`
  • The units flip from `assigned` to `in_service`
  • The Rate Card starts contributing to the next cycle invoice
  • Sites created as already Active

    If you set a site straight to Active (because the units are already out), no delivery job is generated, this is by design. If you need a delivery job for record-keeping in this case, create it manually from the customer profile.

    ---

    LTR-9: Troubleshooting

    "The Rentals & Services tab is empty but the cycle invoice is $1,170."

    Fixed in July 2026, update to the latest deploy. The tab now reads from Rate Card declarations and map placements, not only from job assignments.

    "I can't enable autopay, it says I need a payment method."

    This is correct. Click Add Card in the same panel to save one; the setup-intent flow will let you enter the card details. Then re-enable autopay.

    "Autopay 401 in the browser console."

    Fixed in July 2026 (missing `X-Organization-Id` header on one fetch). Update to the latest deploy.

    "The delivery job never got created for a pending-delivery site."

    Two possible causes:

  • No scheduled delivery date was set on the site, auto-generation is gated by both `pending_delivery` status AND a date
  • The Rate Card rows have no `product_id` (or don't exist yet), the delivery job is generated, but with no product-carrying rows there are no delivery lines to include. Fix the Rate Card and cancel the empty job.
  • "The Rate Card modal warned about missing product / unit type / service day."

    Fill those in before saving. Missing fields don't block save (data may be intentional), but they break the operational side of the workflow: delivery jobs, skills routing, and the driver route plan.

    "One customer has both declared units on the Rate Card and pins on the map, and the counts don't match."

    This is a placement discrepancy. Open the site inventory tool: if you have MORE placed than declared, that's a loud warning (you're deploying more than the contract). If you have FEWER placed than declared, that's a silent under-placement (the contract expects more units than are physically there, reconcile by either updating the Rate Card or placing more pins).

    ---

    LTR-10: Related Articles

  • Weekend Event Rentals (per-event windows and public accept + pay)
  • Roll-Off Swap Cycle (term-based billing with final statements)
  • Cycle Close & Invoicing (advanced: proration, rate basis, credits, top-up)
  • Emergency / On-Call Jobs (surcharges and job fees that ride the cycle)
  • Inventory Setup (adding products, tracked vs untracked, item codes)
  • Map View & Pin Placement (site inventory ground truth)
  • Was this article helpful?

    Related Articles

    menu_book

    The Customer Hub and the Customer Profile

    8 min read

    chevron_right
    menu_book

    Adding Customers and Contacts

    7 min read

    chevron_right
    menu_book

    Customer Sites

    5 min read

    chevron_right