Start from your real costs: divide a year of running costs plus a profit target by your billable hours to get an hourly rate, then price each task as minutes times that rate plus parts with a markup. AI can draft the task list and first-guess the times in minutes; your own timed jobs must confirm them.
Flat-rate pricing moves the risk of a slow job from the customer to you, so the list needs three things a downloadable template cannot supply: times taken from your own jobs, a minimum charge for short visits, and scope lines that say when you stop and re-quote. Skip the third and one seized trap turns a $120 sink job into 95 minutes of work at a 10% margin, against 54% had the same job been billed by the hour. Every figure here belongs to an illustrative three-technician firm, so copy the method and replace the numbers.
Work out the hourly rate every task price is built from
A flat-rate list is only as sound as the rate under it, and that rate is a sum rather than a market guess. Add up what the firm has to recover from labour revenue in a year: technician pay with payroll costs, the owner's and office time, vans, insurance, software, advertising and a profit target. Then divide by the hours technicians actually bill, which is never every paid hour. The tutorials on working out a tradesman's hourly rate and on labour burden go further into the same sums; this is the short version.
| Cost line (illustrative, per year) | Amount |
|---|---|
| Technician pay including payroll costs (three technicians) | $198,000 |
| Owner and office time | $84,000 |
| Three vans: finance, fuel, insurance, repairs | $40,500 |
| Liability insurance, licences, tools, uniforms | $26,500 |
| Software, phones, advertising, accountancy | $58,000 |
| Profit target | $55,000 |
| Total to recover through labour | $462,000 |
Three technicians at 1,880 paid hours each is 5,640 hours. Driving, parts runs, quoting and admin take a share; assuming 65% of paid time is billed gives 3,666 billable hours. Dividing $462,000 by 3,666 gives $126.02, which I would round up to $130 an hour. Rounding up leaves a small cushion, while rounding down quietly removes profit. The second number to keep is technician cost per billable hour: $198,000 divided by 3,666 is about $54. It drives the margin check later.
Three more settings belong to the formula. Parts are charged at cost plus 50%, which pays for buying, carrying, returning and warranting them; the tutorial on a parts markup sheet shows how to set that from supplier lists. Every job carries $8 for consumables and waste disposal, so tape, sealant, fixings and disposal fees never appear as separate lines. And the list has a minimum price of $120. The 65% assumption spreads driving time evenly across all billed hours, but a 20-minute job costs a full van trip, so short tasks need a floor. The service call fee tutorial covers that floor in more detail.

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 nowDraft the task list from your own invoices, not a blank page
Flat-rate pricing suits repeat work whose scope you can describe over the phone. The best source for that list is your own history. Export a year of invoice line descriptions from your invoicing or job software, delete customer names, addresses and phone numbers, and keep the description, date and amount. A few hundred lines is plenty. Then ask the AI to group before it prices anything, because grouping is where it saves hours.
I run a small residential plumbing company. Below are invoice line descriptions from the last 12 months, with customer details removed.
1. Group them into repeatable tasks a customer could understand before work starts.
2. Count the lines in each group and keep the 30 most frequent tasks that have a fixed, knowable scope.
3. List separately, under "Diagnose first", any jobs whose scope depends on what we find once we start (leak tracing, unknown blockages, anything behind a wall or under a floor).
4. For each of the 30 tasks give: a plain customer-facing name; what is included; what is not included; two questions we must ask before quoting; and low, typical and high on-site minutes.
Do not suggest prices and do not quote average prices from anywhere. If you are unsure of a time, say so instead of guessing. Use British English.
[paste the descriptions here]
Here is the kind of entry that comes back. It is illustrative, written the way a good first draft reads.
Task 5: Replace a toilet fill valve
Included: remove the old valve, fit a universal replacement, reconnect the supply, set the water level, test the flush, check for leaks.
Not included: replacing the cistern, the flush mechanism or the supply pipe; a toilet that is cracked or loose on the floor.
Ask before quoting: Does water keep running after a flush? Is there an isolation valve on the supply?
On-site minutes: low 15, typical 20, high 35.
Diagnose first: finding a leak under a floor; a drain that blocks again after clearing; low water pressure; damp patches on walls.
The draft is useful, and it needs a firm edit. These are the fixes I would make to almost any first pass:
- Times run light. The 20 minutes above describes a good day with the valve at the front of the cistern. The next section tests every time against real jobs.
- Licensing is yours to judge. An AI does not know what your licence covers. The water heater element and thermostat task is on the list below for illustration only; drop any task that needs a qualification you or your technicians do not hold, and anything involving gas appliances.
- No market prices. If a draft quotes "typical" prices, delete them. The AI cannot see what your customers pay, and prices from an unnamed source are a made-up number.
- Vocabulary. Check that task names match what your customers and suppliers say, and put the plain name a customer would search for first.
- Hidden-scope jobs belong in "Diagnose first". Keep that list. Those jobs get a diagnostic visit and a quote afterwards, not a flat price.
Check the AI's minutes against your own timed jobs
The times are the weakest part of an AI draft and the most expensive to get wrong, since every minute is worth about $2.17 at a $130 rate. Collect real numbers before you price. Job software time stamps are a start, but they include the chat on the doorstep and the paperwork. A cleaner method is to ask each technician to text the task number and the on-site minutes after every job for two weeks. Count from opening the van to wiping down, and leave driving out.
Take the median of at least five timings per task, not the average, so one nightmare job does not distort the standard. Round to the nearest five minutes. Where you have fewer than five timings, mark the task provisional and price from the top of the AI's range until the data arrives. In the illustrative firm, the first batch of timings looked like this:
| Task | AI typical minutes | Median of timed jobs | Gap |
|---|---|---|---|
| Fit a customer-supplied tap | 45 | 60 | 25% lighter |
| Replace a toilet fill valve | 20 | 30 | 33% lighter |
| Replace a sink trap and waste | 25 | 40 | 38% lighter |
| Replace a toilet like-for-like | 75 | 110 | 32% lighter |
| Clear a blocked sink | 25 | 45 | 44% lighter |
| Flush a storage water heater | 45 | 60 | 25% lighter |
| Replace a shower cartridge | 40 | 50 | 20% lighter |
Across those seven tasks the AI was about 31% lighter than the technicians' own medians. That is one firm's illustration, not a rule about AI. It does show the direction to watch: a description of a job leaves out finding the shut-off, protecting the floor, the second trip to the van and the test. Had the firm priced from the AI's minutes, the toilet replacement would have been priced for 75 minutes of work that takes 110, a shortfall of 35 minutes, or about $76 of labour at the $130 rate on every one of those jobs.
The 30-task price list with minutes, parts, price and margin
Once the minutes and parts costs are settled, the price is a formula. In words: minutes divided by 60 times the hourly rate, plus parts cost times one plus the markup, plus the consumables allowance, rounded up to the next $5, and never below the minimum. Put the settings in cells so one change reprices the whole list.
B1 = 130 hourly rate
B2 = 0.5 parts markup (50%)
B3 = 8 consumables per job
B4 = 54 technician cost per billable hour
B5 = 120 minimum price
Price (E9): =MAX($B$5, CEILING(C9/60*$B$1 + D9*(1+$B$2) + $B$3, 5))
Job margin (F9): =(E9 - (C9/60*$B$4 + D9 + $B$3)) / E9
C = on-site minutes, D = parts cost
Ask the AI for the formulas if spreadsheets are not your strength, then paste them in and check five rows with a calculator. The tutorial on why AI is bad at maths explains why the sums should happen in the sheet and not in the chat window. Here is the finished list. The parts column is the materials allowance: what a standard version of the job uses, at cost. The customer sees one price, so the allowance only matters inside your sheet and in the scope line that says what happens when a job needs something non-standard. The figures are placeholders, so substitute your supplier's prices.
| # | Task | On-site minutes | Parts cost | Flat price | Job margin |
|---|---|---|---|---|---|
| 1 | Fit a customer-supplied kitchen or basin tap | 60 | $9 | $155 | 54% |
| 2 | Replace a tap cartridge or washer (one tap) | 35 | $16 | $120 (minimum) | 54% |
| 3 | Replace an under-sink isolation valve | 30 | $8 | $120 (minimum) | 64% |
| 4 | Replace an outside tap | 55 | $22 | $165 | 52% |
| 5 | Replace a toilet fill valve | 30 | $14 | $120 (minimum) | 59% |
| 6 | Replace a toilet flush valve or flush mechanism | 45 | $26 | $145 | 49% * |
| 7 | Replace a toilet like-for-like (customer-supplied) | 110 | $18 | $275 | 55% |
| 8 | Clear a blocked toilet | 40 | $0 | $120 (minimum) | 63% |
| 9 | Clear a blocked sink or basin | 45 | $4 | $120 (minimum) | 56% |
| 10 | Replace a sink trap and waste | 40 | $15 | $120 | 51% |
| 11 | Fit a food waste disposer (customer-supplied) | 75 | $20 | $205 | 53% |
| 12 | Replace a kitchen sink like-for-like (customer-supplied) | 150 | $30 | $380 | 54% |
| 13 | Fit a basin (customer-supplied) | 100 | $24 | $265 | 54% |
| 14 | Replace a shower cartridge or valve | 50 | $40 | $180 | 48% * |
| 15 | Replace a shower head, hose and holder | 20 | $6 | $120 (minimum) | 73% |
| 16 | Re-seal a bath or shower | 60 | $10 | $155 | 54% |
| 17 | Replace a bath or shower waste | 60 | $22 | $175 | 52% |
| 18 | Clear a blocked bath or shower drain | 45 | $3 | $120 (minimum) | 57% |
| 19 | Flush and service a storage water heater | 60 | $12 | $160 | 54% |
| 20 | Replace a water heater element or thermostat | 65 | $45 | $220 | 49% * |
| 21 | Replace a temperature and pressure relief valve | 50 | $35 | $170 | 48% * |
| 22 | Replace an expansion vessel | 70 | $70 | $265 | 47% * |
| 23 | Connect a washing machine or dishwasher | 35 | $18 | $120 (minimum) | 52% |
| 24 | Replace appliance hoses and valve | 30 | $22 | $120 (minimum) | 52% |
| 25 | Repair an accessible leaking joint | 45 | $12 | $125 | 52% |
| 26 | Replace up to one metre of accessible pipe | 80 | $28 | $225 | 52% |
| 27 | Fit a pressure-reducing valve | 90 | $85 | $335 | 48% * |
| 28 | Unblock an external drain by rodding | 60 | $0 | $140 | 56% |
| 29 | Replace an exposed shower mixer (customer-supplied) | 120 | $30 | $315 | 54% |
| 30 | Diagnostic visit (first 45 minutes) | 45 | $0 | $120 (minimum) | 60% |
The asterisk marks a job margin under 50%, and "minimum" marks the ten tasks lifted to the $120 floor. Ten of thirty landing on the floor shows how much of this list is short work where the van trip is bigger than the job. The margin column is job margin: price minus technician cost, parts and consumables, as a share of the price. The average across the list is 54%.
The margin check that flags tasks priced too low
A task with no parts and no minimum clears about 58%, because $54 of technician cost sits inside a $130 rate (1 minus 54 over 130). Parts at a 50% markup pull the blend down, so a parts-heavy job lands lower. I set the flag line at 50% for this firm. Derive yours from your own cost table: divide technician cost by the rate for the labour-only margin, then flag anything a few points under your list average.
Six tasks fall under the line: the toilet flush mechanism (49%), the shower cartridge (48%), the water heater element or thermostat (49%), the pressure relief valve (48%), the expansion vessel (47%) and the pressure-reducing valve (48%). All six are parts-heavy. Looking at dollars per on-site hour is a useful second test. The expansion vessel earns ($265 minus $70 parts minus $8 consumables) divided by 70/60 of an hour, which is about $160 for every on-site hour, comfortably above the $130 rate. So the low percentage is mostly the parts markup showing up in the denominator, not a pricing error.
That still leaves a decision for each flagged task. Three options are worth weighing:
- Accept it when dollars per hour are healthy and the task is rare. The expansion vessel is bought a few times a year.
- Nudge the price where a few dollars changes little for the customer. Adding $5 to the flush mechanism and the thermostat, $10 to the shower cartridge and the pressure relief valve, $15 to the pressure-reducing valve and $20 to the expansion vessel puts all six at 50% or just over.
- Raise the markup on expensive parts if you carry them in stock, because stock ties up cash and a part that sits on the van for six months should earn more than one bought on the day.
Also look at the other end of the column. The shower head at 73% and the isolation valve at 64% look rich only because the minimum charge lifts them. A $120 price for a 20-minute shower head swap invites a comparison with a do-it-yourself fix. Waiving the minimum when the task is booked alongside another one keeps the floor fair without losing the sale.
Flat rate against time-and-materials on three jobs
To see what the list changes, bill three jobs both ways. Time-and-materials here means $130 an hour on actual minutes with a 30-minute minimum, parts at cost plus 50%, and the same $8 for consumables. Technician cost is $54 an hour on the minutes actually worked. Standard times come from the list above.
| Job (task number) | Standard / actual minutes | Flat price | Time-and-materials bill | Firm's margin, flat / T&M |
|---|---|---|---|---|
| Toilet fill valve (5) | 30 / 20 | $120 | $94 | 67% / 57% |
| Sink trap and waste, seized fittings (10) | 40 / 95 | $120 | $236 | 10% / 54% |
| Customer-supplied tap (1) | 60 / 65 | $155 | $162 | 51% / 53% |
The quick job favours the firm under a flat price: the customer pays $26 more than the clock would charge, but knew the figure up front, and the firm is paid for the van trip. The tap job is a wash. The sink trap is the problem. Corroded fittings turned a 40-minute task into 95 minutes, and the flat price absorbed it: a margin of 10% against 54% on time-and-materials, and $116 less in the till. One bad job like that wipes out the extra earned on four or five quick ones.
A simple month shows the wider picture. Suppose 100 jobs: 25 finish 20 minutes faster than standard, 60 finish on time and 15 take 45 minutes longer. The fast jobs save 500 minutes and the slow ones cost 675, a net loss of 175 minutes, or 2.9 hours. Time-and-materials would have billed those hours at $130, so flat rate gives up about $379 on this mix. The 500 minutes saved on fast jobs, over eight hours, are also free to sell elsewhere, if the diary lets you. Those split percentages are assumptions to show the arithmetic. Replace them with your timesheets.
The lesson is not that flat rate loses. It is that the standard minutes must be medians, that the overrun share has to stay small, and that jobs with hidden scope should not be on the list at all. Where the list is honest, flat rate earns well. Where the scope is unknown, time-and-materials after a diagnostic visit is the safer way to bill.
Scope lines that stop one overrun wiping out four quick jobs
Every task on the list needs a short scope line in the quote, and the line has to state what the price assumes. Compare two versions of task 10.
Before: Replace sink trap. $120.
After: Replace the trap and waste under one kitchen or bathroom sink with a
new standard trap, including a leak test and tidy-up. $120.
The price assumes the existing pipework is accessible and the fittings
come apart without being cut or forced, and that standard fittings
are enough. If fittings are seized or corroded, if the pipe behind
them is damaged, or if a non-standard part is needed, we will stop,
explain the options and agree any extra cost with you before
carrying on.
The second version still reads plainly, and it turns the 95-minute surprise into a conversation, with the customer choosing between a longer job at a stated extra price or stopping. Agree the extra by text or signature, the same way as a variation on a bigger job, as covered in the tutorial on plumbing change orders drafted with AI. Writing 30 of these lines by hand is tedious, which is where the AI earns its keep.
For each task below, write a scope line of no more than four sentences for a customer quote. Say what is included, state the assumption the price depends on (access, condition of existing fittings), and say what we do if the assumption is wrong: stop, explain the options and agree any extra cost first. Plain English, no jargon, no promises of how long it will take.
[paste the task names and the included / not included notes]
Check every line against two questions. Does it avoid promising a time? And would a customer reading it understand the point at which the price can change? Delete any line that sounds like a warranty you cannot honour. Leave the legal wording of your terms and conditions to whoever drafts your contracts, since scope lines are only the customer-facing part.
Keeping the list honest after it goes live
Most field-service apps store a price book. Housecall Pro, for example, lists a price book on all three of its plans and flat-rate pricing from the Essentials plan up, according to its pricing page as of November 2026. Other apps differ, so check the one you use. If you have no software yet, a spreadsheet printed as a one-page sheet for technicians works for the first 30 tasks.
The list decays quietly, mostly through parts. Say the expansion vessel's supplier price rises from $70 to $88 and nobody updates the sheet. The firm's cost on that task becomes $63 of labour (70 minutes at $54 an hour), $88 of parts and $8 of consumables, which is $159. Against the $265 price, the margin has slid from 47% to 40% without anyone deciding anything. Multiply that across a dozen parts and a year, and the profit target disappears.
Catch it with a quarterly routine. Paste the new supplier price list and the 30-task table into the AI, ask which tasks use a part whose cost has moved by more than 5%, then recalculate those rows in the sheet. Also check three other things each quarter: callbacks by task, jobs that ran 30 minutes or more over standard, and any task that has been quoted but rarely accepted. A task nobody accepts may be priced too high, or may be a job the customer would rather see diagnosed first.
Here is last quarter's supplier price list and my 30-task table (parts cost column). List every task whose parts cost has risen or fallen by more than 5%. Show the old cost, the new cost and the percentage change. Do not recalculate prices; I will do that in the spreadsheet.
One way to launch it is in two weeks. In week one, export the invoices, run the grouping prompt, cut the list to 30 and start the timing texts. In week two, set the medians, fill the sheet, run the margin check, write the scope lines and brief the technicians on what to say when a customer asks why a quick job costs the same as a slow one. The honest answer is that the price is for the task, and you agreed it before the work began.
Flat-rate plumbing questions owners ask
How many tasks should a flat-rate list start with?
Thirty is a practical size for a small residential firm: enough to cover the repeat work, few enough to time properly. Rank last year's repeatable jobs by how often you sold them and start with the top 20 to 30. Add a task only when you have quoted it at least three times and have timings for it. Anything whose scope depends on what you find stays as a diagnostic visit followed by a quote.
Will customers accept a fixed price before you have seen the problem?
It works when the price is tied to a clear scope. A customer who hears 'replace the trap under one sink, includes a leak test' knows what they are buying. Where you cannot describe the scope on the phone, ask for a photo first, and if that is still not enough, sell a diagnostic visit and quote afterwards.
Can AI work out the prices as well as the task list?
Use it for the formula and the spreadsheet syntax, but do the sums in the spreadsheet, because language models slip on long tables of arithmetic. Give the AI your rate and markup, ask for the formula, paste it into the sheet and check five rows by hand before trusting the rest.
How often should the price list be updated?
Review it every quarter against real job times and parts invoices, and reprice sooner when a supplier moves the price of a fast-moving part. Any task where more than one job in five overran its standard time by 30 minutes or more needs a longer time, a tighter scope line or a higher price.
Should technicians be paid commission on flat-rate jobs?
That is a pay-policy decision with its own risks. Commission on flat-rate sales can reward speed and upselling at the expense of quality, so an owner might keep hourly pay and add a bonus tied to callbacks and customer feedback. Test any scheme against a few months of past jobs before announcing it.
Further reads
- Can AI Price a Job Accurately? What Tradespeople Should Check — What to check when an AI suggests a price for a job
- Can AI Tell You What to Charge? The Limits of AI Pricing Research — Why AI cannot see your market, and what to use instead
- Plumbing Price Increase Letter: Raise Call-Out and Hourly Rates Clearly — Announce new call-out and hourly rates clearly
- QuickBooks for Plumbers: Set Up Job Costing and Let AI Sort the Bills — Capture real job costs so your timings stay honest
- Plumbing Maintenance Plans: AI-Written Offers and Renewals — Turn the same task list into an annual plan offer
- Can a Plumber Use AI to Write Quotes? — Use the finished list to write quotes faster
- Car Detailing Price List Template: AI-Built Packages and Add-Ons — A filled-in car detailing price list built with AI: three packages, vehicle-size multipliers and an add-on menu, each priced from measured time and cost.
- AI Automation for Plumbers: Package Prices and What Should Be Included — Done-for-you AI packages for plumbers priced from the bottom up: inclusions, a 12-month sum against doing it yourself, ownership and contract checks.
- AI Chatbot for Plumbers: Answer Questions, Collect Photos, Refuse Jobs — Set the scope of a plumber's website chatbot: three lanes, an approved answer sheet, price rules, photo requests, refusals, handover and a 20-message test.
- AI Marketing for Plumbers: A Worked 12-Month Posts and Offers Calendar — A worked 12-month calendar for a five-van plumbing firm: frozen pipes, boiler checks, heater age and drain season, with AI drafts and a review step.
- 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 Use AI in a Plumbing Business: A 30-Day Setup Plan — Week one calls, week two quotes, week three follow-up, week four review: a 30-day AI plan for a plumbing firm with one metric and one owner check per week.
- Plumbing Van Stock Lists: Set Reorder Levels From Job History With AI — Export a year of parts, merge duplicate names with AI, rank the top 40, set minimum and maximum levels per van and check them against supplier stock.
- Can AI Tools Help With Plumbing Design? What Needs a Qualified Person — What AI can draft in a plumbing layout, what a licensed designer must verify, and a sign-off checklist for the contractor.
- Can AI Update Your Plumbing Price Book From Supplier Invoices? — Update a plumbing price book from a wholesaler invoice with AI: line extraction, cost comparison, markup rules and the checks that catch mistakes.
- Can AI Write Plumbing Proposals for Repipes and Water Heaters? — A worked water heater proposal with three options, plus repipe and bathroom notes and the checks to run before you send.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Housecall Pro pricing page (price book and flat-rate pricing rows), checked November 2026. Every other figure is arithmetic from the illustrative firm described in the tutorial.