Back to Thoughts
Capacity Model
SaaS Finance May 16, 2026 6 min read

Building a Capacity Model That Actually Runs the Business

Most capacity models are built to answer one question: how many reps do we need to hit the number? That's not a bad question. It's just not nearly enough.

The model I use is designed to do three jobs. It sets the annual plan. It then runs as a live operating tool every month after that — same model, same structure, no rebuilding. And when the business moves in a direction you didn't plan for, it lets you run scenarios fast enough to course-correct before a Q2 problem becomes a Q4 disaster.

"That shift — from model-maintenance to analysis — is the whole point."

That last part is what most models can't do. They're built once, used for the board deck, and then slowly become wrong. This one gets more accurate every month and lets you steer in real time.

Practical Tool

Get the GTM Capacity Model

Download the exact spreadsheet framework I use to run annual planning and live scenario modeling.

Download Excel Model

When CRM actuals come in, they replace forecasts automatically based on a single cutoff date. The team stops spending close week wrestling with the plumbing and starts spending it on the business — understanding why performance is where it is.

What goes in

Four key pillars feed the model, ensuring it remains both granular and flexible:

The Roster Every quota-carrying rep, individually, with their start date and segment. Precision flows into true ramped capacity.
The Hiring Plan Distinct from the roster — tells the model when the next person hits their seat and when they become productive.
CRM Bookings The fuel that turns the model from a static forecast into a living tool that updates itself monthly.
Global Variables The levers leadership pulls: quota levels, ramp curves, attrition, and seasonal growth targets.

The problem most models have — and how I solved it

Add a new product tier. Extend the timeline from three years to five. Change your segment definitions mid-year. In a typical model, any of these means a few days of formula rewrites.

I built this one so that it retrieves data by identity — "Enterprise Tier," "SMB," "APAC" — rather than by cell address. Adding a new tier means adding a row to the schema. The formulas don't change. The formatting adjusts automatically.

Timing is everything: the ramp-seasonality problem

A rep who joins in September and takes four months to ramp is contributing almost nothing to Q4. Depending on your seasonality, that's either fine or a serious miss — and the difference is in how you plan the hiring batches.

The model is built around ramp-lag synchronization: aligning when classes of reps are hired so they hit full productivity exactly when the business needs them most. In the Middle East, you're planning around Ramadan. In Europe, the summer slowdown. The model handles all of it natively.

Running scenarios live

The question I get asked most often in board meetings isn't "what's the base case." It's "what happens if."

The model can answer any of these in real time — toggle a variable, see the output cascade through ramped capacity, the commitment delta, and the P&L. No follow-up email. No "let me check and come back to you."

On the outputs

I'm fairly opinionated about how financial models should look. Historical periods are shaded so it's immediately clear they're locked. The forecast zone stays white — that's where active thinking happens. Quarter and year boundaries get explicit whitespace.

A board member or CFO picking up this model for the first time should be able to orient themselves in about thirty seconds. That's the bar I build to.