← Writing

Why Most Small Service Businesses Charge Too Little

Published
Reading
12 min
Contents · 22 sections
  1. How prices actually get set
  2. 1. They copy the competitor
  3. 2. They price by fear
  4. 3. They only count the hours they’re paid for
  5. The costs owners forget
  6. A worked example: the real hourly rate
  7. What Linh thinks she earns
  8. What Linh actually earns
  9. The price Linh needs
  10. Shrinking the gap from the other side
  11. Why cheap attracts the hardest customers
  12. No margin, no quality
  13. How to raise prices without drama
  14. 1. Start with new customers
  15. 2. Give existing customers notice
  16. 3. Send a short, honest message
  17. 4. Use packages instead of a bare hourly rate
  18. 5. Set a minimum charge
  19. 6. Add a cancellation fee
  20. What if some customers leave?
  21. Remove work, and the higher price makes sense
  22. The takeaway

Ask a small service business owner how they set their price, and you’ll usually hear one of two answers.

“I checked what the others charge and went a bit lower.”

Or: “I didn’t want to scare people away.”

Both answers are about fear. Neither is about cost. And that’s why so many good cleaners, tutors, hosts, repair people and small agencies work very hard and still feel broke at the end of the month.

The problem usually isn’t that they’re bad at the work. It’s that the price was wrong from day one, and nobody ever did the math.


How prices actually get set

In theory, you set a price by adding up your costs, adding what you want to earn, and checking it against the value the customer gets.

In practice, most small owners do something else.

1. They copy the competitor

You look around, find the going rate, and match it or go slightly under. It feels safe.

But you have no idea how your competitor got to that number. Maybe they’re underpricing too. Maybe they have a partner with a salary paying the rent. Maybe they’re about to quit. When you copy a competitor’s price, you also copy their mistakes, and you don’t even know what those mistakes are.

2. They price by fear

The first customers are scary. You don’t want to lose them. So you pick the number that feels least likely to get a “no.”

That number is almost always too low. And it sticks, because the first customers become the regular customers, and raising the price on people you know feels awkward. So the starting price, chosen in a nervous week years ago, quietly becomes the price for the next five years.

3. They only count the hours they’re paid for

This is the big one. A cleaner charges per hour of cleaning. A tutor charges per hour of teaching. So they think about their price as “what I earn per hour.”

But the paid hour is only part of the job. Around every paid hour sit unpaid ones: travel, messages, quotes, rescheduling, buying supplies, sending invoices, chasing late payments. Then there are the hours that were booked and then disappeared, because a customer cancelled the night before or didn’t open the door.

None of that is in the price. All of it is in your week.


The costs owners forget

Here’s the list I’d want every service owner to look at once. Not all of it applies to everyone, but most of it applies to most people.

  • Your own time that isn’t billed. Travel between jobs. Replying to “are you free Thursday?” messages. Writing quotes for people who never book.
  • Admin time. Invoices, receipts, bookkeeping, checking who has paid. If you’ve ever spent a Sunday evening scrolling bank transfers, you know this one.
  • No-shows and late cancellations. A slot you kept free and then couldn’t fill. That hour is gone.
  • Tools and supplies. Cleaning products, equipment that wears out, phone bills, software subscriptions, printing, transport.
  • Taxes. Money that comes in but was never really yours. If you don’t set it aside, it feels like income until the tax bill arrives.
  • Days you don’t work. Holidays, sick days, the quiet season. An employee gets paid for some of these. You don’t, so your working days have to cover them.

I made the same point about short-term rentals in The Real Math of One Airbnb Unit: for a small host, your own time is the management fee. If you don’t count it, you’re not seeing the real cost. Service businesses are the same, just with a mop or a whiteboard instead of a key box.


A worked example: the real hourly rate

Let’s put numbers on it. This is a fictional example, with made-up but realistic-looking numbers, to show the method. Your numbers will be different.

Linh runs a one-person home cleaning service. She charges $15 an hour. In a normal week:

  • She books 27 hours of cleaning, but on average 2 hours get cancelled at the last minute and she can’t refill them. So she’s paid for 25 hours.
  • She spends 5 hours travelling between jobs, 3 hours on messages and scheduling, 1 hour on invoices and chasing payments, and 1 hour buying supplies. That’s 10 unpaid hours.
  • Her weekly costs are $60: $20 supplies, $25 transport, $5 phone and apps, $10 set aside to replace equipment.
  • She sets aside 10% of what she’s paid for tax. (That’s just the example’s number. Check your own rules, they vary a lot by country and situation.)

