Skip to content
← Back to Blog
Trades

Plumbing Bookkeeping: The Complete Guide for Shop Owners

Austin Semple14 min read

Plumbing bookkeeping is the process of recording and organizing a plumbing shop's finances so that every account reconciles, every transaction is categorized, and — the part generic bookkeeping skips — the work shows its own revenue, costs, and margin. Done right, it answers the question a monthly P&L can't: which work actually made money after the callbacks, the truck stock, and the second trip. This guide covers what makes the trade different, the chart of accounts a shop needs, how to job-cost when your average ticket is $340, how to handle callbacks and construction retainage, a monthly close routine, and what the options cost.

What makes plumbing bookkeeping different

A landscaper's books and a SaaS company's books mostly differ in category names. A plumbing shop's books differ in structure. Five things drive that:

Volume, not just size. An HVAC shop might close 20 installs in a month. A service plumbing shop closes 200 tickets — a $180 drain clear, a $340 leak repair, a $2,900 water heater swap, and occasionally a $14,000 repipe. That mix breaks the job-costing advice written for other trades: costing every ticket individually is not realistic, and costing nothing leaves you blind. Plumbing needs a two-track approach, covered below.

Callbacks and warranty work. This is the plumbing-specific margin killer. A tech goes back out on a repair that didn't hold. Nobody invoices it, so nothing hits the books against that job, and the original ticket keeps showing the margin it never earned. Shops that don't track callback cost systematically tend to underprice exactly the work that generates callbacks.

Truck stock. Your trucks carry thousands of dollars in fittings, valves, water heaters, and copper that moves without a purchase order attached. Parts leave the shelf and go into a job with no paper trail unless someone builds one. Untracked truck stock shows up as a materials expense that can't be matched to revenue, and as inventory shrink nobody notices until a physical count.

Two businesses under one roof. Service and repair work bills immediately and collects fast. New-construction and remodel plumbing bills in draws, gets 5–10% held back as retainage, and collects in 60 to 90 days. These have different cash profiles, different margins, and different risks — and blending them in one P&L hides both. Shops that do both need them separated at the income and COGS level.

Emergency and after-hours labor. A Sunday-night burst pipe bills at premium rates and costs premium labor. If your burdened labor rate is a single blended number, your after-hours margin is a guess. It's usually the most profitable work in the shop, and worth measuring precisely enough to know that.

The chart of accounts a plumbing shop actually needs

Most shops inherit a generic chart of accounts from their software's default template and never change it. The result: "Materials & Supplies" holds everything from a 50-gallon water heater to printer paper, and the P&L can't answer basic questions. A working plumbing chart of accounts separates income by line of business and cost of goods sold by job driver:

SectionAccountsWhy it's separate
IncomeService & repair · Drain & sewer · Water heater / fixture install · New construction & remodel · Service agreementsThese carry genuinely different margins; blending them hides which one is carrying the shop
Cost of goods soldMaterials (by supply house) · Equipment & fixtures · Direct labor (standard) · Direct labor (after-hours) · Permits & inspections · Subcontractors · Callbacks & warrantyThese vary per job — they're what job costing allocates
Operating expensesTruck & fuel · Insurance & bonding · Licensing & continuing ed · Office & dispatch · Software · MarketingFixed-ish costs that don't belong to any one job
AssetsVehicles · Tools & equipment · Truck stock inventory · Retainage receivableNot expenses — and retainage isn't ordinary AR

Two lines there do the heavy lifting and are missing from nearly every default template: a Callbacks & warranty COGS account, and a Retainage receivable asset account. The first tells you what your rework actually costs. The second stops you from reading uncollectible-this-quarter money as cash. For the full account-by-account version of this table — every income, COGS, expense, and balance sheet account with a downloadable template — see the plumbing chart of accounts.

Job costing when your average ticket is $340

Job costing means tagging every dollar of revenue and direct cost to the work that generated it. In a shop closing 200 jobs a month, doing that ticket-by-ticket is how job costing dies by the second quarter. Split the work into two tracks instead:

Track 1 — cost these jobs individually. Anything over roughly $2,000, plus every construction job regardless of size: repipes, sewer line replacements, water heater and softener installs, remodels, commercial work. These are few enough to handle and big enough to matter. For each, capture:

  1. Equipment and fixtures — the heater, the pump, the fixtures, at your cost.
  2. Materials — supply-house purchases matched to the job, plus truck stock consumed.
  3. Labor — tech hours at a burdened rate (wage plus payroll taxes, insurance, and benefits — typically 1.3–1.4× the hourly wage), split standard versus after-hours.
  4. Permits and inspections — directly attributable, often forgotten, and heavier in plumbing than most trades.
  5. Callbacks — any return trip, charged back to the original job.

