Shop Operations

Job costing and KPIs for a countertop shop: quoted vs actual, daily reports and dashboards

How to cost a countertop job (stone, labor, machine time, overhead), compare it with the quote, track time, and which KPIs to review daily, weekly and monthly.

, CEO, Stonify

Job costing means recording what each job really cost (stone including waste, labor hours at a fully loaded rate, machine time, consumables, subcontractors and a share of overhead) and comparing it with what you quoted. Close out each job within a few days of the final invoice. If the actual margin lands within a few points of the quoted margin, your pricing works; a persistent gap almost always traces to labor hours or waste. Alongside job costs, track a short list of KPIs (key performance indicators): square feet produced and installed, template-to-install time, on-time installs, remakes, yield, close rate and margin. Review them daily on the floor, weekly with the managers and monthly with the owner.

Why cost every job

A shop's profit and loss statement tells you whether the business made money last month. It does not tell you which jobs made it and which lost it. Shops that start costing jobs commonly find that some job types (a particular edge, small vanities, far-away installs or one builder's plans) barely break even while the rest carry them. Once you can see that, you can reprice, change the process or stop taking that work.

Job costing also closes the loop on quoting. Your quote is a prediction: this kitchen will take one slab, ten hours of labor and one install trip. Actual costs tell you whether the predictions are right, so the next hundred quotes are better. See cost structure, labor and overhead for building the rates you quote with.

What goes into a job's cost

Cost bucket

What it includes

How to capture it

Material

Slab cost for the share of the slab the job used, including waste

From the slabs allocated to the job at their landed cost (purchase price plus freight)

Remnant credit (optional)

Value of a usable remnant the job leaves behind

A fixed policy: either the job carries the whole slab, or remnants keep a share of cost

Consumables

Blades, bits, pads, adhesive, epoxy, sealer, sink clips

A per-job or per-sq-ft standard, checked against monthly purchases

Direct labor

Templating, drafting and programming, cutting, edging, polishing, QC, loading, install, plumbing reconnect

Hours by job and task × loaded labor rate

Machine time

Bridge saw, CNC, waterjet, edge polisher

Run hours × a machine rate that covers depreciation, maintenance, tooling wear and power

Subcontract

Outside installers, plumbers, templating services

Bills coded to the job

Job-specific costs

Mileage, tolls, permits, disposal of the old top, special tools

Bills and mileage logs coded to the job

Allocated overhead

Rent, insurance, office and sales staff, owner pay, software, vehicles, utilities

An overhead rate per job, per sq ft or per machine hour

Two margin figures come out of this:

  • Gross margin = (revenue − direct job costs) ÷ revenue. Direct costs are material, consumables, direct labor, machine time and subcontract. Overhead is left out.

  • Net job margin = (revenue − direct costs − allocated overhead) ÷ revenue.

Keep the definitions fixed. A shop that puts the office manager in direct labor one month and overhead the next can't compare anything.

How to handle stone and remnants

Charge the job for all the stone it consumed, not only the finished square footage. If a kitchen uses 1.3 slabs, the job pays for the part of the second slab that nobody else will use. Decide once whether remnants carry part of the slab's cost:

  • Full cost to the job: simpler, conservative, and remnant sales show as nearly pure profit.

  • Proportional: the remnant keeps its share of the slab cost, the job looks better, and the remnant has to sell to justify it.

Either works if you apply it consistently. See waste and yield and remnant management.

Loaded labor rate

An hour of labor costs more than the wage. The loaded rate adds:

  • Employer payroll taxes: Social Security and Medicare (7.65% of wages), plus federal and state unemployment.

  • Workers' compensation insurance. Rates for stone work vary a lot by state and class code, often from high single digits to the mid-teens as a percentage of payroll. Use your own policy rate.

  • Benefits and paid time off.

As a rule of thumb, most shops land around 1.25 to 1.45 times the wage per paid hour. A fabricator paid $22 an hour typically costs the shop about $28 to $32 per paid hour, and more per productive hour once holidays, training and other non-billable time are counted (about 1.4 to 1.8 times the wage). See labor and overhead costs.