What Linh thinks she earns

25 hours × $15 = $375 a week. “I make $15 an hour.”

What Linh actually earns

  • Paid: 25 × $15 = $375
  • Minus costs: $375 − $60 = $315
  • Minus tax set aside (10% of $375 = $37.50): $315 − $37.50 = $277.50
  • Hours actually worked: 25 paid + 10 unpaid = 35 hours
  • Real hourly rate: $277.50 ÷ 35 = about $7.93 an hour

So Linh thinks she earns $15 an hour. She really earns just under $8, and that’s before counting any holiday or sick days, which lower it again.

Linh's week: 35 hours of work, 25 of them billed 25 paid cleaning hours 10 unpaid hours travel 5 · messages 3 · invoices 1 · supplies 1 What she sees: $375 billed ÷ 25 hours = $15 an hour What she earns: $277.50 kept ÷ 35 hours = about $7.93 an hour Fictional example. Kept = billed − $60 costs − 10% set aside for tax.
The billed hour hides the unpaid ones around it, so the real hourly rate is about half the price on the website.

The price Linh needs

Now flip it around. Say Linh wants to really earn the $15 an hour she thought she was earning, for every hour she works, not just the billed ones.

  • Target take-home: 35 hours × $15 = $525 a week
  • She needs a weekly total where, after $60 costs and 10% tax, $525 is left. So 90% of the total, minus $60, must equal $525.
  • 90% of the total = $525 + $60 = $585
  • Total needed = $585 ÷ 0.9 = $650
  • Price per paid hour = $650 ÷ 25 = $26 an hour

Let’s check it forwards. 25 × $26 = $650. Minus $60 costs = $590. Minus 10% tax ($65) = $525. $525 ÷ 35 hours = $15 an hour. It works.

So to earn what she thinks she earns today, Linh needs to charge $26, not $15. That’s a big gap. It’s also very common.

Shrinking the gap from the other side

Price isn’t the only lever. The unpaid hours are a lever too.

Say Linh groups her jobs by neighbourhood, so travel drops from 5 hours to 2. Her week is now 32 hours.

  • Target: 32 × $15 = $480
  • Total needed: ($480 + $60) ÷ 0.9 = $540 ÷ 0.9 = $600
  • Price per paid hour: $600 ÷ 25 = $24 an hour

Check: 25 × $24 = $600. Minus $60 = $540. Minus $60 tax = $480. $480 ÷ 32 = $15. Correct.

Cutting 3 unpaid hours a week saved her $2 an hour on the price she needs. That’s the quiet power of removing your own busywork: it’s a price cut you don’t have to give away.

Do this math once for your own business. One week of honest notes is enough. Write down every hour, paid or not, and every cost. Then divide.


Why cheap attracts the hardest customers

There’s a second problem with underpricing, and it’s not about math. It’s about who you attract.

When you’re the cheapest option, you get the customers who chose you because you’re the cheapest. Many of them are lovely. But as a group, price-first customers tend to:

  • Negotiate every quote.
  • Ask for “just one more small thing” without paying for it.
  • Cancel late, because a cheap booking feels easy to drop.
  • Leave the moment someone else is $1 cheaper.

Customers who chose you for quality, reliability or convenience behave differently. They value the thing you’re good at, and they’re usually the ones who stay for years.

I’m not saying expensive customers are better people. I’m saying your price is a filter, and a very low price filters for the people who care most about price.

No margin, no quality

The other cost of cheap is that there’s nothing left over to get better.

Better equipment, a training course, insurance, a helper on busy days, a few minutes of slack in the schedule so you’re not rushing. All of these cost money or time. At $7.93 an hour, Linh can’t afford any of them. So the work stays the same, the customers stay price-first, and nothing changes.

A fair price isn’t greed. It’s the money that pays for doing the job well.


How to raise prices without drama

Most owners know they should charge more. What stops them is the conversation. Here’s how to make it boring.

1. Start with new customers

The easiest price rise is the one nobody has to hear about. Put the new price on your website and in your quotes for new customers, starting today. Keep existing customers on the old price for now.

This also tests the new price. If new customers still book, your fear was bigger than the risk.

2. Give existing customers notice

When it’s time to raise prices for regulars, give them notice. A month is a reasonable starting point. It’s respectful, it gives them time to plan, and it removes the feeling of being surprised.

3. Send a short, honest message

You don’t need a long apology. You don’t need to justify every cost. Something like this is enough:

Hi [Name], thank you for trusting me with [your home / your child’s lessons] over the past [time].