Track 2 — roll the small tickets up by category. Drain cleaning, leak repair, fixture replacement, emergency after-hours. You don't need per-call precision here; you need average margin per call type. If drain cleaning runs 68% and emergency leak repair runs 31% once callbacks are charged in, you've learned something worth repricing around — and you learned it without costing 200 tickets by hand.

The common objection is time, and it's legitimate: nobody in a 4-truck shop has hours to allocate supply-house receipts to jobs manually. That's exactly the work AI handles well, which is why job costing is the headline feature of Poof's managed service for trades — categorization and job matching happen automatically, and a controller reviews the result before it reaches you. The same two-track logic applies in HVAC with a different mix; we walk through the install-heavy version in the HVAC bookkeeping guide and the mechanics of per-job tracking in How Shops Should Track Per-Job Profitability.

Callbacks: the margin you can't see

Run this number once and it usually changes how a shop prices. Take your last 12 months of repair work, count the jobs that required a return trip, and multiply those trips by a burdened hourly cost plus materials.

A shop running 8% callbacks on repair work at two hours a trip is spending real money re-doing jobs it already booked as profitable. On $600K of repair revenue, that's on the order of $25,000–$35,000 of labor that never appears as a cost of the work that caused it. It shows up instead as general labor — the books balance, and the pricing stays wrong.

The fix is bookkeeping, not operations: give callbacks their own COGS account, require a job reference on every callback ticket, and review callback cost by job type at every close. What surfaces is usually specific and actionable — one repair type, one part, or one tech's install work generating most of the rework.

New construction, retainage, and draws

If you do any construction or remodel plumbing, that side of the shop needs different handling:

  • Progress billing. You invoice against completion, not delivery. Revenue recognition gets more involved, and if construction work is a meaningful share of revenue, this is a conversation to have with your CPA rather than a default setting in your software.
  • Retainage. Typically 5–10% withheld until closeout. Track it in its own asset account, not in AR aging. A $40,000 receivable balance reads very differently once you know $18,000 of it is retainage on a job waiting on final inspection.
  • Lien deadlines. In most states the clock runs from your last day on the job, not the invoice date. This is a bookkeeping-adjacent discipline that belongs on the monthly close checklist because that's the checklist that actually gets run.
  • Job-level margin at closeout. Construction jobs run months. A job that looked fine at 40% complete can end underwater after change orders and punch-list work, and you won't know unless costs are tracked against the job the whole way through.

The field-service software handoff

The handoff between Jobber, Housecall Pro, or ServiceTitan and your books is the most common failure point in trade-shop bookkeeping — and higher-volume plumbing shops feel it hardest, because the error rate scales with ticket count. Three ways shops handle it:

  • A bookkeeper rekeys everything. Invoices and payments manually re-entered into QuickBooks once a month. Slow, error-prone at 200 tickets, and a big part of what you're paying $800–$1,500/mo for.
  • The owner does it. Feasible below a certain volume; past 2 trucks it becomes the thing that eats your evenings, and it still doesn't produce job costing.
  • A service imports it. Your monthly field-service export goes to whoever does your books, and job revenue and costs land in the ledger without anyone rekeying line items.

Whichever route you take, the reconciliation test is the same: processor deposits — with fees recorded separately, not netted — should tie to invoices in the field system, and both should tie to the bank. If those three don't agree, revenue is being missed or double-counted, usually discovered at tax time, which is the expensive time to discover it. If your books are already behind, work through the bookkeeping cleanup checklist before layering job costing on top; job costing on unreconciled books just produces confident wrong answers.

A monthly close routine for a plumbing shop

A close is the difference between books that exist and books you can price from. A realistic monthly routine:

  1. Reconcile every bank account and credit card to its statement.
  2. Categorize everything — no "Uncategorized," no "Ask My Accountant."
  3. Match processor deposits to invoices; record fees.
  4. Cost every large job closed in the month; roll up service tickets by category.
  5. Charge callbacks back to their original jobs and review callback cost by job type.
  6. Reconcile truck stock — materials expensed versus materials consumed on jobs.
  7. Review AR aging, with retainage tracked separately from collectible receivables.
  8. Check contractor payments year-to-date, so 1099s stay a non-event.
  9. Compare the month against the same month last year, not last month.
  10. Look at the next 90 days of cash, including expected draws and retainage releases.

Done by hand this is a solid day of work each month, which is why it usually slips to the 20th — and why the P&L you price from is three weeks stale. Whatever setup you choose, the target to hold it to is simple: books closed in the first days of the month, with per-job detail, every month.

What does plumbing bookkeeping cost?

