12-Month Rolling Capacity Planning Model
Ties the hiring plan to the revenue target month by month across headcount, ramp status, and pipeline coverage, so hiring decisions are triggered by a visible gap instead of a gut feeling.
What's inside
- Core formulas: ramp schedule, effective weighted capacity, capacity gap $/%, pipeline required, hiring lead-time rule
- A fill-in assumptions block for your own team before building the table
- A fully worked 12-month example (20 ramped reps, 2 hiring waves, 2 departures)
- Month-by-month headcount, effective capacity, target, gap $, gap %, and required pipeline columns
- Narrative read of the worked example showing why the Month-7 hires were already needed by Month 4
- 4-step instructions for rolling the model forward every month
What this does: Ties your hiring plan to the revenue target month-by-month, so "we need to hire" is a data-backed statement tied to a specific gap, not a gut feeling in Q3.
Core formulas
- Ramp Schedule — define once, e.g.: Month 1 of tenure = 0% of quota, Month 2 = 25%, Month 3 = 50%, Month 4 = 75%, Month 5+ = 100%. (Adjust to your actual time-to-first-deal.)
- Effective (Weighted) Capacity for a given month = Σ over every quota-carrying rep of (their ramp % that month × their monthly quota)
- Capacity Gap ($) = Effective Capacity − Monthly Revenue Target
- Capacity Gap (%) = Capacity Gap ÷ Monthly Revenue Target
- Pipeline Required = Monthly Revenue Target × Required Coverage Ratio (commonly 3–4x; use your own historical win-rate-derived ratio)
- Hiring Lead Time Rule = Time-to-fill + Ramp-to-full-quota months. If your gap shows up in Month 9 and lead time is 5 months, the hiring decision has to be made by Month 4 — not Month 9.
Assumptions block (fill in before building your table)
| Assumption | Your Input |
|---|---|
| Current ramped headcount | |
| Monthly quota per fully-ramped rep | |
| Ramp curve (months to 100%) | |
| Planned new hires and start months | |
| Expected attrition (rep + month) | |
| Monthly revenue target (annual plan ÷ seasonality) | |
| Required pipeline coverage ratio | |
| Average time-to-fill a req |
Worked example
Assumptions used: 20 fully-ramped AEs at $100K/month quota each; 4-month ramp (0/25/50/75/100%); 2 new hires start Month 1, 2 more start Month 7; 1 departure end of Month 5, 1 departure end of Month 9; flat monthly target $2.0M; required coverage 4x.
| Month | Start HC | Hires | Departures | End HC | Effective Capacity | Monthly Target | Gap $ | Gap % | Pipeline Required (4x) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 20 | +2 | – | 22 | $2,000,000 | $2,000,000 | $0 | 0% | $8,000,000 |
| 2 | 22 | – | – | 22 | $2,050,000 | $2,000,000 | +$50,000 | +2.5% | $8,000,000 |
| 3 | 22 | – | – | 22 | $2,100,000 | $2,000,000 | +$100,000 | +5.0% | $8,000,000 |
| 4 | 22 | – | – | 22 | $2,150,000 | $2,000,000 | +$150,000 | +7.5% | $8,000,000 |
| 5 | 22 | – | -1 | 21 | $2,200,000 | $2,000,000 | +$200,000 | +10.0% | $8,000,000 |
| 6 | 21 | – | – | 21 | $2,100,000 | $2,000,000 | +$100,000 | +5.0% | $8,000,000 |
| 7 | 21 | +2 | – | 23 | $2,100,000 | $2,000,000 | +$100,000 | +5.0% | $8,000,000 |
| 8 | 23 | – | – | 23 | $2,150,000 | $2,000,000 | +$150,000 | +7.5% | $8,000,000 |
| 9 | 23 | – | -1 | 22 | $2,200,000 | $2,000,000 | +$200,000 | +10.0% | $8,000,000 |
| 10 | 22 | – | – | 22 | $2,150,000 | $2,000,000 | +$150,000 | +7.5% | $8,000,000 |
| 11 | 22 | – | – | 22 | $2,200,000 | $2,000,000 | +$200,000 | +10.0% | $8,000,000 |
| 12 | 22 | – | – | 22 | $2,200,000 | $2,000,000 | +$200,000 | +10.0% | $8,000,000 |
Read this the way a planning committee should: the gap narrows to +5% in Months 6–7 right after the two departures — that dip is exactly why the Month-7 hires were already in motion, not a reaction. Without them, Months 9–12 would show a growing shortfall instead of a steady +10% cushion.
How to roll it forward
- At the start of every month, drop the oldest month off the left and add a new Month 12 on the right using your latest attrition and hiring assumptions.
- Re-forecast attrition risk quarterly using your own regretted-attrition data, not a flat annual %.
- Any month showing a negative gap that falls inside your hiring lead-time window is a hiring trigger — flag it to the exec team immediately, not at the next quarterly business review.
- Reforecast the whole model whenever the annual revenue target changes materially (>5%).
How to use it
Copy the table into a spreadsheet, replace the worked-example assumptions with your own headcount/ramp/attrition numbers, and re-roll it monthly so hiring requests are triggered by a visible future gap rather than a reaction to a missed quarter.