Labor hours on a typical kitchen

A standard kitchen of roughly 40 sq ft, with one sink and a simple edge, often takes something like this (rough shop experience):

Step

Typical hours

Templating, including travel

1 to 2

Drafting, layout and CNC programming

0.5 to 1.5

Cutting (saw or sawjet operator)

0.5 to 1.5

CNC cutouts and profiling

1 to 3 (machine time, partly attended)

Edge polishing and hand finishing

1 to 3

QC and loading

0.5 to 1

Install, two people

2 to 4 each

Plumbing reconnect, if you do it

0.5 to 1

That adds up to roughly 8 to 16 labor hours on a typical job (CNC run time is only partly attended), more when everything runs long. Labor is the cost most shops underestimate, especially on "easy" jobs. A vanity takes nearly the same templating trip, programming and install trip as a kitchen, for much less revenue.

Overhead rate

Overhead is every cost that doesn't belong to one job. Three common ways to spread it:

Method

Formula

Good for

Per job

Monthly overhead ÷ jobs per month

Shops with similar-sized jobs

Per sq ft

Annual overhead ÷ finished sq ft invoiced per year

Most countertop shops

Per machine hour

Overhead ÷ CNC or saw hours

Shops with very mixed job complexity

Example: $520,000 of overhead a year and 20,000 finished sq ft invoiced gives $26 per sq ft. In a slow year at 15,000 sq ft, the same overhead is about $35 per sq ft. Overhead is fixed, so volume swings change your cost per square foot. Recalculate the rate quarterly. Include the owner's salary; leaving it out makes every job look better than it is and leads to underpricing.

A worked example: quoted vs actual

A 42 sq ft L-shaped kitchen in 3cm quartz, eased edge, one undermount sink, quoted at $4,200. The estimate assumed one slab and a sellable remnant. Here is the job cost sheet after the install:

Line

Estimated

Actual

Why it moved

Material: one slab $1,650, less remnant credit

$1,500

$1,650

The leftover was cut into a sliver; no remnant

Consumables

$100

$110


Templating (1.5 h est., 3 h actual, at $32)

$48

$96

A second trip: cabinets weren't level on the first visit

Shop labor (6 h est., 7 h actual, at $32)

$192

$224

Extra polishing at a seam

Machine time (2.5 h est., 3 h actual, at $50)

$125

$150


Install, two people (3 h est., 4 h actual, at $32 each)

$192

$256

Wall scribing took longer

Delivery and mileage

$60

$60


Direct cost

$2,217

$2,546


Overhead (42 sq ft × $22)

$924

$924


Total cost

$3,141

$3,470


Gross margin

47.2%

39.4%


Net job margin

25.2%

17.4%


The job still made money, but nearly eight points less than planned. None of the causes is dramatic: a remnant that wasn't cut cleanly, a wasted templating trip, a slow install. Repeat that on a quarter of your jobs and the year's profit is gone. The lessons feed straight back: confirm cabinets are level before sending a templater, cut leftovers square, and add scribing time to quotes for older homes.

Setting up job costing

  1. Separate direct costs and overhead in your books. Split income by material and service and split direct labor by function (templating, fabrication, install), so gross margin by material is possible. See accounting and integrations.

  2. Set loaded rates for each labor role and each machine.

  3. Capture material automatically when slabs are allocated to jobs, at landed cost.

  4. Track time by job, then by task (see below).

  5. Set the overhead rate and recalculate it quarterly.

  6. Cost remakes and callbacks back to the original job. A remake is part of that job's real cost. Tracking it separately hides it. See remakes and quality.

  7. Close out each job within about two days of the final invoice, while people remember what happened.

  8. Review variances. Flag any job whose actual margin falls more than about 5 points below the quote, and look for patterns by material, job type, salesperson, installer and customer.

Cost every job for the first three to six months. After that some shops sample; if software captures most of the data, keep costing every job.

