Add yearly business costs, the pay you need and a profit margin, then divide by the hours you can realistically bill, usually far fewer than the hours you work. A solo plumber needing about $97,700 of revenue and billing 1,215 hours lands near $80 an hour, not the $29 that pay divided by 2,080 hours suggests.
That gap is the whole subject. Dividing a wage by the hours in a full-time year means travel, quoting, supplier runs, call-backs, holidays and sick days are never paid for, so the diary looks full while the bank balance disagrees. And the answer is sensitive to that hours figure: if the same plumber bills 1,000 hours instead of 1,215, the rate needed jumps to nearly $98, which is why the hours get measured rather than assumed.
The formula, and what each part is made of
Everything rests on one line: hourly rate = (yearly business costs + your pay + profit) divided by yearly billable hours. Each part has a precise meaning, and mixing them up is the commonest cause of a rate that feels right and quietly loses money.
- Business costs are what the business spends whether or not you work that week: vehicle, insurance, tools, phone, software, accounts, advertising, licences.
- Your pay is what you must take out before income tax, plus what you put aside for retirement. It is a wage for your labour, not profit.
- Profit is the margin on top of costs and pay. It pays for replacing the van, slack months and growth.
- Billable hours are hours you can invoice, not hours you work.
Treat profit as a share of what you charge, not a markup on costs. If costs plus pay come to $87,900 and you want a 10 per cent margin, revenue must be $87,900 divided by 0.90, which is $97,667. A 10 per cent markup would give $96,690 and a real margin of only 9.1 per cent. Markup versus margin in a contractor's pricing sheet explains why the difference grows on bigger jobs.
A spreadsheet layout is all you need to get started. Cell B1 totals the cost list you will build in step 1.
A1 Yearly business costs B1 =SUM(cost list)
A2 Owner pay target (before tax) B2 60000
A3 Retirement saving B3 4000
A4 Profit margin (share of price) B4 10%
A5 Weeks worked B5 =52-5-2
A6 Billable hours per week B6 27
A7 Billable hours per year B7 =B5*B6
A8 Revenue needed B8 =(B1+B2+B3)/(1-B4)
A9 Hourly rate B9 =B8/B7
If you are newer to spreadsheets, the Google Sheets AI prompts tutorial shows how to ask an assistant to build or fix formulas like these.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowStep 1: yearly business costs, taken from your bank statements
Use real numbers: twelve months of bank and card statements, not a memory of what things cost. Group the spending into a dozen or so categories, and leave out anything that is not a cost of the business (personal spending, transfers to yourself, and materials bought for a customer's job, which are charged to that job separately). The table shows the totals for the illustrative solo plumber whose figures run through every step.
| Cost | Yearly amount |
|---|---|
| Van loan or lease, plus registration | $6,000 |
| Fuel | $4,800 |
| Vehicle and liability insurance | $3,400 |
| Tools and replacements | $2,000 |
| Phone, software, scheduling | $1,200 |
| Licences, certifications, training | $900 |
| Accountant, bank and card fees | $1,500 |
| Advertising, website, listings | $2,400 |
| Workwear and consumables not charged to jobs | $700 |
| Other (waste disposal, parking, admin) | $1,000 |
| Total | $23,900 |
Two lines deserve a second look. If most of your customers pay by card, check the fee line against a year of statements, because card fees rise with turnover. Jobber's pricing page, for example, lists 2.9 per cent plus 30 cents for each invoice a customer pays online by card. And decide how you will handle small consumables such as sealant and fixings: either include them here, or add a small charge to each job, but not both.
Letting AI sort the statements
Sorting twelve months of transactions by hand is dull, and it is a task where an assistant saves real time. Export a CSV from your bank, delete account numbers and any personal columns, and use something like this:
This CSV is 12 months of business bank transactions for a self-employed
plumber (description, amount). Account numbers have been removed.
Sort every line into these categories: vehicle, fuel, insurance, tools,
phone and software, licences and training, accountant and fees, advertising,
workwear and consumables, other business costs, materials for customer jobs,
owner drawings and personal, transfers, unclear.
Return totals per category and list every line you put under "unclear".
Do not guess: ask me about anything you cannot place.
Check the "materials for customer jobs" and "unclear" totals yourself. In one realistic first pass, an assistant tucked $2,100 of supplier invoices for customer jobs into "tools and replacements", because the supplier name looked like a tool shop. Those invoices belong to jobs, not to overhead. Left in, they would have raised the required revenue by $2,100 divided by 0.90, about $2,333, and the hourly rate by roughly $1.90. Small errors like that are easy to spot once the lines are listed, which is the reason to ask for the "unclear" list rather than a tidy total.
Step 2: decide what you must pay yourself
Your pay target answers one question: what do I need to take out of this business each year before income tax? Start from household needs. If you need $3,400 a month to live on and expect to set aside around 25 per cent of what you earn for tax (your accountant will know your own figure), the pay target is $3,400 divided by 0.75, about $4,533 a month or $54,400 a year. The illustrative plumber uses $60,000, which leaves some room for rising prices, plus $4,000 a year paid into retirement savings.
Notice what is not in that figure. Holiday and sick days are not added to the pay line, because the annual pay target already covers the whole year. They are handled by the billable-hours step, where those weeks are removed from the hours you can bill. That is the cleanest way to be sure you have paid for time off exactly once.
Your pay is also not your profit. Profit is what the business keeps after paying you a fair wage, and it is the cushion that stops a bad month becoming a crisis. Mixing the two is how a rate ends up looking comfortable on paper while the owner works for nothing.
Step 3: count the hours you can actually bill
This is the step people guess, and it moves the answer more than any other. Do it in two parts: how many weeks you really work, then how many of the hours in those weeks you bill to someone.
Weeks. Start with 52 and take away the weeks you will not be working: say 5 for holiday and public holidays, and 2 for sickness, training and weather. That leaves 45.
Hours per week. Keep a simple log for four weeks, written down at the end of each day on your phone. Use six headings: billed on site, travel between jobs, quoting and admin, supplier runs, call-backs you cannot charge for, and anything else. A realistic log for the illustrative plumber looks like this:
| Week | Billed on site | Travel | Quoting and admin | Supplier runs | Call-backs | Other | Total |
|---|---|---|---|---|---|---|---|
| 1 | 26 | 8 | 5 | 4 | 2 | 0 | 45 |
| 2 | 29 | 7 | 4 | 3 | 1 | 1 | 45 |
| 3 | 27 | 8 | 6 | 3 | 0 | 1 | 45 |
| 4 | 26 | 8 | 5 | 4 | 2 | 0 | 45 |
| Average | 27.0 | 7.75 | 5.0 | 3.5 | 1.25 | 0.5 | 45 |
Billed hours are 27 of 45, or 60 per cent. Multiply by the 45 weeks and you get 1,215 billable hours a year. Compare that with the 2,080 hours (40 hours for 52 weeks) that a quick calculation divides by, and you can see why a quick calculation gives a rate that is far too low. Pay of $60,000 divided by 2,080 is $28.85. Even costs, pay, retirement and profit together, divided by 2,080, would give only $46.96, and that would still leave the plumber short, because 2,080 hours will never be billed.
Four weeks in one season is a start, not a certainty. If you can, check it against last year's invoices: add up the hours billed in the quietest three months and the busiest three. A tool such as a timesheet app, or a voice note at the end of each day turned into a table by an assistant, makes the log less of a chore, and the utilisation rate calculator tutorial shows how to work out the percentage from timesheets if you already have them.
Step 4: add profit, then divide
Now put the pieces together for the illustrative plumber. Costs of $23,900 plus pay of $60,000 plus $4,000 of retirement saving give $87,900. At a 10 per cent margin, revenue needed is $87,900 divided by 0.90, which is $97,667, leaving profit of $9,767. Dividing by 1,215 billable hours gives $80.38 an hour. It helps to see how the rate builds up:
| What the hourly rate covers | Rate per billable hour |
|---|---|
| Business costs only | $19.67 |
| Costs, owner pay and retirement saving | $72.35 |
| All of that plus a 10 per cent profit margin | $80.38 |
The middle row is your break-even rate. Charge less than $72.35 and, on these assumptions, you are working for less than your target pay. Round the final figure up to $81, not down to $80, so the rounding works in your favour: 1,215 hours at $81 brings in $98,415, a profit of $10,515 or 10.7 per cent of revenue. Ten per cent is the illustration used here and not a benchmark. Pick a margin that pays for a new van when the old one dies, covers a few slow weeks, and leaves something for growth.
Let AI check the working before you trust the number
An assistant is a good second pair of eyes on a calculation like this, provided you give it your numbers and do not ask it to supply any. Paste in the inputs and ask it to test the logic, not to invent an answer.
I am a self-employed plumber working alone. Check my hourly rate calculation.
Inputs: yearly business costs $23,900 (list attached), owner pay $60,000,
retirement saving $4,000, profit margin 10% of revenue, weeks worked 45,
billable hours 27 a week from a 4-week time log.
1. Recompute revenue needed and the hourly rate. Show every step.
2. List any cost categories a plumbing business commonly has that are missing
from my list, as questions to ask myself.
3. Flag any assumption that looks optimistic and say why.
4. Show the rate if billable hours are 15% lower and 10% higher.
5. Do not use market rates from memory. Do not change my inputs.
A reasonable answer (illustrative) confirms the recalculation of $97,667 and $80.38, then raises three points. The first is a missing replacement fund: the van loan is in the costs, but nothing is set aside to buy the next van, and $2,000 a year would add about $1.83 to the rate ($2,000 divided by 0.90, then by 1,215). The second is that the billable share rests on four weeks in one season, which is a thin base. The third is that nothing is set aside for the insurance excess if a claim is made. At 15 per cent fewer billable hours (about 1,033) the rate becomes $94.55; at 10 per cent more (about 1,337) it falls to $73.05.
Your job is to decide which of those points is real. The replacement fund probably is, so add it. The insurance excess might be, depending on your policy. The thin log is a fair complaint, and the cure is more weeks of data. What you should never do is accept a list like this without thought, because an assistant will always find something to suggest, and some suggestions will be padding that raises your rate for no reason.
One caution about the arithmetic itself. Language tools sometimes slip on multi-step sums, and the slip is rarely obvious. Always ask for each step to be shown, and then confirm the final figure in the spreadsheet. The assistant checks the logic and finds what is missing; the spreadsheet is the calculator. Do not paste bank account numbers or anything personal into a chat tool; the category totals are all it needs.
What happens to the rate when billable hours slip
Because the revenue target is fixed by your costs and pay, the rate moves inversely with billable hours. Here is the plumber's number across a plausible range:
| Billable hours a year | Rate needed | What it means |
|---|---|---|
| 1,000 | $97.67 | A poor year: a wet season, or too much time quoting |
| 1,100 | $88.79 | About 9 per cent below the log |
| 1,215 | $80.38 | The log, taken at face value |
| 1,350 | $72.35 | Batching jobs and trimming travel works |
| 1,500 | $65.11 | Hard to reach unless you cut non-billable time sharply |
Run the downside once, in full. If the plumber charges $80 an hour but bills only 1,000 hours, revenue is $80,000, which is $17,667 short of the $97,667 target. After costs and pay of $87,900, the year ends $7,900 in the red. A single bad winter does this. Now imagine four weeks lost to weather: 41 weeks at 27 hours is 1,107 billable hours, and the same revenue target needs $88.23 an hour. Seeing the rate rise by $8 for one lost month is a good argument for keeping a margin rather than pricing right to the break-even rate.
A crew with an employee: wages, on-costs and two billing rates
Once someone works for you, the formula still holds, but there are two kinds of billable hour to add up. Take a small landscaping crew: the owner plus one employee, one truck and trailer, mowers and hand tools. All figures here are illustrative.
| Item | How it is built | Yearly |
|---|---|---|
| Owner pay and retirement | $55,000 plus $3,000 | $58,000 |
| Employee wages | 1,800 paid hours at $19 | $34,200 |
| Employer on-costs | 18 per cent of wages (payroll costs, insurance, paid leave) | $6,156 |
| Business costs | Truck, trailer, equipment, fuel, insurance, software, marketing | $38,000 |
| Costs plus pay | $136,356 | |
| Revenue at a 10 per cent margin | $136,356 divided by 0.90 | $151,507 |
Now the hours. The owner bills 1,100 a year, because quoting, buying and admin eat into the week. The employee bills 1,500 of 1,800 paid hours, since they are on site, not in the office, which is a utilisation of 83 per cent. That gives 2,600 billable person-hours, and a rate of $151,507 divided by 2,600, which is $58.27 per person-hour, or $116.54 for a two-person crew hour. A job needing two people for five hours is 10 person-hours, so the quote for labour is $583.
The split inside that average is the useful part. The employee costs the business $40,356 for 1,500 billable hours, or $26.90 an hour. The owner costs $58,000 for 1,100 billable hours, or $52.73 an hour. Owner hours are the expensive ones, which is a good reason to make sure the owner's billable time is not wasted on jobs a crew member could do, and to cut the non-billable hours that come with quoting.
What if the wet season cuts the employee's billable hours from 1,500 to 1,200? Total billable hours drop to 2,300 and the rate rises to $65.87 per person-hour, an increase of $7.60. If your prices stay where they were, that increase comes straight out of your profit. On-costs vary a great deal between businesses, so ask your accountant for your own percentage rather than copying the 18 per cent used here.
From hourly rate to day rate, call-out charge and minimum job
An hourly rate is the building block, not always the price you quote. Here is how the plumber's $81 becomes the other numbers customers see.
- Day rate. A full day on one site might give you 7 billable hours, so the day rate is 7 x $81 = $567. On a day of three small jobs you bill only about 5.4 hours (27 hours over five days), which is why small jobs deserve a premium.
- Minimum charge. A 30-minute repair costs the same drive, parking and set-up as a two-hour one. A minimum of one hour, $81, covers it. Customers rarely object to a minimum that is stated up front.
- Call-out fee. If the journey is long, add a separate fee, for example half an hour at $81, about $40. Use either a call-out fee or built-in travel time, not both.
- Materials. They sit outside the hourly rate, priced at cost plus a markup that covers sourcing, handling and returns. Building a materials markup calculator covers that side.
- Out of hours. If you offer emergency work, choose a multiple of the rate (some tradespeople use one and a half times) and say what it is in advance.
Five ways a correct-looking rate goes wrong
- Counting the vehicle twice. The van is in the cost list, and then a mileage charge is added to every job as well. Pick one. If you keep a per-mile charge for long journeys, take the fuel for those journeys out of the yearly costs.
- Pay counted twice. Income tax is paid out of your pay, so it is not also a business cost. Putting it in both places inflates the rate by thousands.
- A billable share borrowed from a good month. Four brilliant weeks in spring tell you little about November. Check the log against a full year of invoices where you can.
- Last year's prices. Insurance, fuel and vehicle costs move. Re-read your statements every January and update the cost list; a 6 per cent rise on $23,900 is $1,434, or about $1.31 on the hourly rate.
- Unpriced extras. The "while I'm here" fixes that nobody pays for are billable hours given away. Write a short variation note for any extra beyond the quote, and track how many hours a month go unbilled.
Every item on that list can be tested by the assistant check described earlier, but only if you tell it what your cost list contains. Ask it explicitly: "Where could I be counting the same cost twice?"
Check the rate against the market, then raise it in steps
A cost-based rate tells you your floor, not what the market will pay. Compare it with what others charge for a job you know well. Ask two or three rivals for a quote on the same standard task, or look at the prices on their published price lists. An assistant can help you write the questions, but it should not be asked to state local rates from memory, because it cannot know them and may sound sure anyway.
If your cost-based rate sits above the market, you have four options: cut costs, raise billable hours, specialise in work that carries higher prices, or price at the floor and see whether work still arrives. If it sits below, you have room. Either way, change prices in steps rather than all at once. Quote new customers at the new rate straight away, give existing customers notice (30 days is a common courtesy), and send a clear letter; raising call-out and hourly rates clearly shows the wording.
Finally, watch your win rate on quotes. If you win nearly every quote, you are probably too cheap. If you win very few, check whether the rate is too high or whether you are quoting for the wrong kind of customer. Review your numbers every quarter, redo the full calculation each January, and keep the sheet where you can find it. For pricing individual jobs from the rate, a job costing sheet in Excel, set up with an assistant's help is the natural next tool. To test your own figures and time log with someone, book an AI implementation consultation.
Questions tradespeople ask about their hourly rate
Should I quote an hourly rate or a fixed price?
Use the hourly rate to build the quote, then decide what the customer sees. Defined jobs suit a fixed price made of hours times rate plus materials. Open-ended work such as fault-finding suits a stated hourly rate with a cap or a check-in. Either way, the price should come from the same calculation.
How often should I recalculate my rate?
Redo the full calculation every January, and again whenever something big changes: a new van, an employee, a large insurance rise, or a month where billable hours fall well short of the log. Between those, check quarterly that quote win rates and actual billable hours still match your assumptions.
What profit margin should a tradesman aim for?
There is no single correct figure. Ten per cent of revenue is used here only as an illustration. Choose a margin that covers replacing the van and tools, a few slack weeks and some growth, then review it every year with your accountant using last year's real numbers rather than a rule of thumb.
How do I price an apprentice's or helper's time?
Work out their cost per billable hour the same way: wages, employer on-costs, and the supervision time they take from you, divided by the hours they actually bill. Charge a separate rate for their time. As the crew example shows, an employee's billable hour costs a different amount from the owner's.
Further reads
- How to Price Carpentry Work: Test Day Rates Against Job History With AI — Test a day rate against what past jobs really earned.
- HVAC Markup and Margin: A Worked Check on Past Jobs With AI — A worked check of markup and margin on completed jobs.
- Construction Job Costing With AI: Find Which Jobs Actually Made Money — Find which jobs made money once your rate is set.
- Plumbers AI: Turn Supplier Price Lists Into a Parts Markup Sheet — Price parts separately from labour.
- AI Automation for Tradies: Quote Follow-Ups That Run Themselves — Follow up quotes so the higher rate still wins work.
- Chasing Unpaid Invoices With AI: Polite Reminders for Trades — Get paid at the new rate without awkward chasing.
- Best AI for Small Businesses: What a Three-Van Trades Firm Buys First — What a growing trades firm buys first.
- How to Price Tattoos: A Rate Card for Hourly, Piece and Flash Work — Cost per chair hour, a minimum charge, a piece grid, flash tiers and deposit credit, then a back-test against twelve past bookings.
- ChatGPT for Tradies: Ten Prompts for Quotes, Texts and Follow-Ups — Ten ChatGPT prompts for a tradie's quotes, texts and follow-ups, each tied to a job outcome and saved in one Project so the voice stays yours.
- How Much to Charge for a Service Call: Build the Fee From Your Costs — Build a service call fee from loaded labour, van and overhead costs, with a worked example, a sheet AI can build and no borrowed benchmarks.
- How to Get More Work as a Tradesman: A Local Plan Written With AI — A 13-week routine for a tradesperson: AI drafts the messages and pages, you do the asking, and a simple log shows which source pays.
- How to Price Drywall Jobs: Per-Sheet and Per-Square-Foot Rates With AI — One basement priced three ways, with finish levels, ceilings and repair pricing, plus an AI back-test of your per-sheet rate against six past jobs.
- How to Price Excavation Work: Hourly, Per-Load or Fixed, Checked With AI — One driveway dig priced three ways from your own machine costs, stress-tested against slower ground, with a contingency taken from your past overruns.
- How to Price Handyman Jobs: A Price Book Built With ChatGPT — A ten-task price book built step by step with ChatGPT, with hourly and flat examples, a travel rule, tool-wear costs and a check against eight past jobs.
- How to Price Snow Removal: Per-Push, Seasonal or Hourly, Tested With AI — A small crew's costs and three winters (light, typical, heavy) run through per-push, seasonal and hourly pricing, with trigger depth and cap clauses.
- How to Price Welding Jobs: Build a Rate Sheet With AI — A welding rate build-up, a fixed-price gate quote, per-inch pricing from timing, and an AI check of quoted against actual hours on twelve past jobs.
- Plumbing Flat-Rate Pricing: A Worked 30-Task Price List Built With AI — A small plumbing firm's 30 most-quoted tasks priced from labour minutes and parts, margin-checked and tested against time-and-materials on three jobs.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: the author's pricing method, worked with illustrative figures; card-payment fee from Jobber's pricing page, read in November 2026. No industry benchmarks are claimed.