Skip to content
Was It Causal?

Rep Capacity and Account Prioritization

Which accounts get a rep's hour, which is the scarcest allocation on the list. Scoring is easy, and the constraint that decides whether it changes anything is how many hours exist.

The decision it encodes

Which accounts get worked, by whom, against a capacity far scarcer than sends?

The model scores every account for propensity to buy and hands the top two thousand to sales.

There are forty reps. Working an account properly takes a few hours a month, so the team can hold perhaps six hundred live at once. The other fourteen hundred sit in a queue that nobody works, the scores go stale, and by the next refresh the list has changed enough that the queue is discarded and rebuilt. A year later the model has been rebuilt twice and no rep has changed what they do on a Tuesday.

The decision it encodes

Which accounts get worked, by whom, against a capacity far scarcer than sends?

The lifecycle version of this question is about contact budgets, and a send is cheap enough that the answer there involves millions of them. Here the constraint is a person’s working hours: far scarcer per decision, far costlier, and impossible to increase by buying more of anything this quarter.

The scarcity changes which model you need

With effectively unlimited sends, ranking by likelihood to convert wastes money on people who would have converted anyway. That is the argument for uplift over propensity, and it holds here too.

But scarcity makes it sharper. When you can work six hundred of two thousand accounts, a propensity ranking spends every available hour on the accounts most likely to buy, which are disproportionately the accounts that were going to buy without a rep. The waste is not budget, it is the entire selling capacity of the organization, spent on deals that were already coming.

What the score is a score of

The target is not uplift on a conversion flag. It is the expected incremental commercial value of a defined sales intervention, net of what it costs, per hour of rep capacity it consumes: the incremental probability of a win, the incremental deal value and margin, any acceleration, and the hours and service cost required, against the coverage and strategic constraints that bind. A binary uplift is one input to that.

“Worked” also has to mean something fixed. One email, a researched call sequence, a booked meeting, and three months of active account management are different treatments with different costs, and a score estimated on an unstable bundle of them estimates the effect of nothing in particular. The capacity number and the service level are defined together: how many accounts a rep can hold at what defined level of work.

The number worth producing is the threshold

The output that changes behavior is not the ranked list. It is the value of the marginal account: what the last account a rep has time for is worth.

That number does two things a list cannot. It says whether more capacity is worth buying, because if the marginal account is worth a great deal then hiring or reallocating reps has a computable return. And it says whether the current list is too long, because a queue extending far below the threshold is a queue nobody should be working, which is information the team can act on immediately.

This is the same shadow-price argument the lifecycle next-best-action policy makes about contact capacity. The difference is that here the number is large enough to justify a hiring conversation.

Coverage is a constraint

Sales organizations often carry an expectation that every named account receives some attention. That is a real commitment and frequently a contractual one, and a prioritization that ignores it will be overridden.

The way to hold both is to treat coverage as a floor rather than as the ranking: a minimum touch for every account in the territory, and the discretionary capacity above that floor allocated by expected uplift. Stating it that way also prices the commitment, since the floor consumes hours that would otherwise go to the top of the queue, and somebody can then decide whether the commitment is worth what it costs.

Exploration is the part that gets cut first

That random slice of capacity, recorded with the probability each account had of being worked in the prioritization log, is the component’s most fragile element, because it looks like waste. It is a handful of hours a month spent on accounts the model says are unpromising, in an organization where every hour is spoken for.

It is also the only mechanism by which the ranking ever improves. Without it the model is retrained each quarter on data generated by its own previous recommendations, learns that the accounts it recommended converted, and grows more confident about a smaller and smaller set of accounts. The lifecycle system makes the same argument about logged decisions and it is more acute here, because the queue is shorter and the feedback loop tighter.

Maturity, honestly staged

Stage 1: a capacity number and a service level that exist. How many accounts a rep can hold, at what defined level of work, stated rather than assumed. Most lists are built without either.

Stage 2: the list truncated to capacity, with a propensity-and-value baseline. The queue stops being a wish and starts being a plan, the accounts below the line are visibly not being worked rather than invisibly, and the baseline is labeled as one.

Stage 3: simple targeting rules compared by randomization. Broad strata of expected incremental value, or two candidate rules, assigned rather than chosen, so the program learns where rep effort changes outcomes before it trusts a model to say so account by account. With a few hundred outcomes a year, this is where most programs should stay for a while.

Stage 4: constrained policy learning, with a threshold, a coverage floor, and exploration. The marginal account has a value, the commitment has a price, and the policy is scored on the log before it ships.

Solving for the threshold under a coverage floor Technical

Without constraints this is the knapsack the lifecycle system solves in next best action: net value per account, sorted, taken until capacity runs out, with the value of the last one taken as the threshold. Here that threshold is the shadow price of a rep hour, and it is the number to carry into a headcount conversation.

A coverage floor is an additional constraint rather than a different problem. Reserve the hours the floor consumes, solve the knapsack on what remains, and the floor now has an explicit price: the total net value of the accounts it displaced from the top of the queue. That figure is usually startling the first time it is computed, and it is the right input to a decision about whether the commitment should stand.

Two cautions carried over from the lifecycle version. The threshold inherits every error in the uplift estimates, so a precisely solved allocation on weak scores is exact about the wrong plan. And with sample sizes this small, the uplift estimates are weak: an account-level uplift model in a market of two thousand accounts is fitting a heterogeneous effect on a few hundred observed outcomes, which is a far more speculative object than the same model on a lifecycle audience of millions.

Context

Best suited for

Organizations where a scoring model already produces more accounts than the sales team can work, and where nobody has written down how many it can work.

Data requirements

  • A stated capacity per rep, from time studies or from what the team holds today
  • Historical account outcomes joined to whether and how much a rep worked them
  • Deal value by segment, to convert uplift into something comparable across accounts
  • Coverage commitments as explicit constraints rather than as an unwritten expectation

What changes by context

B2B SaaS
Product usage gives a live signal of account state between rep touches, which is the closest thing available to a continuously updated score and the main reason prioritization can be dynamic rather than quarterly.
Sales-led
Reps will override the list, and should be able to, because they hold information the model does not. Logging the override and its reason is what turns that from a leak into the most valuable training data available.
Partner-led
Capacity belongs to somebody else, so the allocation is a recommendation rather than a decision. The threshold still matters, as the price at which it is worth investing in more partner capacity.

When it breaks down

  • Territories small enough that every account is worked, where there is no scarcity to allocate and the ranking is decoration.
  • Organizations with no uplift estimates, where ranking by propensity is the only option and should be labeled as spending capacity on accounts that were already closing.
  • Teams where reps ignore the list entirely, in which case the allocation governs nothing and the useful work is understanding why.
  • Markets of a few hundred accounts, where an account-level uplift model has too few outcomes to fit and judgment is better than a score.