Agency capacity planning is not counting hours. It is counting how many clients one person can hold in their head before quality slips. Our 1-page sheet tracks 3 things per account: hours spent, hours lost to re-explaining the client, and where the client context lives. Below is the full template to copy.
Capacity is not hours. It is memory.
Most agency owners plan capacity with a timesheet. Hours in, hours billed, hours left over. Then they wonder why a team that looks half booked feels buried.
Here is the shift. An account manager does not run out of hours first. They run out of memory. Each client brings its own goals, voice, approvers, history and landmines. Somewhere around 4 to 8 accounts, the head is full.
After that, every new client costs more than its hours. It costs re-briefs. It costs "quick questions" to senior people. It costs mistakes that need a second round.
So the sheet does not ask "how many hours do we have?" It asks "how much of our time goes to remembering the client instead of serving the client?"
Why your current capacity plan is lying to you
It is not your fault. Timesheets were built to bill, not to diagnose.
There is no column for "explained this client to a new designer again." There is no column for "rewrote the AI draft because it did not know the client hates the word cheap." That time gets logged as delivery. So it looks like work. It is really a leak.
I learned this scaling a 25-person agency. The bigger it got, the less profitable it became. The hours looked fine. The re-explaining was eating us alive. So I documented every single job, and rebuilt each one as AI.
That mapping became this sheet. We fill it in before every install of Portable Delivery Intelligence. It tells us where the time leaks and how many more accounts each person could carry.
Part 1: The account table
1 row per active client. Pull 2 full weeks of real data. Do not guess. Guessed hours are always low.
| Client | Services | Monthly fee | Hours planned / mo | Hours actual / mo | Re-brief hours / mo | Senior touches / mo | Approval rounds per deliverable | Context score (0 to 3) | Account owner |
|---|---|---|---|---|---|---|---|---|---|
| Client A | |||||||||
| Client B | |||||||||
| Client C |
What each column means and how to get it:
- Services. What you deliver. Paid search, SEO, content, email. One line.
- Monthly fee. The retainer. Use the contract, not the invoice.
- Hours planned. What you scoped when you priced it.
- Hours actual. Pull from your time tracker. Double the 2 week total for a monthly figure.
- Re-brief hours. Time spent explaining the client to a teammate, a freelancer or an AI tool. Ask the team to tag it for 2 weeks. Search Slack for "what does [client] want" and "can you remind me."
- Senior touches. How many times a founder or director got pulled in. Count Slack mentions, calendar invites and review requests.
- Approval rounds. Average number of revision cycles before the client signs off.
- Context score. Where does this client's strategy and rules live? Score it below.
- Account owner. 1 name. If you write 2 names, you found a problem.
The context score is simple:
| Score | What it means |
|---|---|
| 0 | It lives in someone's head |
| 1 | It is scattered across docs, Slack and email |
| 2 | It is in one doc, but your AI tools cannot read it |
| 3 | It is in one place, connected to the AI tools your team uses |
Part 2: The people table
The account table shows where time goes. The people table shows who is drowning.
1 row per person who touches client work.
| Person | Role | Accounts carried | Delivery hours / wk | Re-brief hours / wk | Internal meeting hours / wk | Times pulled into others' accounts / wk | Accounts they say they could add |
|---|---|---|---|---|---|---|---|
| Name | |||||||
| Name |
2 notes on filling it in.
- Accounts they say they could add. Ask each person directly. Their answer is often lower than the math says. That gap is stress, and stress is data.
- Times pulled into others' accounts. This shows you who the human database is. Usually it is your best person. Usually they are the most burned out.
Part 3: The 3 numbers at the bottom
The bottom of the page holds 3 numbers. These are the ones we talk about on the call.
| Number | How to calculate it | What it tells you |
|---|---|---|
| Effective hourly rate per account | Monthly fee divided by hours actual | Which clients are quietly unprofitable |
| Leak ratio | Re-brief hours divided by hours actual | How much delivery time is really remembering |
| Accounts per person | Active accounts divided by account managers | Where you sit against the 4 to 8 ceiling |
Write all 3 for the agency as a whole. Then write them for your 3 worst accounts. The worst 3 tell the story faster than the average.
How we read the sheet before an install
Hype is not a plan. Data is. Here is what we look for once the sheet is full.
Pattern 1. Low context score, high re-brief hours. The team knows the work. They just keep re-learning the client. This is the best case for an install, because the fix is storing context, not training people.
Pattern 2. 1 person with high "pulled in" counts. You have a human database. The goal is to get what is in their head into a place everyone, and every AI tool, can read. Then they get their week back.
Pattern 3. High approval rounds on a few accounts. The client's rules were never written down. The team is guessing, and the client is correcting. Capture the rules once and the rounds drop.
Pattern 4. Low effective hourly rate with low re-brief hours. That is a pricing problem, not a capacity problem. No system fixes an underpriced retainer.
Then we pick 1 account for the Land step. It is usually the one with the worst leak ratio and a willing owner. 1 service goes live in days, on real client work.
From there, Expand moves every account onto the system. Scale is when your team or ours runs it, priced per account. 4 to 8 accounts per account manager is the common ceiling. 18 to 25 is our per-operator target with Portable Delivery Intelligence in place.
For more on how the numbers fit together, see our page on agency capacity.
Why this sheet, and not a bigger one
You could track 40 columns. Nobody would fill them in. 1 page gets filled in. That is the whole reason it works.
The sheet comes from the same mapping behind our "25 to 1" model. 1 operator plus the system carries the work a 25-person marketing team used to carry. That is from our internal mapping. The same delivery system has supported $7M in client revenue. We hold 42 verified Upwork reviews, 5.0, Top 1% Expert-Vetted. Clients include Bowen eBikes and Kajeet. See the proof.
FAQ
How long does it take to fill in the sheet?
Plan on 2 weeks of light tagging so the re-brief and senior touch numbers are real. The rest comes from your contracts and time tracker.
What if my team does not track time?
Use calendars and Slack for 2 weeks. Ask each person to note re-brief time at the end of each day. Rough real data beats a clean guess.
What is a good leak ratio?
We do not publish a target, because it depends on your services. Compare your accounts to each other. The ones far above your own average are where the install starts.
Can I use this sheet without AGL?
Yes. Copy it, fill it in, and act on it. If you want us to read it with you, bring it to the mapping session.
Bring one client account. We map where your team's time leaks and how many more accounts each person could carry. You keep the map either way. Book your mapping session here.