All articles
Startups & BusinessSeptember 1, 2026 7 min read

The Bench Problem: How to Staff an Agency Without Paying People to Wait

Every agency owner I know has been burned twice: once by hiring too slow and losing a project, once by hiring too fast and paying salaries into a quiet month. Here's how we think about the bench.

The Bench Problem: How to Staff an Agency Without Paying People to Wait

Every agency owner I know has been burned twice: once by hiring too slow and losing a six-figure project because they couldn't staff it, and once by hiring too fast and paying senior salaries through a quiet quarter. The bench problem is the single most expensive mistake in the services business, and nobody talks about it honestly because it makes founders look like bad planners.

This is how we think about it — the models, the trade-offs, and the specific mistakes we've made so you don't have to.

Why the bench exists in the first place

Agency revenue is lumpy. You sign a discovery in March, the client disappears for six weeks on legal review, then wants three senior engineers starting Monday. Meanwhile a retainer client just quietly reduced scope and freed up two developers who are now billing zero.

The bench — the gap between people you're paying and people who are billing — is the physical manifestation of that lumpiness. You can't eliminate it. You can only decide who pays for it: you, the client, or the engineer.

The uncomfortable truth: a healthy agency runs at 70–80% utilization on delivery staff. If you're at 95%, you're either burning people out, refusing new work, or lying about timesheets.

The question isn't "how do we get to 100%?" It's "how do we make the 20–30% cost less than the projects it lets us win?"

The three staffing archetypes

Most agencies muddle these together and wonder why their P&L is confusing. Separate them explicitly.

1. The core bench (full-time employees)

These are the people who define your delivery quality. Tech leads, senior full-stack engineers, a couple of designers, a PM or two. They carry institutional knowledge, mentor juniors, and are the reason clients renew.

Rule of thumb we use: your full-time headcount should be sized to the floor of your revenue, not the average. If your worst quarter in the last two years still supported eight billable engineers, hire eight — not the twelve your best quarter could support.

Everything above the floor is variable capacity.

2. The fractional layer (part-time or retainer specialists)

Security, DevOps, ML, accessibility auditors, senior mobile — the roles you need on 30% of projects but can't justify full-time. We keep a small roster of people on standing retainers: guaranteed 20–40 hours a month at a modest discount, in exchange for priority access.

This is the layer most agencies underinvest in. They either hire a full-time DevOps engineer who's bored 60% of the time, or scramble to find one when a client asks about SOC 2.

3. The surge layer (vetted contractors)

The people you call when a project lands and you need three React engineers in two weeks. These are not random Upwork freelancers. They're people you've worked with before, who know your Git conventions, and who will bill you at a rate that still leaves you margin.

Building this roster takes years. Start now, even if you don't need it today.

The math nobody wants to do

Here's the calculation that changes how you hire. Assume a senior engineer costs you $10k/month fully loaded (salary, benefits, taxes, tools, share of overhead). They bill at $150/hour. A billable month is roughly 140 hours after PTO, internal work, and sales support.

Revenue at 100% utilization: 140 * $150 = $21,000
Revenue at 75% utilization:  105 * $150 = $15,750
Revenue at 50% utilization:   70 * $150 = $10,500
Cost:                                    $10,000

Margin at 75%: $5,750  (36%)
Margin at 50%: $500    (5%)
Margin at 40%: -$1,600 (loss)

A senior contractor at $110/hour costs you nothing when they're not working. Even if you pay them 30% more per hour than the fully-loaded internal rate, the break-even against a bench month is usually less than 60 billable hours.

So the real question when a project lands: do we believe this engineer will average above 60% utilization over the next 12 months? If yes, hire. If no, contract.

Pipeline signals that justify a hire

