Skip to main content
FabWise

Labor Codes

Labor codes are the kinds of work your shop does — welding, cutting, assembly, paint. Workers tag their time with one, you quote jobs in them, and they're what lets you answer "how many hours did we actually spend welding on this job?"


Why it matters

Ask a shop what a job cost and you usually get a total. Ask what the welding cost and the answer is a guess.

A labor code is what closes that gap. It's a category of work, and it shows up in three places that connect to each other:

  • A worker tags a task with it when they clock onto a job.
  • You quote a job in labor codes — eight hours of fabrication, four of paint.
  • The job then shows you what each one actually took, against what you said it would.

That last one only works because the first two use the same list. Quote in welding hours, capture welding hours, and the comparison is automatic.


Where to find it

  • Page: Labor Codes
  • Path: Settings → Labor Codes
  • Who can edit: account owners and admins

What a labor code has

Code — a short identifier, like WELD, ASSY, or PAINT. This is what shows up in tight spaces.

Name — the readable version: Welding, Assembly, Painting.

Description — optional, and worth filling in when a code's boundary isn't obvious. If your shop can't agree whether grinding is fabrication or finishing, write the answer down here.

Default billing rate ($/hr) — what you charge a customer for an hour of this work. Your book rate. It fills in the price when you add this code to a quote.

Default cost rate ($/hr) — what an hour of this work costs you to deliver. This is the number that turns hours into job cost.

Task type availability — two switches that decide where a code can be used:

  • Enable for Customer Tasks — work on customer jobs and orders.
  • Enable for Internal Tasks — shop maintenance, admin work, anything not against a customer job.

Most codes are one or the other. Welding is customer work. Shop cleanup is internal. A code can be both if it genuinely applies to both.

Active — an inactive code stops appearing in dropdowns but keeps all its history. Retire a code this way rather than deleting it, so old jobs still read correctly.


The two rates, and why they're different numbers

The billing rate is a decision about what you charge. The cost rate is a fact about what the work costs you. They are not the same number and neither one is derived from the other.

Setting the cost rate

Your cost rate is not just the wage. A welder you pay $24 an hour costs you more than $24 an hour — payroll taxes, workers' comp, insurance, benefits, the equipment they're using, the floor they're standing on. That "all-in" number is what belongs in the cost rate.

A common way shops arrive at it is to add roughly half again on top of the wage: a $24/hr welder lands somewhere near $36/hr all-in, and might bill at $50.

Treat that as a starting point, not an answer. Burden varies enormously between shops, and yours depends on your insurance, your benefits, your equipment, and your overhead. Your accountant or bookkeeper can tell you what your real multiplier is, and it's worth asking rather than guessing. FabWise doesn't calculate this for you and isn't giving you financial advice — it stores the number you decide on.

Why the cost rate lives on the code and not on the person

FabWise costs a job from the labor code, not from what an individual is paid.

That's deliberate. Two welders doing the same hour on the same job cost that job the same, regardless of what each of them earns. It keeps a specific person's pay out of a number that other people read off a job page, and it stops a job's cost from shifting because of who happened to be free that day.

It also keeps the number honest about what it is. A job cost built from individual wages looks precise, and that precision is false — it ignores burden, which is most of the difference between a wage and a cost.

A code with no cost rate costs nothing. If you leave it blank, work tagged with that code contributes zero to job cost — FabWise won't invent a rate. That's on purpose, and it's why it's worth setting a rate on every code you actually use.


What to do

Set up your codes

Start with the work your shop actually sells, and keep the list short. Five to ten codes covers most shops. Every code you add is another choice a worker has to make at a tablet with gloves on.

  1. Go to Settings → Labor Codes.
  2. Click to add a code.
  3. Enter the code and name — WELD / Welding.
  4. Set the billing rate and the cost rate.
  5. Pick whether it's for customer tasks, internal tasks, or both.
  6. Save.

Add internal codes

Time that isn't against a customer job still needs somewhere to go — shop cleanup, maintenance, training, moving material. Create codes for those and enable them for internal tasks.

Without them, that time either goes untracked or lands on a job that didn't incur it.

Retire a code you've stopped using

Mark it inactive. It disappears from dropdowns and keeps its history, so a job from last year still shows what it was tagged with. Don't delete it.


Common questions

Q: How many labor codes should we have?
A: Fewer than you think. The list is a menu a worker picks from on a tablet, and a long menu gets picked from carelessly. If two codes are always chosen by the same person for the same reason, they're one code.

Q: What if I change a rate later?
A: Work already costed keeps the rate it was costed at. Changing a rate never rewrites what a job already cost — it applies from that point forward. That's what makes a closed job's numbers trustworthy months later.

Q: Can I charge different customers different rates?
A: The billing rate on a code is your default. A quote line's price is editable, so you can quote a specific job differently without changing the code.

Q: Does the cost rate affect what my workers are paid?
A: No. Nothing in FabWise pays anybody. The cost rate is for understanding what a job cost you; your payroll provider handles pay.

Q: A job is showing no labor cost. Why?
A: The labor codes on that job's tasks probably have no cost rate set. Add one and future work on that code will cost correctly.



Last updated: 2026-08-29

Still stuck?

Browse the full help library, ask Foreman inside your account, or email our support team.