Tracking labor time

Time records are the weakest link in most job costing. Paper timesheets filled in on Friday from memory are rough at best.

What a time system for a stone shop needs:

  • Clock in and out by employee, from a phone, kiosk or badge.

  • A job code on every hour, and later a task code (templating, cutting, CNC, polishing, install).

  • Mobile use for templaters and install crews, ideally with location stamps.

  • A link to payroll and to job costing, so hours are not typed twice.

Roll it out in stages to avoid pushback:

  1. First month: clock in and out only.

  2. Second month: add the job code, in no more than two taps or a QR code on the job folder.

  3. Third month: add the task code.

Explain it as measuring jobs, not watching people. Review entries weekly before payroll, and don't let "shop time" become the default code for everything.

Which KPIs to track

Start with a handful you will actually review. The ranges below are commonly cited in the trade, mostly by software vendors, not measured by any independent survey. Use them as a rough sense of scale and compare your shop mainly to itself.

KPI

How to calculate

Commonly cited range

Sq ft fabricated per day

Finished sq ft leaving QC

Depends on equipment: a single-saw shop with a small crew might do 150 to 250; CNC shops with several saws 400 to 800+

Sq ft per production labor hour

Finished sq ft ÷ production hours

Roughly 4 to 8 depending on complexity

Sq ft installed per week

From install records

Your capacity baseline

Template-to-install time

Business or calendar days, per job

About 7 to 14 calendar days for stock material; longer for special orders

On-time install rate

Installs on the promised date ÷ all installs

90% acceptable, 95%+ strong

Remake rate

Jobs (or pieces) remade ÷ total

Under 2% strong; 2 to 5% common; track by cause

Callback rate

Return trips after install ÷ installs

Under about 3%

Slab yield

Installed sq ft ÷ slab sq ft bought

See waste and yield

CNC utilization

Cutting hours ÷ available hours

About 65 to 85%; under 60% means idle capacity, over 85% leaves no slack

Quote-to-close rate

Signed ÷ quoted, by customer type

Varies by channel; see quoting speed and close rate

Average job value

Revenue ÷ jobs

Watch the trend

Gross margin

See above

Roughly 35 to 55% depending on segment; commercial and builder work lower

Net profit

After all overhead, before tax

Commonly cited around 7 to 15% for the industry

Overhead per finished sq ft

Overhead ÷ finished sq ft

Watch the trend quarterly

Revenue per employee

Annual revenue ÷ full-time staff

Often quoted around $120,000 to $180,000

Days sales outstanding

Receivables ÷ average daily sales

Lower is better; slow builders show here

For margin and profitability benchmarks in more depth, see profitability benchmarks and state of the shop benchmarks.

The daily production report

A one-page report filled in at the end of each shift, in about ten minutes. It catches problems while they can still be fixed.

Section

Fields

Output

Sq ft cut, pieces finished, jobs completed, installs completed, sq ft installed

Labor

Hours by station, overtime, absences, rework hours

Machines

Run time and downtime for the saw, CNC and edge polisher, with a reason for each stop

Material

Slabs consumed, remnants created, rejected or broken pieces

Quality

Pieces passing first inspection, rework with reason, remakes started, complaints

Tomorrow

Jobs that are blocked and why (missing drawing, slab not confirmed, sink not on site)

After 60 to 90 days, you know your real daily capacity. Schedule to about 90 to 95% of your proven average, not to the best day you ever had, so normal variation doesn't make every week late. See production scheduling.

A short daily stand-up of five to ten minutes at the production board, covering yesterday's problems and today's blocked jobs, pairs well with the report.

The weekly and monthly reviews

Weekly (about 30 minutes, operations managers): quotes sent and signed, jobs templated, cut and installed, square feet, jobs running late and why, remakes and their causes, and next week's load at the bottleneck machine.

