A 28-person AI agency in Portland had a paradox. Half the leadership team was convinced the agency was understaffed โ project managers were scrambling to find available engineers for new projects. The other half was convinced the agency was overstaffed โ the CFO could see that utilization rates were only 62%, meaning nearly 40% of engineering time was not being billed. Both sides were right because the problem was not headcount โ it was visibility. Without a capacity dashboard, no one could see the full picture: which team members were overloaded, which were underutilized, which projects were overstaffed, and where the upcoming demand was coming from. They were making hiring and staffing decisions based on gut feel and complaints, not data.
After implementing a capacity dashboard, the picture became clear. Three senior engineers were running at 95% utilization and approaching burnout. Four junior engineers were at 45% utilization because they were not being assigned to projects that matched their skills. Two projects were double-staffed on DevOps because no one realized the same infrastructure work was being done independently by different teams. Within two months of having the dashboard, utilization improved from 62% to 74% without hiring a single person. The revenue impact was approximately $420,000 annually โ from better visibility alone.
A capacity dashboard is not a nice-to-have. It is the operational nervous system of your agency.
What a Capacity Dashboard Should Show
Your capacity dashboard needs to answer five questions at a glance.
Question 1 โ Who Is Available?
For every team member, show their current allocation across projects and their remaining available capacity.
Display format:
For each person, show a horizontal bar representing their 40-hour work week (or whatever your standard is). Color-code the bar by project allocation.
- Sarah Chen, Senior ML Engineer: Project Alpha (60%), Project Beta (30%), Available (10%)
- Marcus Johnson, Data Engineer: Project Alpha (80%), Available (20%)
- Priya Patel, Junior ML Engineer: Project Beta (40%), Internal R&D (20%), Available (40%)
Key metrics per person:
- Current utilization: Percentage of capacity allocated to billable projects
- Total allocation: Percentage of capacity allocated to all work (billable + non-billable)
- Available hours this week: Specific hours available for new work
- Available hours next 4 weeks: Forward-looking availability window
Question 2 โ What Does Demand Look Like?
Show the upcoming resource demand from your project pipeline โ both confirmed projects and high-probability pipeline deals.
Demand should be broken into three tiers:
- Confirmed demand: Signed projects that have not started yet or upcoming phases of active projects. These are resource commitments you have made.
- High-probability demand: Pipeline deals at 75%+ probability. These are likely commitments that you need to plan for.
- Speculative demand: Pipeline deals at 25-75% probability. These are possible commitments that should inform hiring discussions but not staffing decisions.
Display format: A timeline showing resource demand by skill type over the next 8-12 weeks. For each week, show the number of ML engineer hours, data engineer hours, project manager hours, and DevOps hours needed โ broken down by demand tier.
Question 3 โ Where Are the Gaps?
Compare supply (available capacity) against demand (confirmed and high-probability). Highlight gaps where demand exceeds supply.
Gap analysis should show:
- Skill-specific gaps: "We need 160 ML engineer hours in Week 7 but only have 80 available."
- Seniority gaps: "We need a senior data scientist for Project Gamma but only have junior data scientists available."
- Timing gaps: "Project Delta starts in 3 weeks and we do not have a project manager available until Week 6."
Color-code the gaps by severity:
- Green: Supply exceeds demand by 20%+ (comfortable buffer)
- Yellow: Supply and demand are within 20% (tight but manageable)
- Red: Demand exceeds supply (action needed โ hire, subcontract, or reschedule)
Question 4 โ What Is the Utilization Trend?
Show utilization over time โ not just the current snapshot. Trends tell you whether things are getting better or worse.
Display format: A line chart showing average team utilization by week over the last 12 weeks, with the target range highlighted (typically 70-80%).
Break utilization down by:
- Overall team: The headline number
- By role: ML engineers, data engineers, project managers, DevOps
- By seniority: Senior, mid-level, junior
- By individual: Identify outliers who are consistently over or under the target
Question 5 โ What Actions Are Needed?
The dashboard should not just display data โ it should surface actionable insights.
Automated alerts:
- Individual over 85% utilization for 3+ consecutive weeks: Burnout risk. Review allocation and reduce load.
- Individual under 50% utilization for 2+ consecutive weeks: Bench risk. Find project assignments or assign to internal work.
- Skill gap appearing within 4 weeks: Staffing action needed. Hire, subcontract, or reallocate.
- Overall utilization below 65%: Revenue risk. Pipeline or pricing discussion needed.
- Overall utilization above 82%: Capacity risk. Hiring or sales pacing discussion needed.
Choosing the Right Tool
You do not need to build a capacity dashboard from scratch. Several approaches exist, each with different tradeoffs.
Spreadsheet-Based (Good for Under 15 People)
A well-structured Google Sheet or Excel workbook can serve as an effective capacity dashboard for small teams. The advantages are zero cost, full customization, and no learning curve. The disadvantages are manual data entry, limited visualization, and difficulty scaling.
Recommended structure:
- Tab 1 โ Team Roster: Each person, their role, seniority, standard hours, and cost rate
- Tab 2 โ Project Allocations: Each project, the team members assigned, their percentage allocation, and the start/end dates
- Tab 3 โ Capacity View: Auto-calculated view showing each person's utilization, available hours, and assignment breakdown
- Tab 4 โ Demand Forecast: Upcoming project demand by skill type and week
- Tab 5 โ Gap Analysis: Auto-calculated comparison of supply vs. demand
Project Management Tool Integration (Good for 15-50 People)
Tools like Float, Resource Guru, Teamdeck, or the resource management features in Monday.com, Asana, and ClickUp offer built-in capacity planning. They pull allocation data from project plans and display capacity views automatically.
Advantages: Lower manual effort, real-time updates as project plans change, built-in reporting.
Disadvantages: Monthly cost per user, may not integrate with your existing PM tool, limited customization.
Recommended for: Agencies that already use a PM tool with resource management features or are willing to adopt one.
Professional Services Automation (Good for 50+ People)
Tools like Kantata (formerly Mavenlink), Parallax, Forecast, or Mosaic offer comprehensive resource management integrated with project financials, time tracking, and pipeline management.
Advantages: Single source of truth for capacity, utilization, and financial performance. Sophisticated forecasting and scenario planning. Designed for professional services.
Disadvantages: Higher cost ($30-100+ per user per month), implementation effort, may require process changes.
Recommended for: Agencies at scale where the cost of poor resource management justifies the investment.
Setting Up the Data Flow
A capacity dashboard is only useful if the data is accurate and current. Here is the data you need and where to get it.
People Data
- Source: Your HR system or team roster
- What you need: Name, role, seniority, standard weekly hours, cost rate (fully loaded salary / annual working hours), start date, planned departures
- Update frequency: When people join, leave, or change roles
Project Allocation Data
- Source: Your project plans and staffing decisions
- What you need: For each active project โ team members assigned, their role on the project, their percentage allocation, allocation start date, allocation end date
- Update frequency: Weekly, or whenever staffing changes occur
Time Tracking Data
- Source: Your time tracking system
- What you need: Actual hours worked by person, by project, by week
- Update frequency: Weekly (after timesheets are submitted)
Pipeline Data
- Source: Your CRM or pipeline tracker
- What you need: For each pipeline opportunity โ estimated resource needs by skill type, estimated start date, probability of closing
- Update frequency: Weekly, aligned with your sales pipeline review
The Critical Integration
The power of a capacity dashboard comes from combining planned allocation (what people are supposed to be working on) with actual time tracking (what people are actually working on). If your planned allocation shows Sarah at 80% on Project Alpha but her timesheets show she is only logging 60% to Alpha and 25% to unplanned work on Project Gamma, you have a staffing problem that is not visible in either data source alone.
Make sure your dashboard can show both planned and actual utilization side by side.
Building Capacity Planning Processes Around the Dashboard
The dashboard is a tool. The processes you build around it determine whether it actually improves your operations.
Weekly Capacity Review (15-30 Minutes)
Every week, your operations lead or delivery director should review the dashboard and address three things:
Immediate issues: Anyone over 85% or under 50% utilization? Any projects with staffing gaps in the next 2 weeks? Any team members with conflicting allocations?
Near-term planning: What projects are starting in the next 4 weeks? Are resources confirmed and available? Any gaps that need to be filled through hiring, subcontracting, or reallocation?
Trend monitoring: Is overall utilization trending up or down? Are specific roles or seniority levels consistently over or underutilized?
Monthly Capacity Planning Meeting (60 Minutes)
Monthly, bring together your delivery lead, sales lead, and operations lead for a capacity planning meeting.
Agenda:
- Pipeline review: What deals are likely to close in the next 60-90 days? What resources will they require?
- Supply assessment: What is our capacity posture? Do we have enough people? Too many? Wrong mix?
- Gap resolution: For each identified gap, decide on the action โ hire, subcontract, reallocate, or decline work.
- Hiring trigger review: Based on pipeline and utilization trends, should we start hiring for any roles?
Quarterly Strategic Resource Review (2 Hours)
Quarterly, take a longer view.
- Capability assessment: Do we have the right skills for where the market is going? Do we need to invest in upskilling, new hires, or partnerships?
- Team structure evaluation: Is our ratio of senior to junior appropriate? Are we top-heavy or bottom-heavy?
- Hiring plan: Based on revenue projections and pipeline, what hires do we need to make in the next quarter?
- Utilization target review: Are our utilization targets appropriate, or do they need adjustment based on business changes?
Common Capacity Planning Mistakes
Mistake 1 โ Planning at 100% Utilization
No one is productive 40 hours per week on billable client work. Between meetings, email, learning, mentoring, and administrative tasks, a realistic billable utilization target is 70-80%. Planning at 100% guarantees that everyone is overloaded and projects slip.
Mistake 2 โ Ignoring the Skill Dimension
Capacity is not just about hours โ it is about the right hours from the right people. Having 200 available hours from data engineers does not help when you need ML engineers. Your dashboard must track capacity by skill type, not just in aggregate.
Mistake 3 โ Not Including Non-Billable Work
Internal R&D, sales support, training, mentoring, and administrative work consume real capacity. If you do not account for these activities in your capacity planning, your available capacity numbers will be inflated and your team will be overcommitted.
Mistake 4 โ Reactive Hiring
If you wait until you have a staffing gap to start hiring, you are already 2-3 months behind. The hiring process for AI engineers takes 6-12 weeks from posting to start date. Your capacity dashboard should trigger hiring decisions based on pipeline forecasts, not current gaps.
Mistake 5 โ Static Allocations
Project needs change over time. A project that needed 80% of an ML engineer's time during model development only needs 20% during deployment. If your allocations do not reflect these phase-based changes, your capacity view will be inaccurate.
Advanced Capacity Metrics
Once your basic dashboard is in place, add these advanced metrics for deeper insights.
Revenue per available hour: Total revenue divided by total available billable hours. This tells you how effectively you are monetizing your capacity. Target varies by role mix, but track the trend.
Bench cost: Total cost of unutilized capacity (hours below the utilization target multiplied by fully loaded cost rates). This is the dollar cost of underutilization and should be tracked monthly.
Capacity volatility: Standard deviation of weekly utilization. High volatility means your workload is unpredictable, which makes planning harder and often indicates a pipeline or staffing issue.
Time to fill: When a capacity gap is identified, how long does it take to fill it (through hiring, subcontracting, or reallocation)? Track this to improve your response time.
Forecast accuracy: Compare your demand forecast against actual resource consumption. If your forecasts are consistently off by more than 20%, your pipeline data or estimation process needs improvement.
Your Next Step
Start with the simplest version possible. If you have under 15 people, open a spreadsheet and list every team member, their current project allocations, and their available capacity. Update it weekly. You will immediately see things you did not know โ who is overloaded, who has capacity, and where the gaps are. If you already have some capacity tracking, audit it against the five questions above. Does your current system tell you who is available, what demand looks like, where the gaps are, what the utilization trend is, and what actions are needed? If any of those are missing, add them. The goal is not a perfect dashboard on day one โ it is consistent visibility that improves over time.