Why small freelance jobs pay the worst: work out your minimum job size

Not because the rate is lower. Every job carries an hour around it: the request, getting back into the project, the handover, the invoice. That hour is the same on a 2 hour fix and a 20 hour project, so it divides small jobs hardest, and one formula gives you the smallest job that still clears your floor.

CronLoom 8 min read

Not because the rate is lower. The rate on a small job is usually the same one you charge for everything else. What is different is the hour around it: working out what the client wants, getting back into the project, testing and handing over, writing the invoice. That hour does not shrink with the job. Bill 90 with a floor of 80, and a 2 hour job pays 60 for every hour it really took, while a 20 hour job pays 86. Below 8 billed hours, every job lands under the floor. That size is your minimum, and it takes one line to work out.

What is the hour around a job?

It is everything a job needs that is not the job.

Twenty minutes of email, or a short call, to work out what “can you just change the header” actually means. Fifteen minutes getting back into the project: the repository, the design file, the login that expired since last time. Fifteen minutes testing the change and telling the client it is live. Ten minutes for the invoice, or for adding a line to the next one.

Your own minutes will differ. The shape will not. None of those steps grows when the job grows, and none of them disappears when the job is small. A 2 hour fix and a 20 hour project both need to be understood, picked up, handed over and billed, once each.

This is not the same as onboarding a new client. Onboarding happens once per client and is gone by the second project. The hour around the job comes back on every request, including from the client you have worked with for five years. It is also almost never billed, which makes it non-billable time that belongs to one specific job rather than to the business.

Why does a small job pay less per hour than a big one?

Because the hour around it is divided by fewer hours of work. The arithmetic is the same division as always: what the job paid, over every hour it took.

Take a rate of 90, a floor of 80, and one hour around every job.

Job Billed Hours it took Effective rate
2 hours 180 3 60
6 hours 540 7 77
20 hours 1,800 21 86
Three jobs billed at 90 dollars an hour, each with one hour of work around it. The 2 hour job pays 60 dollars per hour it took and the 6 hour job pays 77, both under the 80 dollar floor. The 20 hour job pays 86, above it. Floor $80 2 hours $60/h 6 hours $77/h 20 hours $86/h
Same rate on every invoice, one hour around every job. Only the job big enough to absorb that hour clears the line.

Every invoice in that table says 90 an hour, and every invoice is correct. The 2 hour job still paid a third less than you charge, because a third of its hours were the hour around it. On the 20 hour job, the same hour is a rounding difference.

That is why small jobs feel worse than the numbers you see. The numbers you see are the invoices.

How small is too small?

There is a job size where the hour around it stops pulling the job under your floor. Call it the break-even job.

Break-even job = hour around the job × floor ÷ (rate − floor)

At a rate of 90 and a floor of 80, with one hour around each job:

1 × 80 ÷ 10 = 8 billed hours, or 720.

Check it: an 8 hour job bills 720, takes 9 hours, and pays exactly 80. Anything smaller pays under the floor. Anything larger clears it.

The part of the formula worth looking at twice is the bottom. The gap between your rate and your floor decides how big a job has to be.

Rate Floor Gap Break-even job
100 80 20 4 hours
90 80 10 8 hours
85 80 5 16 hours

At 100 against a floor of 80, a 4 hour job still holds the floor. At 85 against the same floor, it takes two full days of work before the hour around the job stops showing. If your rate sits close to your floor, small jobs are not a little worse for you. They are under the line by construction.

The top of the formula moves it too. Get the hour around a job down to 30 minutes and the break-even at 90 and 80 drops from 8 hours to 4.

Minimum fee, a line on the invoice, or batching?

There are three fixes, and they do not catch the same jobs.

Put the hour on the invoice as its own line. A flat charge for setup and handover, one hour at your rate, on every job. The 2 hour fix becomes 270 across 3 hours, which is 90. The 20 hour project becomes 1,890 across 21 hours, which is also 90. This is the only one of the three that works at every size, because it prices the part that is actually constant. Trades have done it for a long time. A plumber bills the call-out, not just the twenty minutes under the sink, and building suppliers give small trade firms the same advice for small jobs: a minimum order value and flat call-out fees (Raab Karcher, in German).

