A septic customer owns the thing you service. The tank in their yard, the grease trap under their kitchen, the control panel bolted to the wall — none of it is yours, none of it moves, and until now PortaPro had nowhere to put it.
On-Site System is that place. Open it from any site card on a customer's Sites tab, next to Edit Service Plan. Record the tank and PortaPro starts predicting when it needs pumping. Record the serial off a control panel and a technician can scan that nameplate to pull the whole record up in the yard.
On-site system vs. your units. A porta-john you deliver is *yours* — it's a unit in Inventory with its own profile, placement pins and rental history. A septic tank is the *customer's* — you service it, you never own it, and it stays at that address forever. Those are different things and PortaPro keeps them apart on purpose. If you own it, it belongs in Inventory.
---
OSS-1: Where It Lives
Customer → Sites → the site card → On-Site System.
The button sits beside Edit Service Plan, and the two answer different questions:
| Button | Answers |
|---|---|
| Edit Service Plan | What are we billing them for here? |
| On-Site System | What's actually in the ground here? |
It's also on the site card's three-dot menu, and the System row on the card opens it when you click Add.
Everything inside saves as you go — there's no Save button. Change the household size and it's saved; add a component and it's stored the moment you click Add.
---
OSS-2: Household
Two fields at the top: household size and usage.
These describe the *property*, not any one tank — which is why they're separate from the components below. Two tanks at one address share one household. A three-person house with a garbage disposal loads its system harder than a five-person house without one, and that difference is what drives how often the tank needs pumping.
| Usage | Means |
|---|---|
| Light | Low water use, no disposal, part-time occupancy |
| Average | Ordinary household |
| Heavy | Garbage disposal, water softener discharge, high occupancy |
Change either one and every tank at that address gets a fresh pump-out estimate immediately.
---
OSS-3: System & Components
Below the household is the list of what's actually installed. Click Add component.
What you can record
Tanks & treatment — septic tank, grease trap, holding tank, aerobic treatment unit. These are the pumpable ones, and the only ones that get a predicted service date.
Components — control panel, pump, lift station, distribution box, drain field, effluent filter, riser/lid, alarm. These aren't pumped; they're inspected, replaced and warranty-tracked.
Other — anything that doesn't fit.
A property can have several
That's the point. A restaurant might have a grease trap on a 90-day cycle *and* a septic tank on a three-year cycle. Each carries its own capacity, cadence, service history and predicted due date. They don't share anything except the household above them.
What each component holds
| Field | Why it matters |
|---|---|
| Type | Decides whether pump-out prediction applies |
| Name | Optional. Worth typing once you have two of something — "North tank" |
| Serial number | The number on *this* unit. Makes the nameplate scannable |
| Manufacturer / Model | Fills itself in on later units, once you've entered it once |
| Installed | For age and warranty questions |
| Capacity (gallons) | Drives the pumping interval |
| Service every (days) | Your cadence. Leave blank to use the estimate |
| Last serviced | Auto-updates when your team completes a job here |
| Notes | Access, condition, anything the tech should know |
---
OSS-4: Pump-Out Prediction
Record a tank's capacity and PortaPro predicts when it needs pumping. That prediction drives the overdue badges on your dispatch board, the soft-booking pins on the map, and the reminder that lands in your notifications.
How the estimate is calculated
The interval comes from the Penn State pumping-frequency chart — the industry-standard table of tank size against household size — adjusted for the usage level you set. A 1,000-gallon tank serving four people at average usage works out to roughly every 2.6 years.
If your team has been recording gallons pumped on completed jobs, the estimate tightens using that history: a tank consistently coming out fuller than expected gets a shorter interval.
Your number always wins
Type anything into Service every (days) and that's the cadence — the chart is ignored. The estimate is a starting point for tanks you haven't measured yet, not an argument.
What "next due" is counted from
Last serviced, plus the interval. Without a last-serviced date there's nothing to count from, so no date is predicted. Set it once when you onboard the customer; after that, completing a job at that site updates it automatically.
Contract customers are left alone
If a site has recurring units on its rate card, its cadence is contractual — you've agreed to service it on a schedule and PortaPro won't second-guess that with a prediction. Those sites are skipped entirely.
The reminder
A `septic_pump_due` notification goes to admins and dispatchers roughly two weeks before a tank comes due. It's suppressed when a job is already scheduled at that site, and it won't fire for tanks more than 90 days overdue on first setup — otherwise turning this on for an established book would ring a hundred bells at once.
Only tanks get dates. A control panel has no pump-out cadence, so it never shows a due date and never triggers a reminder. It still carries its own identity, history and paperwork.
---
OSS-5: Scanning a Nameplate
Standing at a panel with a sixteen-digit serial on it, you should not be typing.
Click Scan label at the top of the Add component form. It takes a camera photo, a USB or Bluetooth barcode scanner, or a photo you already have — and reads QR codes, Code 128, Code 39, UPC, EAN, DataMatrix and PDF417.
What it fills in
The serial, always. That's the one that saves you the typing.
Manufacturer and model, once you've scanned that product before. The first Orenco panel you record, you type the make and model. Every panel after that with the same product code fills itself in — from *your* records, not a third-party database that would only half-know your equipment anyway.
It never overwrites what you typed
A scan fills empty fields only. If you've already typed the serial, scanning won't replace it. You're standing in front of the nameplate; PortaPro isn't going to argue with you about what it says.
If PortaPro already knows that code
You'll get a warning naming the component you already have on file, so you don't create a duplicate by accident. It doesn't block you — a prior service company's label scheme can genuinely repeat across properties — but it tells you what it found.
Serial vs. product code. A serial identifies *that* unit. A product code (a UPC) identifies the *model* — forty identical panels across forty customers all share one. PortaPro tells them apart by how many of your components already carry the code: nothing means it's new, one means it's that unit, several means it's a model code and it only fills in the make and model.
---
OSS-6: Finding a System by Scanning
Once a component carries a serial, you can scan it from anywhere to pull it up.
On a phone: tap the scan icon in the header → Scan Asset.
On a desktop: the scan icon in the top bar. A USB barcode scanner works directly — no camera needed.
Either way it resolves what you scanned and takes you there: one of your units goes to its Inventory profile, a customer's system component goes to its own screen, a consumable goes to your stock list.
What the component screen shows
The four things a technician actually needs, in this order:
Below those: the identity fields to confirm you're at the right unit, site access notes and a call button, any other components at that address, and pump-out history for the property.
---
OSS-7: How This Reaches the Rest of PortaPro
Recording a system isn't filing. It switches things on:
---
OSS-8: Common Questions
Do I have to record equipment for every customer?
No. It's for customers whose systems you service. A porta-john rental account doesn't need one.
What if I don't know the tank size?
Leave it blank. You'll get no prediction until you fill it in — but you can still set an explicit cadence in Service every (days) and get a due date that way.
Can I record a porta-john here?
No, deliberately. Units you own live in Inventory with unit profiles, placement pins and rental history. A second record here would be a copy nothing keeps in sync.
Two customers have the same panel with the same serial. Is that a problem?
No. Serial numbers are only unique per manufacturer, and prior-vendor labels repeat freely. PortaPro will tell you it's seen the code before, then save it anyway.
Does deleting a component delete its history?
No. Jobs that recorded work stay as they are.
Where do I set household size — here or in Edit Service Location?
Here. The Edit Service Location modal no longer carries household or equipment; this dialog is the single place both live.