Monthly (2 to 3 hours, owner and managers):

  1. Pull the numbers: revenue, gross margin by material and job type, net profit, the KPIs above, receivables.

  2. Compare each with target and with last month and the same month last year. Color-code green, yellow and red.

  3. Review the five worst jobs by margin variance and the month's remakes by cause.

  4. Pick the top three problems. Give each one a named owner and a deadline.

  5. Check that last month's three actions actually happened.

A small shop can start with five numbers: revenue, close rate, yield, gross margin and remakes.

Year-end (a day or two in January): full-year revenue and margin by segment, cost and net profit per finished sq ft, equipment condition and replacement plans, staffing, and three to five measurable goals for the coming year. Net profit per square foot is a useful single figure because it combines price, cost and volume.

Dashboards: what to show and what to watch out for

A dashboard puts the KPIs where people see them without asking. A shop-floor screen might show today's jobs by station, blocked jobs and square feet completed. An owner's view might show sales, margin, receivables and the pipeline.

Watch the definitions:

  • Quoted, sold, invoiced and collected are four different numbers. A good sales month can be a bad cash month.

  • Snapshots and period totals don't add up. "Open pipeline today" and "quotes won this month" count different sets of jobs.

  • Garbage in, garbage out. A margin figure is only as good as its inputs. If labor rates, machine rates or overhead aren't set up, or half the jobs have no time records, the dashboard will look precise and be wrong. Show which jobs are missing data.

Common mistakes

  • Pricing material on finished square feet instead of the slabs actually consumed.

  • Leaving out labor that doesn't happen at the saw: templating travel, programming, loading, second trips.

  • No overhead allocation, or one set years ago and never updated.

  • Leaving the owner's pay out of costs.

  • Booking remakes as general expense instead of against the job.

  • Costing jobs quarterly in a batch instead of as each one closes.

  • Tracking thirty KPIs and acting on none.

  • Changing definitions from month to month.

Where software helps

Job costing breaks down when quote data, slab costs, schedules and accounting live in separate places and someone has to retype them. In Stonify, each job is a project whose accepted quote becomes the deal, and slabs held or allocated to it carry their landed cost from the purchase order. A Cost & Profit Report compares the job's revenue with the landed cost of those slabs and the cost estimate set on each service, so the quoted margin is visible per job; actual labor hours still come from your own time records. Inventory transformations, invoices and bills post to Stonify's own general ledger, which produces the P&L, balance sheet and cash flow, optionally split by profit center such as a location. For KPIs, calendars can total square footage, task time or project value per day for each person or machine; the All Tasks report can show square feet by installer or template-to-install times; Quote Performance shows quote volume, time to accept or decline and top decline reasons; and Custom Views save project lists with task, quote and invoice columns for a weekly review.

FAQ

How often should I recalculate my overhead rate? Quarterly. Insurance renewals, new hires, rent increases and slow months all move it, and a rate set once a year drifts.

Should I cost small jobs like vanities? Yes, especially those. Small jobs carry nearly the same templating, programming and install costs as a kitchen, so they are where hidden losses usually sit. Many shops set a minimum job charge after seeing the numbers.

What's an acceptable gap between quoted and actual margin? A few points either way on individual jobs is normal. If actual margin runs consistently more than about 3 to 5 points below the quote across many jobs, find the cause, usually labor hours or waste, and fix the estimate.

Can I do job costing in my accounting software alone? Accounting software can track revenue and costs by job if you code bills and payroll to jobs. It usually doesn't know which slabs a job used or how much of each slab was wasted, so material cost has to come from your inventory or shop system.

Which single KPI matters most? There isn't one, but remakes are a good place to start: each remake costs new stone, labor and a second install trip, and cutting them pays back fastest. Margin by job type is the most useful financial one.

Is time tracking worth the pushback from the crew? Usually, if you roll it out in stages and use the data to fix prices and processes rather than to police people. Without real hours, labor cost in your quotes is a guess.

Ready to Run a Smarter Stone Operation?

Book a demo to see how Stonify can reduce costs at your shop.

Ready to Run a Smarter Stone Operation?

Book a demo to see how Stonify can reduce costs at your shop.