From [date, about a month away], my rate will be [new price]. My costs have gone up, and I want to keep doing the work properly.

Nothing else changes: same day, same time, same care. If you have any questions, just reply here. I really appreciate you.

Short. Clear. A date. A reason. No drama. Most people have seen prices go up everywhere. A polite message from someone who does good work rarely shocks them.

4. Use packages instead of a bare hourly rate

An hourly rate invites comparison. A package invites a decision.

Instead of “$24 an hour,” Linh could offer “a two-bedroom apartment, fortnightly, $X per visit, supplies included.” Or a tutor could offer “a 10-lesson term, paid upfront.” Packages are easier for the customer to understand, easier for you to plan around, and they reward regular customers without cutting your hourly price.

5. Set a minimum charge

Small jobs often cost you the most per hour, because the travel and messaging are the same as for a big job. A minimum charge, for example a minimum of 3 hours per visit, stops a 1-hour job from quietly eating a whole morning.

6. Add a cancellation fee

Remember Linh’s 2 lost hours a week? A simple rule fixes most of it: for example, cancellations with less than 24 hours’ notice are charged at 50%. Put it in writing before the first booking, so it’s never a surprise.

Most customers will never pay it. That’s the point. The rule makes people cancel earlier, and the earlier cancellations give you time to refill the slot.


What if some customers leave?

Some will. That’s normal, and it’s often fine.

Let’s go back to Linh’s original week and run the scenario owners fear most. She raises her price from $15 to $24, and loses a fifth of her paid hours. (Again, a fictional scenario to show the math, not a prediction.)

  • Paid hours drop from 25 to 20.
  • With fewer jobs, her unpaid hours drop from 10 to about 8, and her costs from $60 to about $50.
  • Paid: 20 × $24 = $480
  • Minus costs: $480 − $50 = $430
  • Minus 10% tax ($48): $430 − $48 = $382
  • Hours worked: 20 + 8 = 28
  • Real hourly rate: $382 ÷ 28 = about $13.64 an hour

Compare that to before: $277.50 for 35 hours, about $7.93 an hour.

So in this example, losing a fifth of her paid hours means Linh takes home more money in total while working 7 fewer hours a week. Those free hours can go into finding better-fitting customers, or into rest.

The customers who leave over a fair price are very often the ones who were costing you the most. Let them go kindly. Thank them. Some come back later, once they’ve tried the cheaper option.


Remove work, and the higher price makes sense

There’s one more way to make a higher price feel easy, for you and for the customer: take more work off their plate.

I wrote a whole essay on this idea: people don’t pay for features, they pay to do less. It applies to a cleaner or a tutor just as much as to software.

Look at the small annoying things your customer still has to do, and remove them:

  • Supplies included, so they never have to buy the right cleaning products.
  • A fixed recurring slot, so they never have to message you to book.
  • A short note or photo after each visit, so they don’t have to check.
  • One clear invoice a month, instead of a payment after every visit. (If you’re not sure who has paid, I explained a simple setup in Know Who Owes You: An Invoice and Payment Sheet for Small Businesses.)
  • Easy rescheduling within your rules, so changing a date doesn’t turn into a long chat.

Each of these costs you a little effort once, and saves the customer effort every week. That’s exactly the kind of value people are glad to pay for. It also changes the comparison. The customer is no longer comparing your hourly rate to a cheaper cleaner’s. They’re comparing “everything is handled” to “I have to manage it myself.”

That’s a much easier comparison to win. And as I argued in Boring Businesses Make the Best Businesses, the unglamorous jobs done reliably are the ones people pay for gladly.


The takeaway

Most small service businesses don’t charge too little because they’re bad at business. They charge too little because they priced by fear, copied a competitor, and only counted the hours they were paid for.

The fix is not complicated:

  1. Write down every hour for one week, paid and unpaid.
  2. Add up every cost, including tax and the slots lost to cancellations.
  3. Divide, and look at your real hourly rate honestly.
  4. Work out the price you need, then raise it calmly: new customers first, notice for regulars, a short honest message, packages, a minimum charge, a cancellation fee.
  5. Remove work for your customers, so the new price is clearly worth it.

A low price feels safe. But it’s not safe if it pays you half of what you think, fills your week with the hardest customers, and leaves nothing to do the job well.

Charge for the whole job, not just the visible hour.


Related: The Real Math of One Airbnb Unit: Where Every $100 Goes, People Don’t Pay for Features. They Pay to Do Less., and The One Google Sheet That Runs a Small Business.