Blog
Volume gets you calls. The right move gets you revenue.
Timing beats volume, and a finite action budget is what makes staying quiet the correct move.
The follow-up that unsticks a deal is almost never a longer email.
The standard advice for a stalled deal is more. More touches, more cadence, more bumps. That treats a stuck deal like a volume problem. Most stuck deals are a context problem and a timing problem, and volume solves neither.
The move that works is built from what was actually said. If a champion raised a security concern on the last call, the move is a one-pager that answers that concern in their words, sent before the internal review they mentioned. A generic cadence cannot produce that. It does not know the concern exists. But drafting that one-pager is the easy half. Any tool with the transcript can write something on topic. The two hard questions are which move, and when. This essay is about the second one, because timing is where almost all of the value is, and it is the part nobody builds.
What timing actually meansLink to heading
Timing matters is easy to say and worth making precise. Picture a single follow-up and ask: how much does sending it right now change the probability the deal closes? Call that the lift. Send the same message at different moments and the lift is different. Too early, before the concern is real to the buyer, and it lands on nothing. Too late, after the deal has gone cold or a competitor has been chosen, and it lands on nothing. Somewhere in between there is a window where the same message moves the outcome the most.

That curve is not a metaphor. It is a function the engine estimates from how thousands of similar deals responded to a touch at each point after a signal. The peak is the moment to act. The tails are why volume fails: most of a high-volume cadence is spent in the flat parts of this curve, sending messages when the lift is near zero. You get replies that say circling back and deals that die politely. The lift was never there. So acting well is not about sending more. It is about sending near the peak and not sending in the tails. Which means the engine's real job is a decision, made on every deal, every day: act now, or stay quiet. That decision has three layers, and they are worth taking one at a time.
Layer 1: calibrationLink to heading
A model produces a score. A 0.7 is not a probability. It is the model's internal number, and on its own it is useless for any decision about cost, because you do not know what 0.7 is worth. Calibration fixes that. It maps the raw score to a true probability by checking it against history: of all the times the model said 0.7, what fraction actually happened? If the answer is 55 percent, then in this model 0.7 means 0.55, and it is overconfident. The technique is standard, isotonic regression is the usual one, and the point of it is simple. Until the number is calibrated you cannot reason about whether an action is worth taking, because you do not know the odds you are acting on.
Layer 2: the budget, and why restraint is correctLink to heading
Here is the layer that changes how you think about the whole product. A rep can only act on so many deals in a week. That is a hard constraint, and it turns out to be the thing that makes restraint valuable. Run the naive math first. Suppose missing a winnable deal costs forty times more than a wasted follow-up. Pure cost-minimization then says act on almost everything with any risk, because the downside of a miss dwarfs the cost of a wasted touch. Fire eagerly. That is the correct answer if actions are free.
Actions are not free. The rep's time is finite, and every action spent on a low-lift moment is an action not spent on a high-lift one. The binding constraint is not the cost of a touch, it is the budget of touches. Once you price that in, the answer flips. The engine is not trying to catch every deal at risk. It is trying to allocate a small number of actions to the moments where they move the most outcome. That is the real content of don't spend until you have to, and when you spend, spend at the point of maximum impact. Restraint here is not caution. It is allocation under scarcity. The budget is what turns a tool from flag everything into tell me the one that matters this week. And it reframes what the product even is: the hard problem was never detection. Detecting risk is easy, and most tools do it. The hard problem is allocation, which few of the deals at risk are worth one of your few actions.
Layer 3: selectivityLink to heading
The last layer is trust. A high score from a single stray signal is not enough to spend an action on. The engine fires only when several independent precursors point the same way and there is enough history behind the read to believe it. Two patterns agreeing is much stronger evidence than one pattern being loud. This is what keeps the system from crying wolf: one noisy data point cannot trip it, because one signal is never enough.
def should_act(deal, t, budget): score = model.score(deal, t) # raw output, not a probability p = calibrate(score) # isotonic: map score -> true probability lift = expected_lift(deal, t) # how much acting now changes the outcome agree = signal_agreement(deal, t) # independent precursors pointing the same way # selectivity: a trustworthy read needs agreement and enough history if agree < 2 or evidence(deal) < MIN_EVIDENCE: return None # budget: the bar floats up as this week's actions get scarce if lift < budget.bar(): return None # real risk, but not worth one of the moves we have return draft_move(deal, p, lift)Read that function as the three layers in order. Calibrate the score into a real probability. Check that the read is trustworthy, with enough agreement and history. Then, and only then, compare the lift of acting now against the bar, where the bar is not fixed. It rises as actions get scarcer. When the bar is high, only the very best moments clear it, and the engine stays quiet on the rest. Not because the rest are safe, but because they are not worth one of this week's moves.
That is the action layer. It drafts the move from the conversation, the account, and the buyer path already in motion, because the move has to be built from what was said. But the drafting was always going to get automated. The judgment that is hard to build, and the judgment that actually changes your number, is knowing which moment is worth one of your few actions. Volume gets you calls. Spending a scarce action near the peak of the lift curve is what gets you revenue.