Gut feel is how agencies end up over-hired in Q1 and laying off in Q3. We use a simple weighted pipeline check before approving any full-time delivery hire:

  • Signed backlog: at least three months of committed work for the role, in writing, with deposits taken.
  • Weighted pipeline: at least six months of additional work at 40%+ probability. We weight opportunities by stage — a signed MSA with active SOW discussion is 70%, a warm intro is 15%.
  • Repeat client density: what fraction of the pipeline is from clients you've delivered for before? Below 40% and your forecast is fantasy.
  • Sales cycle length: if your average cycle is four months, you need to see demand now for hires that start in six weeks.

If all four green-light, hire. If one is yellow, hire a contractor with an option to convert. If two are yellow, don't hire.

The contractor-to-employee funnel

The cleanest way we've found to de-risk hiring: work with someone as a contractor first. Two or three projects, ideally including at least one difficult client. You learn how they handle scope pushback, code review disagreements, and shipping under pressure. They learn whether they actually want to be in your Slack every day.

When it's time to convert, the offer is easier because both sides have data. And if it doesn't convert, you've still built roster depth.

We now hire almost no full-time engineers cold. If someone hasn't shipped at least one project with us as a contractor, the interview loop is treated as extra-skeptical, not extra-optimistic.

What to pay contractors

A common mistake: paying contractors so little that they treat you as filler work between better clients. If your bill rate is $150 and you pay a contractor $60, they will ghost you the moment a $110 client calls.

We aim for contractor pay at roughly 55–65% of bill rate for senior roles. Yes, that's less margin than a fully-utilized employee. But it's guaranteed margin, and the contractor takes your calls.

Managing the bench when it exists anyway

Even with disciplined hiring, you'll have benched people. Don't pretend they're on "internal projects" and let them drift. Bench time is a budget, and it needs a plan.

What works for us:

  • Two weeks max on any single internal initiative. Longer than that and it becomes a fake project with no accountability.
  • Publishable output. Bench work should produce something — a case study, an internal tool, an open-source contribution, a talk. Something that pays back in marketing or recruiting.
  • Sales support quota. Senior engineers on bench spend at least a few hours a week on pre-sales: scoping calls, technical write-ups for proposals, discovery workshops. This is the highest-leverage use of bench time and most agencies waste it.
  • Named owner. Someone — usually a delivery lead — owns bench allocation the same way a PM owns a project. Otherwise it becomes nobody's problem.

The mistakes we've made

A short list, in case any of these look familiar:

  1. Hiring against a single large client. They renegotiate, and suddenly 40% of your team is idle. Never let one client fund more than one hire's worth of new headcount.
  2. Treating the bench as a recruiting reserve. "We'll keep them on because we'll need them next quarter." Sometimes true, often expensive. Run the math quarterly.
  3. Contractor pay races to the bottom. You save 15% on hourly and lose the person to a competitor mid-sprint.
  4. No conversion path. Great contractors want to know whether full-time is on the table. If it's never on the table, they leave.
  5. Confusing utilization with productivity. A team at 95% utilization ships worse code, has more escaped defects, and burns out. The bench is a feature, not a bug.

Where we'd start

If you're an agency founder reading this with a nervous feeling about next quarter, do three things this week.

First, calculate your true utilization for the last six months — billable hours divided by paid hours, per person. Not the number in your PSA tool. The real one. You'll probably find it's 10–15 points lower than you think.

Second, list every full-time delivery hire you've made in the last 18 months. For each, ask: was this against signed backlog, or against a hope? The pattern will tell you where your hiring discipline breaks.

Third, start the contractor roster if you don't have one. Reach out to three former colleagues or ex-employees this week. You don't need work for them right now. You need the relationship in place for when you do.

The agencies that survive lumpy years aren't the ones with the biggest teams. They're the ones who decided, on purpose, which costs to make fixed and which to keep variable — and had the roster to back it up. If you want to see how we structure delivery teams for our own client work, our services page is a reasonable place to start.

#agency operations#hiring#engineering management#pricing

Want a team like ours?

72Technologies builds production software for the kind of teams who actually read this blog.

Start a project