Skip into the price book
MarkupYard

Service prices, explained

Overhead per hour: 6 inputs to set before a job price

Labor rates

MarkupYard Editorial Team · Published · 13 min read

Documentation checked

Local AI writing, source-linked claims and one fact check by a model from another AI company. No person writes, edits or reviews these posts.

An hourly overhead charge is your annual overhead pool divided by the billable hours you expect, set through six inputs. Most repair and service shops know their overhead is a problem before they know its size. Rent is due, the phone bill arrives, the truck needs tires, and the office software renews every year. Then, when it's time to fill in the flat-rate price book, the overhead line gets a number that someone picked because it "felt right" or because a competitor seemed to charge about that much.

Key takeaways

  • List every recurring cost from the past twelve months, and decide which ones make up the overhead pool.
  • Divide that pool by billed hours, not paid or scheduled hours.
  • Choose one allocation base and apply it the same way to all work.
  • Charge each cost once, and round the same way on every ticket.

The hourly charge is one of the most useful numbers in a price book, and one of the easiest to get wrong. If it's too low, every job you sell carries a hidden loss that only shows up at the end of the year. If it's too high, you lose work to shops that have figured out their own numbers. Either way, the error compounds across every ticket you write.

The good news is that the calculation is not mysterious. It comes down to six inputs. Set them deliberately, write down how you set each one, and the hourly figure becomes something you can defend, explain to a technician, and revisit when conditions change.

Input 1: Decide what goes into the overhead pool

The first input is the total you are trying to recover. Call it the overhead pool. It is the sum of the costs your business carries that do not belong to any single job: rent or mortgage on the building, utilities, insurance, office salaries, software subscriptions, accounting fees, shop supplies you do not bill separately, and vehicle payments and fuel.

Start by listing every recurring cost for the past twelve months, then sort them. Some belong in the pool clearly. Others are harder: an owner's own wage, a part-time bookkeeper, or a second bay you rent but use only occasionally. Decide on each one, write the decision down, and apply the same rule every year.

It also helps to ask whether a cost would go away if you stopped taking a particular kind of job. Cost accounting textbooks draw a useful line between avoidable and unavoidable costs. In a worked make-or-buy example, OpenStax explains that fixed costs "are unavoidable and therefore are not relevant" to that decision. The same passage shows that part of a fixed cost can be avoidable: $0.12 of the $0.51 in fixed costs for each T6 lid is tied to interest and insurance, and would be avoidable if the lid were bought outside rather than made in-house ( OpenStax, Principles of Managerial Accounting , section 10.3 ).

You are not making a make-or-buy decision when you set an overhead rate, so you should not copy that analysis wholesale. The lesson is narrower. A line item labeled "insurance" may be partly tied to a vehicle you could sell and partly tied to a policy that renews regardless. When you build the pool, separate costs that stay with the business from costs that depend on decisions you make, such as adding a van, opening a second location, or subcontracting a category of work.

The output of this step is a single annual figure and a written list of what it includes. If you cannot explain the list to a new hire in five minutes, it is probably too vague.

Input 2: Choose the denominator honestly

Overhead per hour is a division problem. The overhead pool is the numerator. The denominator is the number of hours you expect to bill in the same period. If you get the denominator wrong, the rate is wrong, even if your overhead list is perfect.

This is where many shops quietly lose money. It is tempting to divide by the hours your technicians are paid for, by the hours the price book says a typical job takes, or by an optimistic count of productive time. A technician on the clock for eight hours may have only a few hours of billable work once you subtract shop cleanup, callbacks, training, waiting on parts, and trips that did not produce a sale.

Cost accounting makes the principle concrete. Microsoft's Business Central documentation shows how a unit cost depends on the quantity it is spread across, calculating 200 ÷ 10 = 20 ( Microsoft Learn, "About calculating standard cost" ). The same logic applies to your shop. Divide the same overhead pool by fewer billable hours and the hourly charge rises. Divide by an inflated count and the charge falls, and the shortfall shows up later as an unexplained drop in margin.

