← All articles

GTM Operations

Your $2.4M Plan Is Really $600K: Ramp-Adjusted Capacity

Top-down targets are a number nobody can defend. Here is the driver-based capacity model built from reps, ramp, quota, and attainment, with the query to stand it up.

· 12 min read

The number was $2.4M and nobody in the room could tell me where it came from. Q1 target for a team of twelve reps. I asked how we got there and the answer was twelve reps times a $200K quarterly quota, so $2.4M. Clean. Defensible-sounding. Wrong by a factor of four. Eight of those twelve reps were hired inside the last two quarters and were still ramping. Nobody had adjusted for that. The plan assumed a fully-ramped rep in every seat on day one, and it set the whole quarter chasing a number that the actual capacity of the team could not produce. We booked around $700K. The miss was not a performance problem. It was a math problem baked into the plan.

A top-down number feels like planning because it arrives as a target. It is not planning; it is a wish with a decimal point. Driver-based planning builds the number from the bottom up, from the four things that produce revenue: how many reps you have, where each one sits on the ramp curve, what their quota is, and what fraction of quota this segment historically attains. Multiply those out and you get a capacity number you can defend line by line. Do the ramp-adjusted math on that same twelve-rep team and the real number was closer to $600K, not $2.4M. Here is how to build the model, with the query to pull it from Salesforce.

