CFOS for QuickBooks, coming January 2027Join the waitlist: 12 months with no subscription fee
SERVICE BUSINESS · JOB COSTING SOFTWARE

CONTROLQORE FOR SERVICE BUSINESSES.

QUICK ANSWER

ControlQore for a service business is built on four costing units: cost per work order type, cost per technician per billable hour, cost to serve per agreement, and cost per truck per day. There's no estimate to mirror, so cost codes come out of your service catalogue and price book. Warranty and callback work gets its own revenue stream, so rework stops disappearing into the average. There's no WIP schedule in the construction sense. An agreement margin schedule and an open work order report take its place.

The 48 trade ControlQore builds on this site all describe the same thing. Cost codes are laid out by construction phase and compared line by line against a bid. A WIP schedule comes from cost-to-cost percentage complete. A service business doesn't have a bid, phases, or a long contract earning revenue against a schedule of values. So three quarters of that setup has nothing to attach to. The rules still apply. Every dollar still needs one home. The coding still has to be identical across every truck. The person selling the work, the person doing it, and the person billing it still have to agree on where a cost belongs. What changes is the comparison. You compare against your catalogue price and the average cost of your last hundred work orders of that type.

BY JOSH LUEBKERPublished 2026-08-08Updated 2026-11-14
THE DEFINITION

WHAT IT MEANS.

ControlQore for a service business is the same job costing and WIP platform. A service business has no bid, so it is configured against your service catalogue. Cost codes follow revenue stream and work order type. Every work order is tied to the agreement it belongs to. You can read margin per agreement, per technician, and per truck.

We won't publish a service business gross margin, net profit, or overhead benchmark. Be careful with anyone who offers you one. Labor rates, drive time, competitive density, and what a market will pay for a recurring agreement change more between two metros than between two trades. So a national service margin is wrong somewhere before it's printed. ControlQore gives you your own baseline out of your own book: your cost to serve by work order type, your loaded cost per technician per billable hour, and your own truck rate. It's less comfortable than an average and more useful, because it's the number that is true where you operate.

Setup takes the same 60 days as every other ControlQore build. The service work is the catalogue mapping, the agreement setup, the warranty stream, and the truck cost basis. The historical migration goes back to the start of the last taxable year, the same way it does for a project contractor. Most service clients close their first month inside ControlQore by day 45 and have the full report set by day 60.

WHAT WE SEE IN SERVICE BUSINESSES

WHY THE STANDARD BUILD DOES NOT FIT.

01

The Cost Codes Were Copied Off a Project Build

Most service companies that try costing start with cost codes designed for projects: seven categories, two or three levels deep, built to mirror an estimate line by line. A service business has a catalogue and a price book and no estimate to mirror. So those borrowed codes make buckets nobody in dispatch or the field can read. Technicians code by guess. The same repair goes to four different places across four trucks. Every report built on top of it is unusable, however carefully the month gets closed.

02

Work Orders Are Not Tied to Their Agreement

A recurring agreement bills on its own schedule. The tickets that serve it have no reference back to it. The revenue posts to a contract line and the cost posts to demand service, so the two never meet on any report. Nobody can pull per-agreement margin. The only way to know whether an agreement makes money is to rebuild it from memory. You can't rebuild three hundred agreements from memory. So nobody does it, and the losing ones keep renewing.

03

Callbacks Get Coded Back to the Original Work

Rework posted to the same code as the first visit disappears into the rolling average. Poor workmanship then looks like normal cost. The catalogue price gets set off an average that already has the callbacks in it. The price looks defensible and the margin keeps falling. Warranty is usually the largest single piece of cost in a service business that nobody has ever been billed for and nobody has ever measured. Left uncoded, it's also the cost you could most easily reduce.

04

There Is No Capacity Unit in the Chart

A project contractor has an equipment cost basis, a crew rate, and a bid to compare both against. A service business has trucks. In most of them, nobody can say what one truck costs to put on the road for a day once you count fuel, maintenance, insurance, depreciation, and the technician's loaded rate. Without that number, you add a truck or cut one by feel. You also need it to price after hours work. An emergency call is a truck day sold at a premium, and you can't price a premium off a cost you don't know.

THE MATH

WHAT IT LOOKS LIKE IN DOLLARS.

The truck day, worked as an illustration

Take a truck with a technician at a loaded cost of $52 an hour across an 8 hour day. Add $40 of fuel. Add $85 a day of maintenance, insurance, and depreciation. That truck costs about $541 to put on the road before a single ticket is closed. These inputs are made up, so don't read them as a claim about your business. The math is the point. Once the truck day has a cost, you measure every dispatch decision, every after hours rate, and every fleet addition against it.

How an agreement disappears, illustrated

An example agreement bills $3,000 a year across 12 invoices. It covers four scheduled visits at two hours each. That's eight hours of planned labor. Add six hours of callbacks that got coded to demand service when they belonged to the agreement. The true cost to serve is 14 hours plus drive time, parts, and truck. Whether that agreement earns anything depends on your own loaded labor cost and your own truck rate, so no published average can answer it. ControlQore answers it by tracking cost to serve on each agreement individually.

