For portable toilet operators
Every stop serviced, every stop proven, every unit billed.
A porta-john book is a weekly route with events and construction on top, and the business is won or lost on three phone calls: the one about the stop that was missed, the one that says nobody came, and the one about the invoice. PortaPro answers each with a record instead of a memory: an end-of-day missed stops report, photos stamped with the time and place, service visits created for the length of an event, costs on every job, and invoices drafted from the rate card each cycle.
The three calls
The software has to hold up when the customer is on the phone.
Nobody calls a portable toilet company to say the unit was clean. They call when it was not, when the truck never came, or when the invoice does not match what they think they had. Software for this industry mostly sells the route and stops there, so the call still ends with someone promising to look into it.
PortaPro is built so that the answer is already on the screen: which stop was missed and what happened to it, a photo that proves the driver stood at that unit at that time, and an invoice that came from the same record the route did. The five scenes below are the ones operators describe to us, in the order they happen.
The stop that did not happen
A missed service becomes an angry customer call.
Thursday's route had forty-one stops. The driver did thirty-nine, and nobody knew which two until the site superintendent called Monday morning. The unit was full by then, the crew had been using it all weekend, and the call was about far more than one pump-out.
PortaPro tells you the same day. At the time you choose, an end-of-day report lists every stop that did not happen, with the customer, the site, and the driver. Each one is a row you can reschedule in a tap, or PortaPro can move the silent misses to the next working day on the same truck by itself.
- Driver-reported stops are never moved by the machine. A locked gate or a customer who turned the driver away is a decision for the office, so those stay on the list with the driver's note until someone decides.
- The customer hears from you before they call. A day-before text, an arrival window when the route goes out, and an on-the-way text with a live ETA. All three are opt-in and sent from your number.
- The next morning starts with what needs attention. Missed stops, driver-reported problems and follow-ups sit in one panel above the dispatch board until they are handled.
The dispute
His word against yours.
The job was done. The driver remembers the site, the unit, the time. The customer's email says nobody came and they are not paying for the month. Without something dated and placed, it is a story told twice, and the invoice is the one that loses.
Every completed stop in PortaPro leaves a record a stranger would believe. The driver's photos carry the date, the time, the coordinates and your company name burned into the image. The job records when the phone arrived and left the site. The service report ends with a proof of service block, and the customer can be sent the proof the moment the driver taps Complete.
- The stamp is honest. No GPS fix in the moment the photo is taken means the strip reads Location unavailable; a photo picked from the library says so. PortaPro never writes a place it did not measure.
- A proof page, no login. Turn on the completion notice and the customer gets an email, a text, or both, with a private link: what was done, when, by whom, the stamped photos, the signature, and the report as a PDF. Off by default; one switch under Settings, Jobs.
- The PDF carries it too. The service report prints the photos with their captions and the signature at the end, with every time in your time zone.
The long event
The festival wants service every three days, and you are twenty units short.
A ten-day fair, twenty-five units, serviced every third day. The quote says so. Then the quote becomes a delivery and a pickup, and the three service visits in between live on a whiteboard, where one of them gets erased. Meanwhile the units came from the operator two counties over, on a handshake, and nobody is sure which of them are booked next weekend.
In PortaPro the visits are jobs. A service line on an event quote with a cadence creates a service job for every visit date between delivery and pickup, priced on the event so nothing bills twice. Extend the event and the extra visits appear. And units you rent from another operator are real units in your inventory for exactly the days you have them.
- Quoted visits equal created visits. Daily, weekly, every other week, or every N days. The dates the quote priced are the dates the jobs land on, and removing the service line removes the visits that have not started.
- Subrentals book like your own units, inside their window only. Add the subrental under Inventory with the vendor, the quantity and the dates. The units can be booked for those dates and refused outside them, PortaPro reaches for your own units first, and extending an event past the return date says Extend the subrental first.
- One expense when they go back. Return to vendor retires the units and records the rental as one expense, so the cost reaches your books and the profitability of the jobs that used them without being counted twice.
The contract
What did that job actually make?
Revenue is easy; it is on the invoice. Cost is a feeling: the fuel was about this, the dump was about that, the driver was there a while, and some of the units were rented in. At the end of the season the number you believe is the one you hoped for.
Job and Route Profitability puts the costs you recorded and the costs PortaPro can measure beside the invoice: fuel, disposal, supplies, any expense logged to the job, the driver's time on site at the labor rate you set, and the share of any subrental the job used.
- Labor from time on site, not a timesheet. Minutes come from the phone's GPS arrival and departure, else the driver's Arrived and Completed taps, else the planned time, at the Driver labor rate under Cost Rates. No rate set means the report says so instead of inventing one. It is a costing assumption, never anyone's pay.
- Every unit keeps its own history. A unit's page lists each completed service at the site while the unit was placed there, with the date, the driver, the gallons where they were recorded, and the report. Scan the weatherproof tag on the unit to open it.
- Per route as well as per job. A route's day, grouped by driver, with drive time costed from the plan, so a thin territory shows up as a thin territory.
The invoice
And then it all has to be billed.
Most software for this industry stops at the route. The end of the month is still a stack of route sheets, a spreadsheet of who has what, and someone typing invoices until the numbers look about right. A unit that was swapped on the 14th, a site that started on the 20th, a customer on a 28-day cycle: each one is a judgement call made in a hurry.
PortaPro bills from the rate card, the same record that generates the route. Each cycle, 28-day or calendar month, drafts every customer's invoice with the units at each site, prorated from the day they were set, for the office to review and send in one batch. Overnight, Billing Health checks the book for anything that looks wrong and emails the office each morning there is something to look at.
- Municipal and corporate accounts billed in advance. A customer on advance billing gets the invoice before the period starts, with the PO number printed, so accounts payable can approve it on their own schedule.
- Did every rate card get billed? The Rate Card Billing Audit report answers it for the last cycle, row by row: billed, drafted, skipped, or not billed.
- Paid online, by card or bank. Every invoice carries a pay link. On the Growth plan card processing is 2.25% flat and ACH is free, with a cash discount program for customers who pay by check.
Old way vs PortaPro
The old way vs. PortaPro
A route on paper, a whiteboard for events, and invoices typed at month end, next to the same book in PortaPro.
Knowing a stop was missed
The driver's route sheet, read the next morning, if it comes back
PortaPro:An end-of-day report lists every stop that did not happen and can move each one to tomorrow on the same truck
A customer says nobody came
The driver's word, a day or two later
PortaPro:Photos stamped with the time, the place and your company name, GPS arrival and departure, a signature, and a proof page the customer opened from the completion email
Service during a ten-day event
A whiteboard note to send someone on Thursday
PortaPro:A service job for every visit date between delivery and pickup, created from the quote
Twenty units borrowed from another operator
A sticky note and a handshake
PortaPro:Units in your inventory for exactly those dates, booked like your own, and one expense when they go back
Which unit was serviced, and when
Nobody knows; they all look the same
PortaPro:A service history on each unit's page, opened by scanning the tag on the unit
What the contract made
Revenue you know, costs you guess
PortaPro:Revenue beside fuel, disposal, supplies, driver labor and subrentals, per job and per route
The invoice
Typed from the route sheet at the end of the month
PortaPro:Drafted from the rate card each cycle, prorated, checked overnight, and sent in one batch
Questions portable toilet operators ask
We bill on 28-day cycles, not calendar months. Does that work?
Yes. The company's billing cycle is 28-day or calendar month, and each rate card row carries its period. The invoice window follows the row, so a 28-day book gets 28-day invoices, every cycle, prorated from the day a unit was set.
Does the customer need a login to see the proof of service?
No. The completion email and text carry a private link to a page with what was done, when, the driver's first name, the stamped photos, the signature, and the report PDF. The customer portal exists too, but the proof link does not depend on it.
Do drivers need special hardware for the photo stamp?
No. The phone is the camera and the sensor. If there is no GPS fix at the moment the photo is taken, the strip reads Location unavailable rather than a guessed position, and a photo chosen from the library is labeled as such.
What happens when a driver reports a locked gate?
The stop stays on the missed list with the driver's note and is never moved automatically, even with auto-move turned on. The office reschedules it from the same row, with the suggested days and drivers already ranked.
Can we add service visits to an event that is already booked?
Yes. Extending the event adds the visits for the new dates, and a service line added to the job creates its visits. Removing a service line removes the visits that have not started.
Do subrented units show up in our fleet counts?
Only where it is honest. They count as available on the days you have them, labeled as subrented, and never in the counts of what you own: asset tags, printed tag orders, and the fleet total leave them out.
Do we need a time clock to see labor cost on a job?
No. The minutes come from the job itself: the phone's GPS arrival and departure, else the driver's Arrived and Completed taps, else the planned time. The rate is the Driver labor rate under Cost Rates, which is a costing assumption and never anyone's pay.
We also pump septic and do festivals. Is that the same product?
Yes. The same customer, site, job, route, and invoice run all of it. The septic page covers the tank on the customer's record and the county's forms; the events page covers the site plan on the quote and weekend pricing.
The route itself is on the route optimization page, where units sit on a site is on the unit pins page, and the driver's side of all of it is on the mobile app page.
Bring one week of your route.
Book a walkthrough with a real route sheet. We will load the customers, run a service day, miss a stop on purpose, and show you what the customer and the office see.
7-day free trial · Cancel anytime