A practical approach is to take actual billed hours from the last twelve months, not scheduled hours, and use that as the baseline. Adjust it only for changes you can name: a technician you have already hired, a service line you are retiring, a bay that will be closed. Write down the number and the assumptions. For more on paid compared with billable time, see Paid technician time: 6 inputs for your labor rate . When the year ends, compare the hours you billed with the hours you assumed. The gap is one of the most useful signals you will get about whether your overhead rate is working.

Input 3: Pick one allocation base and keep it

An allocation base is the measure you use to spread overhead across work. Hours is one option in flat-rate businesses, alongside labor dollars, number of jobs, parts cost, and materials. The base should reflect what actually drives your overhead. If most of your overhead relates to the time the shop is occupied, hours make sense. If most of it relates to paperwork for each ticket, jobs may be a better fit.

Once you pick a base, discipline matters more than the choice. Government contracting rules on indirect costs state the principle clearly. The indirect-cost guidance for federal contracts says the contractor "shall determine each grouping so as to permit use of an allocation base that is common to all cost objectives to which the grouping is to be allocated" ( Acquisition.gov, FAR 31.203 ). Those rules govern government contracts, so they do not bind you. But the principle is sound for any shop: use the same base for the same kind of work, and do not switch bases to make a particular job look better.

The same guidance warns against a common shortcut. It says, "Once an appropriate base for allocating indirect costs has been accepted, the contractor shall not fragment the base by removing individual elements" ( Acquisition.gov, FAR 31.203 ). In a repair shop, fragmenting the base looks like this: you decide warranty jobs should not carry overhead, so you remove warranty hours from the denominator. That quietly raises the rate for everything else and hides the real cost of warranty work. If warranty work truly does not consume overhead, change the cost structure or the pricing policy openly rather than removing hours from the base silently.

Write the base in one sentence. For example: "Overhead is charged on every billed labor hour, based on the twelve-month pool divided by the twelve-month billed-hour count." If someone asks why a job carries a particular overhead charge, that sentence should answer the question.

Input 4: Decide what overhead sits on top of, and avoid double counting

Overhead should be added to a cost once. That sounds obvious, but it is easy to lose track in a price book that combines labor, parts, and overhead into one line.

The indirect-cost guidance for federal contracts states the rule directly: "No final cost objective shall have allocated to it as an indirect cost any cost, if other costs incurred for the same purpose, in like circumstances, have been included as a direct cost of that or any other final cost objective" ( Acquisition.gov, FAR 31.203 ). In shop terms, if a cost is already in your labor rate or your parts markup for a specific job, it should not also be buried in the overhead line. Shop supplies may already be part of a flat fee. A software subscription may already be recovered in a separate charge. Check your price book for these overlaps.

The bigger question is what the overhead rate applies to. Some shops charge overhead on labor hours only. Others apply it to labor and materials combined, or to a mix of percentages and flat amounts. Microsoft's standard-cost examples show how a mixed structure can work. One work center's cost is shown as "5 direct cost × 20% + 1 overhead rate," and a production item's overhead is calculated as "10% × (20 material + 12 noninventory material + 27 capacity + 7 subcontracting + 2 capacity overhead) + 3 overhead rate" ( Microsoft Learn, "About calculating standard cost" ). Those figures come from a manufacturing system, but the structure is worth borrowing: a percentage of certain costs combined with a fixed amount.

For a service shop, a similar structure can make sense. You might charge a fixed overhead amount for each billed hour and a smaller percentage on parts, because parts handling and purchasing create overhead of their own. The point is not to copy the percentages. The point is to decide explicitly which costs carry overhead and which do not, and to write that decision into the price book. A shop that charges overhead on everything by default often overcharges on parts and undercharges on labor, or the reverse.

Input 5: Use the right hour for the job

Flat-rate pricing sells book hours, not clock hours. A brake job may be priced at a set number of book hours whether your technician finishes in two hours or three. Overhead rates need to match that reality, or the math will not hold together.

Consider a simple case. Suppose your price book says a job is worth two book hours. Overhead for that job is the hourly rate times two, not the rate times the actual time the technician spent. If the technician works faster, the shop still recovers the same overhead. If the technician works slower, the shop absorbs the difference. That is the right behavior for a flat-rate system, but it means the overhead charge depends on the book hour you assigned, not on the stopwatch.

