Job costing software for plumbing contractors
Plumbing gets paid by phase: underground, rough-in, top-out and trim, each with its own inspection. CFOS for QuickBooks costs every phase and every fixture package to the job, so you know which trip lost money.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
How plumbing bills and where the money leaks
Commercial plumbing bills on a schedule of values with a pay app each month and retainage on every line. Multifamily and production homes are often priced per unit or per fixture and billed as each phase passes inspection: underground, rough-in or top-out, then trim. Service and repair work bills by the call, and it shouldn't share a budget with a forty unit building.
The underground is the first place money goes missing. You lay out, trench, set sleeves and test before the slab is poured, and if the layout moves or the GC pours late, you're back with a crew and an inspector. Water heaters, fixture packages and tubs are often bought early and stored, and a tub set at framing can be chipped or full of debris by the time trim comes.
Then there's damage from other trades. A drywall screw through a supply line, a framer cutting a vent or a concrete crew burying a cleanout all turn into repair labor. That labor is yours unless someone signs a T&M ticket for it, and every failed inspection or repair trip is a mobilization the per-fixture price didn't include.
How plumbing costs split and what CFOS tracks
Plumbing costs split into pipe and fittings, fixtures and equipment, labor by phase, gas piping, permits and inspection fees, and subcontracted items like insulation or site utilities. Material is two different things: commodity pipe that's bought in bulk and drawn from the shop, and fixture packages that belong to one job. Labor is the bigger risk, because underground, top-out and trim each move at their own pace.
CFOS imports your estimate as the job budget by cost code and compares it to actual cost from QuickBooks Online every hour. With three levels of cost code, a building, a floor or a unit type can be a level above the phase lines. On a multifamily job that tells you whether the second building's top-out cost more than the first.
Bills emailed to your bills inbox are read, coded to the job and checked against the PO. A fixture package for one building doesn't get charged to another, and backordered fixtures billed early are easy to find. Labor burden is set by class, so a journeyman plumber and an apprentice each cost what they really cost.
Workflow from the field to the office
The foreman files a daily with the crew, the equipment and photos. Photos of the underground before the pour and the rough-in before the walls close are the record you need when something is buried or covered. If the GC adds a fixture or moves a wall, the T&M ticket rides on the daily and the GC signs it on site, and it becomes a change order draft.
Field time is approved and goes to QuickBooks Payroll with the job and the phase it was worked on. That keeps a return trip for a failed inspection on the job instead of lost in a week of hours. On public work the certified payroll week is laid out from approved time with wage classes, and deductions stay with your payroll company.
The PM builds the pay app from the schedule of values, with stored fixtures where the contract allows and retainage by line. Inspections, RFIs and punch items are tracked on the job. Pay app due dates send the PM a reminder, so a phase that passed inspection gets billed the same month.
What the owner sees every month
Each month the PM enters cost to complete on every open job and it gets approved. The WIP schedule shows over and under billing, so a job that's billed through rough-in but hasn't spent its rough-in labor yet is easy to see. The master WIP puts every job on one page.
Your CEO Report grades gross margin, overhead and net profit before taxes against the published average and CFOS target for plumbing at your size. If you price per fixture, the closed jobs tell you what a fixture really cost you by phase. Your next bid starts from that number instead of last year's guess.
The 13 week cash forecast reads your QuickBooks Online data and your pay apps and marks the lowest week. Retainage on plumbing often waits on final inspection and the certificate of occupancy for the whole building. AR aging and a collections list keep that retainage from being forgotten after your crew has moved on.
Plumbing cost codes, matched to QuickBooks
Each group below is one set of cost codes in CFOS. Bills, time and equipment post to them. QuickBooks keeps the books underneath, so your bookkeeper sees the same numbers.
| Cost code group | What goes on it |
|---|---|
| Underground and below slab | Layout, trenching, sleeves, waste and water lines below the slab, and the test. |
| Rough-in and top-out | Drain, waste, vent and supply piping in the walls and ceilings before cover. |
| Trim and finish | Setting fixtures, faucets and trim after the walls are finished. |
| Fixtures | Fixture packages by building or unit, including stored fixtures billed ahead of trim. |
| Water heaters and equipment | Water heaters, pumps, softeners, backflow preventers and expansion tanks. |
| Gas piping | Gas lines, regulators, meter sets and the pressure test. |
| Pipe, fittings and hangers | Bulk pipe, fittings, hangers and supports drawn from the shop. |
| Permits and inspection trips | Permit fees, inspection fees and return trips after a failed inspection. |
| Repairs to damage by others | Fixing work another trade damaged, tied to the signed T&M ticket. |
| Change orders | Added fixtures and moved walls with their own coding. |
How plumbing contractors do, by revenue
Each row shows the all-trade average, this trade's average and the CFOS target where one is published. These are the numbers your own job costing gets graded against. Net profit is before taxes in every row.
| Revenue | Overhead | Gross margin | Net profit, before taxes |
|---|---|---|---|
| $1M to $5M | 15.1% all-trade average 16% Plumbing 14.1% CFOS target | 22.1% all-trade average 25% Plumbing 25% CFOS target | 7% all-trade average 9% Plumbing 11% CFOS target |
| $5M to $10M | 14.1% all-trade average 15% Plumbing 13.1% CFOS target | 23.4% all-trade average 26% Plumbing 26% CFOS target | 9.4% all-trade average 11% Plumbing 12.9% CFOS target |
| $10M to $25M | 13.1% all-trade average 14% Plumbing 12.1% CFOS target | 24.6% all-trade average 27% Plumbing 27.1% CFOS target | 11.5% all-trade average 13% Plumbing 15% CFOS target |
| $25M to $50M | 12.1% all-trade average 13% Plumbing | 25.7% all-trade average 28% Plumbing | 13.7% all-trade average 15% Plumbing |
Gross margin and overhead come from figures CFMA, Jones Maresca and other sources publish by trade and size. Net profit is computed, not surveyed: net profit = gross margin minus overhead. Nothing comes out for taxes, interest or other income and expense, so it is a before tax figure, on the same basis as CFMA's net income before taxes.
CFMA's 2025 medians are 7.1 percent before interest and taxes and 6.7 percent net income before taxes. Gross margin minus overhead leaves out interest and other income and expense, so a figure here can come in a little above or below a reported net income on the same business.
Above the $10M to $25M band the gross margin and overhead rows are a modeled extension of the same curves. They have not been reconciled against the licensed CFMA Benchmarker, so read those bands as a model and not as a survey result.
Problems plumbing contractors write to us about
Get on the list for the day it opens
30 days free, a 90-day money-back guarantee, and cancel anytime.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
What plumbing contractors ask
Can I price and track a job per fixture or per unit?
Your estimate imports as the budget by cost code, so you can bring in quantities from your takeoff. Use the three levels of cost code for building or unit type, then phase. When the job closes, you can work out what each fixture or unit cost.
How do I get paid for a line another trade damaged?
Take photos, put the repair on the daily as a T&M ticket and have the GC sign it on site. It becomes a change order draft for the next pay app. If the GC won't sign, the cost is still on its own code so you see what it took.
Can I bill fixtures I bought before trim?
Yes, as stored materials on the schedule of values where the contract allows. The WIP schedule shows over and under billing each month. Fixtures on a shelf and not on a pay app are money you're funding.
Can I keep service calls apart from new construction?
Yes. Put service on its own jobs or cost codes so repair work doesn't blend into contract jobs. Each side gets its own actual cost, and the CEO Report covers the whole company.
Do I have to leave QuickBooks Online to use CFOS on plumbing jobs?
No. CFOS reads from and writes to QuickBooks Online, and QuickBooks keeps your books. It doesn't work with QuickBooks Desktop.
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- Plumbing benchmarks
QuickBooks is a trademark of Intuit Inc. Run On CFOS isn't affiliated with Intuit.