What ControlQore costs, and what it's not

SPM prices ControlQore at $150 per $1M of revenue per month and it's included in the Strategic and Platinum packages. It never appears as a separate invoice line and it's never billed in addition to the SPM fee. A $6M service company gets the platform, the build, the migration, and the reporting inside one monthly number.

HOW SPM BUILDS IT

WHAT WE CONFIGURE INSTEAD.

Cost Codes Built From the Service Catalogue

Level 1 is the revenue stream: recurring agreements, demand service, replacement and install, and warranty or callback work. Level 2 is the work order type, straight out of your price book. It uses the words dispatch already uses, so a technician closing a ticket picks the code without thinking about accounting. Cost types cross both levels: labor, material, vehicle, subcontracted, and permit. Before the first ticket gets coded, we apply the same test we use on the project side, this time against a catalogue. The person selling the work, the person doing it, and the person billing it all have to agree on where a cost belongs.

Every Work Order Is Tied to Its Agreement

SPM configures the agreement as an attribute on the work order in ControlQore. A ticket served under a contract then posts its labor, parts, and truck cost against that contract. Without it, those costs go into a general service bucket. That one setting is what makes per-agreement margin exist. Once it's in place, the agreement margin schedule builds itself out of closed tickets. You can read what each contract has billed against what it has cost to serve. You set renewal pricing off measured cost. Before, it was last year's price plus three percent.

Warranty and Callback as Their Own Cost Stream

Rework gets its own Level 1 stream in ControlQore. It's coded to the technician who did the original work and to the work order type it came from. Warranty stops being a cost lost in the average. You can watch it weekly by technician, by work order type, and by install crew. Most service businesses that fix one thing in the first 90 days fix this one, because it reduces cost without touching price, headcount, or the catalogue. It also gives you data for training and pay conversations.

Cost Per Truck Per Day as the Capacity Unit

ControlQore tracks each truck as its own cost center. Fuel, maintenance, insurance, depreciation, and the assigned technician's loaded rate all post to it. Divide the monthly total by working days and you have the daily cost of capacity. That number decides fleet size, route density, after hours pricing, and whether a third technician pays for himself. It works the way an equipment cost basis works on the project side, and it does the job a crew rate does in a bid. If your company is arguing about adding a truck, you're arguing about this number before anyone has calculated it.

Two Reports Replace the WIP Schedule

The agreement margin schedule lists every recurring contract. For each one you see what it has billed to date, what it has cost to serve including callbacks, and how many scheduled visits remain in the term. The open work order report lists every ticket by state: dispatched, completed but not invoiced, and invoiced but not collected. Completed and not invoiced is the service equivalent of underbilling. In almost every service business we open up, that's where the money is held. One job type still gets built the project way. A change-out or install that lasts more than a couple of weeks and includes a deposit is set up as a small job with its own code and a cost to complete.

A Cadence That Catches It Inside the Month

Weekly, you read margin by work order type and by technician, the completed and not invoiced list, and the callback count. Monthly, with the books closed by the tenth, you read the agreement margin schedule and a P&L split by revenue stream. Quarterly, agreement pricing and the catalogue get reset off measured cost to serve. The 13 week cash forecast goes alongside all of it. A service business collects in small pieces, and a slow week of dispatch takes about six weeks to reach the bank account.

WHAT YOU GET

THE OUTPUTS, NAMED.

Cost codes built from your service catalogue and price book
Agreement as a work order attribute, so per-agreement margin exists
Warranty and callback tracked as their own revenue stream, by technician
Cost per work order type, as a rolling average off closed tickets
Cost per technician per billable hour, loaded with burden and truck
Cost per truck per day, including fuel, maintenance, insurance, and depreciation
The agreement margin schedule and the open work order report, in place of a WIP
A P&L split by revenue stream: agreements, demand service, replacement and install, warranty
Historical migration back to the start of the last taxable year, live in 60 days
$10.7M+
Client AR Recovered Since 2023
48
Active Trade Specializations
60 DAYS
Average Onboarding Time
PRICING

FLAT MONTHLY FEE. NO SURPRISES.

Three tiers, priced by your trailing twelve month revenue. Which one you're in depends on how much of the work you want off your desk. We don't bill by the hour, and we don't do payroll. The one-time onboarding fee is in the table.

Built for subs doing $1M to $12M. Above $12.5M we quote.

Last 12 months revenueCoreStrategicPlatinumOne-time onboarding
Under $1M$1,900$3,100$3,300$2,500
$1M to $3.5M$2,600$4,100$5,300$4,500
$3.5M to $6.5M$3,800$5,900$8,300$6,000
$6.5M to $9.5M$5,100$7,600$11,800$7,500
$9.5M to $12.5M$6,100$8,900$14,900$9,000
Above $12.5MQuotedQuotedQuotedQuoted