OptionTypical costWhat you get — and don't
DIY software$15–$140/mo + your hoursFull control; no job costing unless you build the discipline yourself; your evenings
Part-time bookkeeper$500–$1,500/moMonthly P&L, usually 2–3 weeks after month-end; almost never per-job detail; rekeys your field data by hand
Outsourced bookkeeping firm$300–$800/moClean generic books at volume pricing; trades knowledge and job costing are rare
Managed service built for trades~$1,200/moBooks closed by the 15th business day, per-job P&L on every close, every job costed within 5 business days, field-service data imported for you, a controller reviewing the work — pricing and details here

The honest comparison isn't the sticker price — it's price against what the information is worth. A shop doing $1.2M that discovers its emergency service line runs at half the margin it assumed, or that callbacks are costing $30K a year against jobs booked as profitable, is not making a bookkeeping decision. It's making a pricing decision with a bookkeeping price tag.

DIY, bookkeeper, or managed service?

A rough framework by shop size:

  • Under ~$300K revenue (solo truck): DIY with good software. Volume is low enough that an evening a week keeps you clean. Automate categorization so it stays an evening, not a weekend — here's how.
  • $300K–$750K (1–2 trucks): DIY still works if you're disciplined; a part-time bookkeeper buys back your evenings but rarely adds job costing. Either way, split service revenue from install and construction revenue now, and open the callback account. Both habits pay compounding dividends.
  • $750K–$3M (2–6 trucks): This is where ticket volume outruns owner-run books and where per-job margin starts being worth real money. A managed service with job costing built in costs about what a good part-time bookkeeper does, and delivers what they structurally can't — see how Poof Managed for Trades works.
  • Above $3M / 30+ techs: You're in ServiceTitan-and-staff-accountant territory; enterprise tooling starts making sense.

The bottom line

Plumbing bookkeeping done right is regular bookkeeping plus four disciplines: a chart of accounts that separates service from construction, job costing that runs on two tracks so volume doesn't kill it, callbacks charged back to the jobs that caused them, and a monthly close fast enough that you're pricing this week's work on last month's real numbers. Whether you build that yourself or have it done for you matters less than having it — because the alternative isn't cheaper bookkeeping, it's not knowing which work makes money.

*Written by Austin Semple, a former controller with 10+ years of audit and controller experience, and the founder of Poof. If you'd rather have this whole system run for you — per-job P&L with every monthly close, reviewed by a controller you can text — that's what Poof Managed for Trades is.*

Frequently asked questions

What does plumbing bookkeeping involve that regular bookkeeping doesn't?

Five things, mainly: job costing across high service-call volume (a shop can close 200 tickets in a month, not 20), callback and warranty work that quietly eats margin on jobs already marked profitable, truck stock inventory that moves without a purchase order, retainage and progress billing on any new-construction or remodel work, and the handoff between your field-service software and your accounting system. Generic bookkeeping records what you spent; plumbing bookkeeping should also tell you which work made money after the second trip.

How much does plumbing bookkeeping cost?

DIY software runs $15–$140/month plus your own hours — QuickBooks Plus, the tier that carries job costing, went to $140 on August 1, 2026. A part-time bookkeeper typically costs $500–$1,500/month and usually delivers a monthly P&L two to three weeks after month-end, with no per-job detail. Managed services with job costing built in — like Poof Managed for Trades — run about $1,200/month for a 2–4 truck shop doing $750K–$1.5M, replacing the bookkeeper and adding per-job P&L with every monthly close.

How do plumbing shops job-cost hundreds of small service calls?

Not one ticket at a time. Job-cost your large work individually — repipes, sewer replacements, water heater installs, construction jobs — and roll up the high-volume service calls by category instead: drain cleaning, leak repair, fixture replacement, emergency after-hours. What you need from the small tickets is average margin per call type, not per-call precision. That distinction is what makes job costing survivable in a shop closing 200 jobs a month.

Do callbacks belong in job costing?

Yes, and charging them back to the original job is the whole point. A repair that looked like 62% margin is a different number once a tech returns for two unbilled hours. If callbacks land in a general labor bucket, the original job stays wrong in your books forever and you keep pricing that work as if it were profitable. Give callbacks their own COGS account, tag each one to the job that caused it, and review callback cost by job type every month.

How should plumbing shops handle retainage on construction work?

Retainage — typically 5–10% withheld until the job closes out — is revenue you have earned but cannot spend, so it does not belong in your regular AR aging. Track it as its own asset account so a $40,000 receivable balance does not read as collectible cash when $18,000 of it is retainage owed on a job pending final inspection. Track lien deadlines alongside it; in most states those run from your last day on the job, not from the invoice date.

Ready to Automate Your Bookkeeping?

See how Poof can save you hours every week with AI-powered bookkeeping.

Start Your Free Trial