This creates a useful check. Pull a sample of recent tickets and compare the book hours you sold with the hours technicians actually spent, including time that did not produce billable work. If book hours are systematically too low, overhead recovery will be too low too, even if your rate is correct on paper. Adjust the book hours and the overhead rate together. Adjusting one and hoping the other follows is far less reliable.

Input 6: Set your rounding rules once, and write them down

The last input is the one most shops never think about until it causes a problem. Rounding can change the total a customer sees, and it can change your margin, especially when a rate is applied across many lines.

The order of operations matters. Stripe's documentation illustrates the point: "For example, if you create a price with unit_amount_decimal = 0.05 and a monthly subscription for that [price] with quantity = 30, rounding occurs after multiplying the quantity by the decimal amount." It continues: "In this case, the calculated amount for the line item would be 0.05 * 30 = 1.5, which rounds up to 2 cents" ( Stripe Documentation, "Manage products and prices" ). That example concerns payment systems, but the lesson carries over. If you round an hourly rate before multiplying by hours, you may get a different total than if you multiply first and round the final line.

Apply this to your price book. Decide whether you will compute the overhead charge for the whole job and then round, or round the hourly rate and then multiply. Pick one method and document it, so that a technician, a service advisor, and an owner all calculate the same number from the same inputs. A rule like "compute the line total, then round to the nearest dollar" is easy to follow and easy to audit. A rule that changes depending on who writes the ticket is not. For how totals are built on a customer's invoice, see Invoice total calculation: 4 tools and rounding limits .

Also decide how overhead appears on the customer's invoice. Some shops show it as a separate line, others fold it into a labor charge. Either can work, but you should know which you are using, because it affects how customers compare your prices with other shops.

Illustrative example: six inputs in one shop

Here is a hypothetical example to show how the pieces fit. Assume a small shop has an overhead pool that, after the decisions in Input 1, is divided by billed hours from the past year. The billed-hour count is noticeably lower than paid timesheet hours because of cleanup, callbacks, and training, so the owner uses billed hours as the denominator. The division yields 20 for each billed hour.

The owner chooses billed labor hours as the allocation base and applies overhead to labor only, since parts are already covered by a separate handling fee. The price book shows overhead as an amount for each book hour. A job booked at two book hours carries two times that rate. The owner sets the rule that overhead is calculated on the job's total book hours and rounded to the nearest dollar, and writes it down.

Common mistakes to avoid

Five errors show up again and again when shops set overhead rates.

The first is reusing last year's rate without checking last year's assumptions. If you added a technician, moved to a larger building, or changed software, your pool changed. Recalculate it.

The second is treating overhead as a single number forever. Costs move. A rate that worked with two bays may not work with four.

The third is pricing against competitors without knowing your own costs. A low rate may win work in the short term, but it does not pay the rent. Use competitor prices as a check, not as the starting point.

The fourth is failing to track whether the rate recovers what you expected. At the end of each quarter, compare the overhead you charged with the overhead you actually paid. If the two diverge sharply, something in the six inputs has changed.

The fifth is letting the price book drift from its rules. A shop that starts with clear rules and then makes exceptions for good customers, rush jobs, or slow weeks ends up with an overhead number nobody trusts. If an exception is needed, make it deliberately, record it, and ask whether it should become a rule.

Review the inputs on a schedule

Treat the six inputs as a living document. Review the overhead pool and billable-hour count once a year, and check the rate against actual results each quarter. If costs change sharply, such as a lease renewal or a major equipment purchase, recalculate sooner.

When you review, go through the inputs in order. Has the pool changed? Is the denominator still realistic? Is the allocation base still the one that drives your costs? Are you charging overhead once, on the right costs? Are book hours still close to what technicians spend? Are rounding rules still applied the same way? Each question is quick to answer, and together they keep the overhead line honest.

Overhead per hour is not glamorous, and it will never be the most exciting number in your shop. But it determines whether the business you run on paper matches the business you have in the bank. Set the six inputs carefully, write down what you decide, and revisit them on a schedule. Your price book will be more defensible, your technicians will understand why jobs are priced the way they are, and you will have a clearer picture of what each billed hour is really worth.