The onboarding fee covers migrating your books back to the start of your last taxable year and getting you fully operational in 60 days. It's billed once, with your first invoice. It's the same for all three tiers, and it moves with your revenue band. Your first month is prorated, and your monthly engagement starts on the first of the first full month.

Just want the setup? Onboarding only is the same onboarding work with no monthly service after it, one time, at the onboarding fee plus $2,000. Start a monthly engagement later and $2,000 counts toward it. It starts at $4,500, and the price for every band is on the pricing page.

The three tier columns are the whole price. Which one fits depends on how much of the work you want off your desk. No payroll. No hidden line items. The onboarding fee is right here in the table.

  • Online software only: QuickBooks, Sage, Viewpoint and similar. No VPN or hosted desktop.
  • Not in any tier: payroll, pay applications, collections on receivables.
  • Pricing valid through 2027.
Core

CFO work. Your own bookkeeper keeps doing the books.

We build your plan every month. Your team does the work.

You get the CFO work: job costing built to match the way you estimate, a 13 week cash forecast, WIP every month, and a monthly meeting that ends with decisions.

Your bookkeeper still does the books.

Strategic

Core, plus bookkeeping and bank reconciliations, plus job costing and WIP software set up and managed for you. Use your own online accounting software or we supply it, one price.

We build the plan, track it and adjust it every month.

We only work with trade subcontractors. We know what to look for, and we fix problems while they're still small. Everything in Core, plus the bookkeeping and bank reconciliations done for you, and the job costing and WIP software set up, loaded with your cost codes, and managed every month. Use your own online software, or move to ours and we pay for it.

Our team does the bookkeeping and the reconciliations. We don't do payroll.

Platinum

Strategic, plus a controller who handles payables and receivables the way an in-house controller would. You approve every payment.

We manage the money side for you, every week.

Everything in Strategic, plus our team does the controller work. We handle your bills and receivables the way an in-house controller would: we call vendors, pay the bills and keep the accounting current. We plan the cash flow first, and you approve every payment because it is your money.

Our team does the payables and receivables. We don't do payroll, pay applications or collections.

COMMON QUESTIONS

FREQUENTLY ASKED.

The cost code build comes off your service catalogue, because a service business has no estimate. Level 1 is the revenue stream: agreements, demand service, replacement and install, and warranty. Level 2 is the work order type out of your own price book. On top of that, we configure the agreement as an attribute on every work order so per-agreement margin exists. We track each truck as its own cost center and give callbacks their own stream. You end up with four costing units: work order type, technician, agreement, and truck.

An agreement margin schedule and an open work order report. WIP answers two questions on a long contract. Is the revenue you recognized supported by the work completed? Did you bill what you earned? A service business answers the first with cost to serve per agreement against what that agreement has billed. It answers the second with the completed but not invoiced list. If a ticket stays completed and uninvoiced for three weeks, that's underbilling, and it costs you the same thing it costs a subcontractor.

SPM prices ControlQore at $150 per $1M of revenue per month and it comes included in the Strategic and Platinum packages. There's no separate software invoice and nothing billed on top of the monthly number. The build, the catalogue mapping, the migration back to the start of the last taxable year, and the monthly reporting are all inside the same engagement, so there are no scope gaps between the platform and the people managing it.

We won't give you a figure, and anyone who does is guessing for you. Service margins change too much by region to publish a benchmark you should price against. Labor rates, drive time, competitive density, and what a market will pay for a recurring agreement vary more between two metros than between two trades. ControlQore sets your own baseline out of your own book inside the first 60 days, then measures every month against it. Your own trend is a better target than somebody else's average.

Three tiers, and which one you are in depends on how much of the work you want off your desk. On Core we build your plan every month and your team does the work: job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a monthly meeting that ends in decisions, while your bookkeeper keeps doing the books. On Strategic we build the plan, track it and adjust it every month: our team does the bookkeeping and the bank reconciliations, and the job costing and WIP software is set up and managed for you, on your own online software or ours. On Platinum we manage the money side for you every week: our team handles your bills and receivables the way an in-house controller would, and you approve every payment. We don't do payroll.
WHAT THIS TIES INTO
Josh Luebker, SPM The Construction CFO
Josh Luebker
FRACTIONAL CFO · SPM THE CONSTRUCTION CFO

Josh Luebker is a master electrician turned construction CFO, president of SPM The Construction CFO and author of CONTROL: C.F.O.S. Construction Financial Operating System.

WHICH OF YOUR AGREEMENTS ARE YOU PAYING TO KEEP?

Twenty minutes goes to questions about your agreement list, how your price book was built, and what a truck day really costs you to operate. No pitch and no proposal. If Josh can help, you'll set a longer second call.

You don't hire a CFO because it's safe, you do it because the real risk isn't having one.
Book a 20 minute call

20 minutes. No pitch or proposal. Josh asks questions to find out if he can help.

OR START WITH THE WORKBOOKS. NO CALL NEEDED.