Comparison · Plumbing

Hatchspan vs Jobber

Jobber dispatches a flat-rate swap and prints an invoice. It doesn't bill progress applications, it doesn't carry retainage, it doesn't run certified payroll. Hatchspan is the Work Object that does the same dispatch AND the five-phase contract on a single spine.

For plumbing shops running both halves of the week on different systems, Hatchspan is plumbing contractor software that does construction.

Side-by-side · W-248912 systems

Jobber

FLAT-RATE

Water-heater swap

Dispatched 07:42 · Marlborough St.

  • TechM. Ruiz · Van 4
  • InvoiceFlat · $1,840
  • Phases
  • Retainage
One job, one invoice

Hatchspan

SERVICE → PROJECT

Basement rough-in

Same record · 5 phases

  • Cost code22-05-PLMB
  • Phase 3 / 562% · billed
  • Retainage10% withheld
  • Certified payrollsource · live
One record · two modes
Same customer · same week · one spinemodeChangedAt

Same spine · Different trade

Roofing demo: a leak-repair that became a tear-off project.

The same conversion pattern, applied to roofing. Default trade profile ships with a $25,000 cost threshold and a 4-phase project spine.

Side-by-side · W-24892 · Roofing5 cost codes

Service

LEAK-REPAIR

Attic water-stain call

Dispatched 14:08 · Pine Ridge Cir.

  • TechL. Park · Van 2
  • Cost code22-05-ROOF
  • Estimate$21,400 · below threshold
  • Scope flag
Service-mode dispatch

Tear-off project

PROJECT · 4 PHASES

Full tear-off + replacement

Same record · 5 cost codes · 4 phases

  • Phase 1 / 4Tear-off · 22-05
  • Cost codes22-05..22-20
  • Materials tabpre-filled · DRAFT
  • Audit logESCALATION_PRE_FILL
One record · converted in place
Trigger: shouldEscalate(lineItems, scopeExceedsService, 2_500_000)5 cost codes · 4 phases · 2 modes

The conversion runs in a single transaction: re-verify the helper server-side, flip mode to PROJECT, seed the phase spine idempotently, stamp one LineItem per cost code with the right LineItemCategory, and drop matching DRAFT requisitions into the Materials tab. Customer, photos, and the original [22-05-ROOF/diagnostic] seed line ride through unchanged.

Scorecard

What the comparison actually turns on.

Seven rows. The plumbing shop running Jobber today will recognize every one of them.

CapabilityJobberHatchspan
DispatchNative board, single crew, one job per truck.Native board, multi-crew scheduling, materials dispatched against cost codes.
Multi-mode Work ObjectA job is a job.One record, SERVICE | PROJECT lifecycle with modeChangedAt — flips mid-flight without losing state.
PhasesNot a primitive, no phase state.5-phase project ledger on the same record; BillingEntry.phaseId drives the SOV row.
Schedule of valuesFlat-rate invoicing only.AIA-style SOV per phase (percentBilledThisPeriod, appliedForCents).
RetainageNot modeled.Per-entry retainagePercentBps + retainageCents in BillingEntry, computed from BPS only.
Certified payrollNo labor ledger; exports time from QuickBooks after re-keying.LaborEntry { technicianName, hoursHundredths, techRateCents, workDate } is the source. Certified-payroll export is a downstream view.
QuickBooks sync postureBidirectional invoice/customer sync, two-system reconciliation.Source-of-truth push to QB; QB reconciles from, no re-keying in the Monday AP pass.

All Hatchspan claims are backed by the schema in prisma/schema/work-object.prisma, billing.prisma, labor.prisma.

Failure mode

What the mixed shop looks like on Jobber + QB + a whiteboard.

A composite of how a $1M–$15M plumbing shop actually runs the week — built from owner interviews, not from sales slides.

01
Dispatch in Jobber

Same-day flat-rate swap on the board in seconds. Tech on the way, parts on the van, invoice prints at the door.

02
Books in QuickBooks

Customer paid the invoice, the deposit hit the bank. Fine for what it was. No phases, no cost codes, no retainage, no payroll ledger.

03
The whiteboard

The GC's Friday pay-app. Five phases. Ten percent withheld. Prevailing-wage hours per technician, per cost code. The foreman drew it on the wall; the controller re-keys it Sunday night.

The collage

Monday morning, the same customer's flat-rate swap from last week is now a $40k scope of work. Jobber still sees one job — a closed invoice. QuickBooks sees one invoice — paid. The foreman's clipboard has five phases, ten percent retainage, and prevailing-wage hours per cost code that have to be ready for the GC's Friday pay-app. The controller re-keys the Sunday night. The margin disappears between three systems and a whiteboard.

Hatchspan is the one record that flips modes mid-flight without losing state — dispatch, phases, retainage, certified payroll, QB push, all on the same spine.

Talk to us

See it on your own data.

Walk us through the last five weeks on your shop — one of those swaps that turned into a $40k scope we'll trace from dispatch through pay-app. Owner and controller on the same call; we'll show the spine doing both halves on the same record. If Jobber + QB + whiteboard is still working for you, we'll say so.

See pricing →Email hatchspan@polsia.app

We respond within one business day.