$600K
Ramp-adjusted capacity of the team
$2.4M
The top-down number nobody could defend
42.7%
Avg quota attainment, all reps (RepVue Q2'25)

Watch the $2.4M shrink to what twelve reps can book before you read the argument. Each stage below strips a fiction out of the nominal number: first ramp, then attainment. The dense field is the headcount math the top-down plan trusted. The disc that survives is the plannable number the drivers produce. This is the capacity build the rest of this piece stands up, driver by driver.

From nominal headcount to plannable capacityThe $2.4M dissolves to what the team can book
$2.4MNominal capacity12 reps times a $200K quota. $2.4M. Every seat counted at full quota from day one.

The top-down number multiplies a fiction

Twelve reps times $200K is arithmetic, not planning, because it multiplies two numbers that are both fictions for most of the team. The first fiction is that every seat holds a fully-ramped rep. On this team, only four were. The second fiction is that a rep carries their full quota from day one, when a rep three months into a six-month ramp produces at maybe half of a ramped rep, and a rep in month one produces close to nothing.

Driver-based planning replaces the two fictions with four drivers you can each pull from a system: rep count by ramp stage, the ramp attainment curve, quota per rep, and historical attainment by segment. The number falls out of the drivers. When someone asks where the target came from, you point at the drivers, not at a round number someone said in a meeting.

Two ways to get a number Top-down asserts the number; driver-based builds it
Top-down12 repsx $200K quota$2.4Massumes all rampedDriver-basedreps x rampx quotax attainment$600K
The top-down path multiplies two fictions and lands on $2.4M. The driver-based path multiplies four measured inputs and lands on $600K. Only one survives the question 'where did that come from?'

Ramp is the driver everyone forgets

The single input that broke the $2.4M plan was ramp. A new rep does not produce at quota on day one; they climb a curve over three to four months to first productivity and longer to full quota carry. On this team, eight of twelve reps were mid-climb, so most of the seats were producing a fraction of what the plan assumed.

Model ramp as a productivity multiplier per rep, keyed to months of tenure. A rep past full ramp carries 1.0. A rep halfway up carries maybe 0.5. A rep in their first month carries close to 0. Here is the team, seat by seat:

Rep cohortRepsRamp stageProductivity multiplierQuotaEffective capacity
Fully ramped4Past 6 mo1.0$200K$800K
Mid-ramp4~3 mo0.5$200K$400K
Early ramp4~1 mo0.1$200K$80K
Total nominal12$2.4M
Total ramp-adjusted12$1.28M

Ramp alone cuts the number from $2.4M to $1.28M. The top-down plan was already off by nearly half before we accounted for the fact that even ramped reps do not all hit quota. This ramp-adjusted read matches the pattern the GTM planning guide flags: twelve reps at a six-month ramp producing at 50% is $600K of real early capacity, not the nominal number the headcount implies.

Then apply attainment, because ramped is not the same as hitting

A fully-ramped rep is capable of quota. Most reps do not hit it. Average quota attainment across B2B reps ran 42.7% in Q2 2025, and 76% of reps missed quota across the first half of the year (RepVue, and Ebsta with Pavilion, 2025). Planning at 100% attainment is the same error as planning at full ramp: it assumes the best case as the base case.

So the model has a second multiplier. Take the ramp-adjusted capacity and apply the segment’s historical attainment rate. Do not use the cross-team average as a single blend; SMB and enterprise attain at different rates, so each segment carries its own. Applied to the $1.28M ramp-adjusted number at a realistic segment attainment, the defensible plan lands near $600K to $700K, which is within range of the $700K the team booked.

The capacity model, as a query

The model is only as good as the drivers, and the drivers live in Salesforce. There is usually no hire-date field on the User, so tenure gets proxied from when the record was created or a ramp-start custom field if you have one. This query pulls active carrying reps, their segment, quota, and tenure in months, which is every driver except the ramp curve and attainment rate you apply on top:

SELECT u.Id, u.Name,
       u.Sales_Segment__c segment,
       u.Ramp_Start_Date__c ramp_start,
       q.Quota_Amount__c quota,
       q.Fiscal_Quarter__c period
FROM User u
JOIN Quota__c q ON q.OwnerId = u.Id
WHERE u.IsActive = true
  AND u.Carries_Quota__c = true
  AND q.Fiscal_Quarter__c = 'FY2026-Q1'
ORDER BY u.Sales_Segment__c, u.Ramp_Start_Date__c

Then the two multipliers are a small config table you keep next to the model, not hardcoded in a dashboard, so every report reads one source. Ramp multiplier by months of tenure, and historical attainment by segment:

# capacity-model config: the two multipliers the query does not carry
ramp_curve:            # productivity as a fraction of full quota carry
  months_0_1:  0.10
  months_2_3:  0.50
  months_4_5:  0.80
  months_6_up: 1.00

attainment_by_segment: # trailing 4-quarter actual, per segment
  smb:        0.48
  mid_market: 0.44
  enterprise: 0.39     # longer cycles, lower in-period attainment

# plannable capacity =
#   sum over reps of ( quota
#     x ramp_curve[tenure_bucket]
#     x attainment_by_segment[segment] )

Join the query to the config, sum the product across reps, and you have a plannable number built from four drivers you can each point to. When someone asks where the target came from, you show them the query and the config, not a round number.

Watch the drivers move

The reason to build the model instead of asserting the number is that you can move a driver and see the plan respond. Add three ramped reps and the number climbs. Push a hiring class a month later and the ramp-adjusted capacity for the quarter drops, because those seats spend more of the quarter at a low multiplier. This is the same relationship coverage planning runs on: your plannable pipeline is a function of capacity, and capacity is a function of who is ramped. Put your own team’s open pipeline and target in and watch coverage move against it:

Coverage against a capacity-built target, not a top-down one

coverage

Try

Below ~3x you are almost certainly going to miss unless win rates are unusually high. Above ~5x the number is either sandbagged pipeline or wishful staging. The healthy band is 3 to 4x.

coverage: 3.6x

Coverage is downstream of the capacity number. If the target is the undefendable $2.4M, then healthy-looking 3x coverage is 3x against a fiction. Build the target from drivers first, then size coverage to it. The forecasting guide covers how the capacity number feeds the in-period forecast once the quarter is running.

The productivity ramp, seat by seat

The chart makes the ramp cost visible. Same twelve seats, plotted as nominal quota versus effective capacity after the ramp multiplier. The gap between the two bars in the early cohorts is the money the top-down plan counted and the team could not produce.

Ramp-adjusted capacity by cohort ($K)
What each cohort could actually produce this quarter after the ramp multiplier. The early-ramp cohort carries $600K on paper and $80K in reality.
View as table
ItemValue
Ramped (4)800K
Mid-ramp (4)400K
Early (4)80K

Build the model in this order

This is the sequence I run to turn a top-down target into a defensible plan. Each step produces a driver you can point to, and the final number is the product of all of them. Build it bottom-up, never top-down.

The driver-based capacity build
  1. 1

    Pull the rep roster with tenure and segment

    Run the capacity query: active quota-carrying reps, their segment, their quota, and a tenure proxy from ramp-start or record-created date. This is the spine; every driver hangs off a real rep in a real seat, not a headcount assumption.

  2. 2

    Assign each rep a ramp multiplier from the curve

    Bucket reps by months of tenure and apply the ramp curve: near zero in month one, roughly half at three months, full past six. This is the driver that broke the $2.4M plan when it was ignored. Do it per rep, not as a team average.

  3. 3

    Apply historical attainment by segment, not one blend

    Multiply each ramp-adjusted rep by the trailing attainment rate for their segment. Enterprise attains lower than SMB because the cycle is longer, so a blended rate over-counts enterprise and under-counts SMB. Segment it.

  4. 4

    Sum to a plannable number and stress the drivers

    Sum quota times ramp times attainment across all reps. That is the plan. Then move the drivers: slip a hiring class, add three ramped reps, and watch the number respond. A plan you can stress is a plan you can defend.

  5. 5

    Reconcile last quarter actual against the model

    Run the model backward on the quarter that closed last. If it predicts within roughly 10% of what the team booked, the drivers are calibrated. If it is off, your ramp curve or attainment rates are wrong, and you fix the driver before you trust the next plan.

Top-down versus driver-based, side by side

The two approaches produce a number that looks the same on a slide and behaves nothing alike when the quarter runs.

Top-down target Driver-based plan
How the number is made Asserted: 12 x $200K Built: sum of quota x ramp x attainment
Ramp Ignored, all seats at full quota Multiplier per rep by tenure
Attainment Assumed 100% Segment historical, ~40-48%
The Q1 number $2.4M ~$640K
Actual booked $700K (missed by 3.4x) $700K (predicted within 10%)
When asked where it came from A round number in a meeting A query and a config file
Both produce a Q1 number. Only one told the truth about what twelve reps could book.

A plan you can defend line by line

The $2.4M plan failed the only test that matters: nobody could say where it came from. The driver-based version passes it, because every dollar traces to a rep, a ramp stage, a quota, and an attainment rate you pulled from the system. When the plan is a product of drivers, a miss is diagnosable. You can point at the driver that moved: the hiring class slipped, enterprise attainment dropped, three ramped reps left. A top-down number gives you nothing to point at except the round number that was wrong from the start.

Pull the roster query, apply the ramp curve, segment the attainment, and sum it. Then backtest it on the quarter that closed last. If it reproduces the actual within 10%, you have a plan you can defend when someone asks where the number came from, which on the day the quarter is set is the only question worth being able to answer.

planning capacity quota

Keep reading

One email. Every week.

One email a week: an operating problem I solved or botched, with the model, the numbers, and what I would change. No roundups, no theory, unsubscribe whenever it stops being useful.

The newsletter opens soon.

Connect a provider in src/config.ts