Set a minimum charge. “Small changes are billed at a minimum of three hours.” That is 270 for anything up to 2 hours, and it rescues the smallest jobs: a 2 hour fix at 270 pays 90 across its 3 hours. It does nothing for the middle. A 5 hour job is past the minimum, bills 450, takes 6 hours, and pays 75. With a break-even of 8 hours, every job from just over 2 hours up to 8 stays under the floor.

Batch the small requests. Collect them and do them together, so the hour around them is paid once. Four 2 hour requests done separately bill 720 across 12 hours, which is 60. Done as one batch on a Friday with one hour around it, the same 720 covers 9 hours, which is 80. The client gets the same work a few days later. If the requests keep arriving every month, the batch has turned into a retainer, and it wants to be priced like one.

There is also the fix nobody likes saying out loud. Below a certain size, the answer is no, or a referral to someone for whom it is not small.

What to do before the next small request arrives

Log the hour on the job. Not in a general admin bucket. The email thread, the setup, the handover and the invoice belong to that job. Filed as admin they get spread across every client until nobody can see them. Log them as non-billable on the job itself and the division has something to divide.

Measure your own hour. Do it on the next three or four small jobs. Maybe it is forty minutes, maybe ninety. The example here uses sixty because it keeps the arithmetic easy, not because it is anyone’s average.

Work out your break-even size once. Your hour, times your floor, divided by the gap between your rate and your floor. Write the number down.

Decide the rule before a client asks. A setup line, a minimum, or batching. It is the same logic as a half-day rule for a day rate: easy to decide in advance, hard to invent on a call with the request already sitting in your inbox. One sentence in your terms is enough: “Small changes are collected and done on Fridays, with a flat hour for setup and handover.”

Where CronLoom comes in

CronLoom has no minimum fee setting, and it does not send invoices. What it has is the division, with the non-billable hours kept in it.

If you bill the job by the hour, log the work as billable and the hour around it as non-billable on the same project. The non-billable hour stays out of the revenue and stays in the hours, so the client’s effective rate in analytics carries it, drawn against the floor you set. A client who sends ten small requests a month shows up there as the client they actually are.

If you price the job flat, set it up as a fixed-fee project. Log the email thread and the handover against it like any other hour, and the project reads out what the fee worked out to: a 180 fix across 3 hours shows 60, flagged below your floor of 80.

The effective hourly rate calculator does the single division if you want to check one job by hand. If you want the number running per client while the hours happen, join the waiting list.

Try it on your last small job

Find the most recent job that took less than a day. Add up everything around it: the messages before, the minutes getting back in, the handover, the invoice. Add that to the billed hours and divide what the job paid by the total.

Then work out your break-even size, and count how many of last month’s jobs were smaller than it.

Questions, answered straight

Frequently asked questions

Are small freelance jobs worth taking?
Only above a certain size, or with the hour around them priced in. A small job needs the same work around it as a big one: working out the request, getting back into the project, handing it over, invoicing. At a rate of 90 with one such hour, a 2 hour job pays 60 for every hour it really took, while a 20 hour job pays 86.
How do I work out a minimum fee as a freelancer?
Start from the break-even job size: the hour around a job times your floor, divided by the gap between your rate and your floor. At a rate of 90 and a floor of 80 with one hour around each job, that is 80 divided by 10, so 8 billed hours or 720. Every smaller job pays under your floor unless the hour around it is priced in.
Should I charge a setup fee for small client requests?
A flat line for the hour around the job is the simplest fix, and trades have priced call-outs that way for a long time. On a 2 hour job at 90 it turns 180 across 3 hours into 270 across 3 hours, which is the 90 you quoted. If a client pushes back, offer to batch their small requests instead, so the hour is paid once.

Put numbers to it

Every hour, accounted for.

You set a floor rate; CronLoom flags the clients and fixed bids that slip below it, and projects where the month lands.

Join the waiting list

No credit card · later flat €/$9