Under the assumptions below, a full-time bookkeeper costs about $5,212 a month, and a $45-an-hour freelancer costs the same at about 116 hours a month. At 2.7 minutes of hand work per statement line, that is about 2,600 lines a month. Below that, paying for hours is cheaper. Above it, salary starts to win.
Writing it as code makes every input a knob. Change the rate, the minutes per line or the benefits, and the break-even moves. I work on ZeraBooks, and owners ask this often enough that it was worth making explicit.
Where do the bookkeeping cost inputs come from?
const BLS_MEDIAN_HOURLY = 24.36; // BLS, May 2025, bookkeeping clerks
const BLS_MEDIAN_YEARLY = 50670; // same source
const EMPLOYER_FICA = 0.0765; // 6.2% Social Security + 1.45% Medicare
const BENEFITS_YEARLY = 8000; // assumption, not data
const FREELANCE_HOURLY = 45; // assumption, not data
const HOURS_PER_LINE = 8 / 180; // assumption: 8 hours for 180 lines
The last line is the one people argue about. Eight hours for 180 lines is about 2.7 minutes a line, covering categorizing and reconciling by hand. A messy month takes longer, a clean month with recurring vendors less. Treat it as a starting point and measure your own.
Full time is the only option whose cost doesn't move with volume. That is the whole problem with it for a small business.
How do you model monthly bookkeeping cost by volume?
type Option = { name: string; monthly: number };
const FULL_TIME = (BLS_MEDIAN_YEARLY * (1 + EMPLOYER_FICA) + BENEFITS_YEARLY) / 12;
const round = (n: number) => Math.round(n * 100) / 100;
function monthlyCosts(lines: number): Option[] {
const hours = lines * HOURS_PER_LINE;
return [
{ name: "full-time", monthly: round(FULL_TIME) },
{ name: "part-time", monthly: round(hours * BLS_MEDIAN_HOURLY * (1 + EMPLOYER_FICA)) },
{ name: "freelance", monthly: round(hours * FREELANCE_HOURLY) },
];
}
function breakEvenLines(): number {
return Math.ceil(FULL_TIME / FREELANCE_HOURLY / HOURS_PER_LINE);
}
Where is the break-even point?
| Lines a month | Hours | Part-time employee | Freelancer | Full-time |
|---|---|---|---|---|
| 180 | 8.0 | 209.79 | 360.00 | 5,212.19 |
| 450 | 20.0 | 524.47 | 900.00 | 5,212.19 |
| 1,500 | 66.7 | 1,748.24 | 3,000.00 | 5,212.19 |
| 2,600 | 115.6 | 3,030.28 | 5,200.00 | 5,212.19 |
breakEvenLines() returns 2,607: the first whole line count where the freelancer's bill passes the salary.

The output a monthly service delivers instead of hours: a read-only dashboard for a closed month.
What does the bookkeeping cost model leave out?
Plenty, and it is worth being honest about it.
- Part-time looks cheapest at every volume because it carries no benefits. In practice, finding a reliable person for 8 hours a month is hard, and turnover resets the learning curve.
- Payroll and inventory add work that isn't proportional to statement lines. Twice-monthly payroll adds a fixed chunk to every period.
- Catch-up is a one-time cost on top of any option. Six months behind means the first quote includes that.
- A monthly service isn't in the table, because its price is quoted rather than computed. Price your own line count here, then compare with the fixed quotes you get.
How should you use the model?
Count last month's lines across every bank and card statement, plug in your local freelance rate, and see which side of the break-even you sit on. Most small businesses land far below it.
const myLines = 320;
console.table(monthlyCosts(myLines));
The page this model comes from walks through the same numbers in plain English, with the BLS wage table and what pushes the price up: how much a bookkeeper costs, priced four ways.
Key takeaways
- Full-time at the BLS median plus 7.65% and $8,000 of benefits: $5,212.19 a month.
- Break-even with a $45/hour freelancer: 2,607 lines a month at 8 hours per 180 lines.
- Every input is an assumption you should replace with your own.
- Fixed monthly services are quoted, so compare them against your computed hourly figure.
FAQ
What does a bookkeeper earn per hour in the U.S.?
The BLS median was $24.36 an hour in May 2025, or $50,670 a year.
Why does the part-time line look so cheap?
It carries only payroll tax, no benefits, and assumes you can hire someone reliable for 8 hours a month, which is often the hard part.
Is software alone cheaper than a bookkeeper?
In money, yes: ZeraBooks software is $79 a month billed annually or $149 monthly. In time, it depends on you, since you still review and close each month.
Disclosure: I'm on the ZeraBooks team. ZeraBooks bookkeeping services are a fixed monthly fee from $150 in U.S. dollars, quoted after a free call, worked from uploaded statements rather than bank feeds.
Top comments (0)