← All articles

GTM Operations

RevOps Is Not Sales Ops. You Built Half a Function.

You instrumented lead-to-close and left renewal-to-expansion on a spreadsheet. Median NRR is 102% and expansion costs $0.80 per dollar against $1.63 to acquire. Here is the CS Ops build order that makes the post-sale side of the bowtie as measurable as the pre-sale side.

· 13 min read

A CRO showed me a RevOps org chart with nine people on it. Eight worked on everything up to closed-won: routing, scoring, deal desk, forecast, quota, territory. One worked on renewals, part time, mostly rebuilding the same expiring-contracts export every month by hand. The company did $30M in ARR, renewals were 84% of the revenue that would show up next year, and expansion costs $0.80 to book against $1.63 to acquire a new dollar (Aleph and Benchmarkit, 2026 SaaS metrics). They had built a precision instrument for the cheap half of growth and a spreadsheet for the cheaper one.

The old definition says RevOps is Sales Ops with a wider title. That definition built the org chart above. Break it: CS Ops is the missing half, the operational layer that makes retention and expansion as measurable and repeatable as pipeline, and on any company past its first few years it governs more revenue than the pre-sale side does. The pre-sale wing is instrumented to the minute. The post-sale wing, where net revenue retention compounds, runs on health scores nobody trusts and renewal dates somebody remembers to check. This piece is the build order that closes that gap.

102%
Median NRR, all B2B SaaS FY2025 (Aleph/Benchmarkit 2026)
$0.80 vs $1.63
Cost to book a dollar of expansion vs a dollar of new ARR (Aleph/Benchmarkit)
1 of 9
Typical RevOps headcount pointed at post-sale revenue

There is a right order to build this in, and building out of order is why most CS Ops efforts stall. You cannot score health without a data model, cannot route a save play without a health score, cannot report NRR credibly without the motion generating clean renewal records, and cannot drive expansion until retention is instrumented. Scroll the ladder bottom to top. Each rung stands on the one below it, and this is the framework the rest of the piece builds out.

Build it bottom to topThe CS Ops build order
  1. L5Report NRR, GRR, and cohort retentionNRR/GRR

    Put net and gross retention on the same review as pipeline coverage, add cohort curves and a monthly churn autopsy so every loss retunes the score. This is the visibility the board needs and rarely gets.

  2. L4Hand back and expand52%

    Route expansion signals from CS to the seller who owns the account, and hand at-risk saves back to CS with context. Expansion is 52% of new revenue and it costs half as much as acquisition.

  3. L3Wire signal to playSLA

    A health drop below threshold or a usage cliff fires a routed save play to the account owner with an SLA and a due date. Log every play and its outcome. This is where scoring turns into saved revenue.

  4. L2Build and backtest the health score5 inputs

    Weight the five inputs, score the book nightly, then score last year as-of twelve months ago and check the churned accounts scored low. Retune until the backtest holds. Only then let the score drive anything.

  5. L1Model the customer, not only the dealobjects

    Auto-create renewal opportunities on close and stand up objects for usage, onboarding milestones, and health. This is plumbing, and every rung above it leaks without it. Do it first even though it is the least glamorous build on the list.

Locate yourself on that ladder. Most teams sit below the first rung, running retention off a renewal date field and a three-color health score built by feel. Every rung above subtracts a specific way the post-sale side stays invisible. By the top rung, the same review that shows pipeline coverage also shows net and gross retention, and the board finally sees the 84% of next year’s revenue that used to live in one analyst’s spreadsheet.

The bowtie is symmetric. Your stack is not.

The modern revenue model is a bowtie: acquisition narrows to a closed deal on the left, then widens back out through onboarding, adoption, retention, and expansion on the right. Both wings carry revenue. The left wing brings new logos; the right wing keeps and grows them, and past a company’s first few years the right wing carries more dollars.

The bowtie Where recurring revenue actually compounds
COMMIT Awareness Education Selection Onboard Impact Expansion ACQUISITION — heavily instrumented RETENTION + EXPANSION — usually not
Left of Commit is acquisition. Right of Commit is where NRR lives, and where most CRMs have no fields.

Now look at how the two wings are resourced. The left wing has scoring models, routing rules, stage gates, forecast categories, and a coverage dashboard. The right wing has a health score somebody built in a hurry, a renewal date field, and an expansion number that appears in the forecast by magic in the last week of the quarter. The asymmetry is an accident of history, because RevOps grew out of Sales Ops and never fully turned to face the customers who already signed. The full argument for treating this as revenue work sits in the right side of the bowtie; CS Ops is how you staff and instrument it.

What CS Ops owns

CS Ops is not the CSM team’s admin. It is the four pillars on that ladder, and each one moves a number the board tracks. Miss any one and the other three degrade.

CS Ops pillarThe artifact it ownsThe number it moves
Customer data modelObjects for health, usage, onboarding milestones, renewalData completeness, so every other pillar has inputs
Health scoringA scored, weighted, backtested health fieldChurn caught early enough to save
Signal-to-play + handbackRenewal opportunities auto-created, expansion signals routedGRR and NRR
Post-sale reportingNRR/GRR dashboard, cohort retention, churn autopsyBoard-level retention visibility

L1: start with the objects, because health has nothing to stand on otherwise

Most CS teams try to build a health score before they have anywhere to put the inputs. The result is a score that lives in a spreadsheet, cannot drive a flow, and dies when the analyst who owns it leaves. The first CS Ops build is the data model. You need renewal opportunities as first-class records, not a date field, so that retention flows through the same pipeline machinery as new business.

Create the renewal opportunity automatically the day a deal closes won, dated to the contract term, so no renewal ever depends on a human remembering:

trigger CreateRenewalOnClose on Opportunity (after update) {
    List<Opportunity> renewals = new List<Opportunity>();
    for (Opportunity o : Trigger.new) {
        Opportunity old = Trigger.oldMap.get(o.Id);
        if (o.IsWon && !old.IsWon && o.Type == 'New Business') {
            renewals.add(new Opportunity(
                AccountId = o.AccountId,
                Name = o.Account.Name + ' Renewal ' + o.CloseDate.addYears(1).year(),
                Type = 'Renewal',
                StageName = 'Renewal Pipeline',
                Amount = o.Amount,
                CloseDate = o.CloseDate.addYears(1),
                Original_Opportunity__c = o.Id
            ));
        }
    }
    if (!renewals.isEmpty()) insert renewals;
}

In a Flows-first org this is a record-triggered flow, not a trigger, and it should be, but the logic is identical. The point is that the renewal exists in the pipeline from day one, ages through stages, and shows up in coverage math exactly like new business. Now GRR is queryable instead of assembled by hand.

L2: the health score is a model, not a color

Most health scores are three colors assigned by feel. A real one is a weighted model with inputs, weights, and a backtest that proves the score predicted churn on last year’s book. Without the backtest you have a vibe with a number on it, and reps learn to ignore it exactly the way they ignore an untuned lead score. I made this argument for lead scoring in shadow-mode scoring; health scoring earns its trust the same way, by proving itself against history before it drives a single play.

The inputs that predict churn, weighted by how much signal they carry:

Health inputWeightWhy it predicts churn
Product usage trend (30/90 day)35%Declining usage is the earliest and truest churn signal
Executive sponsor engaged20%Champion loss precedes most surprise churns
Support ticket severity trend15%Rising severe tickets signal unmet need
Onboarding milestones hit on time15%Time-to-value predicts first-year retention
Days since last meaningful touch15%Silence is a leading indicator, not a neutral state

Weight these, score every account nightly, then backtest: score last year’s book as of twelve months ago and check whether the accounts that churned scored low. If they did not, your weights are wrong; retune before you let the score route a save play. A health score that never faced history is a decoration, and decorations do not save accounts.

L3 and L4: wire signal to play, then hand back and expand

Health scoring only matters if a low score triggers an action fast enough to matter. The build that closes the loop is a signal-to-play pipeline: a score change or a usage drop fires a routed play to the right owner with a due date, exactly the way a scored lead routes to a rep. The play is the point; the score is the trigger.

Signal to play A health drop routes a dated save play, automatically
Usage drop /sponsor lossHealth scorerecomputedPlay routed toCSM + SLAOutcome loggedfor autopsyoutcomes retune the score
The same routing discipline you built for leads, pointed at the post-sale book. Signal in, scored, routed to an owner with an SLA, logged for the churn autopsy.

The same routing runs in the other direction for growth. Expansion is 52% of new revenue for 2025 (gradient.works), and it costs $0.80 per dollar against $1.63 to acquire (Aleph and Benchmarkit, 2026). A usage spike, a new department onboarding, or a champion moving to a bigger role is an expansion signal, and it should route to the seller who owns the account with the same SLA a save play carries. Handback is the discipline of moving an account across the CS-to-sales line with its context intact, so the expansion motion is not an accident that shows up in the forecast at quarter-end.

L5: NRR is the number that decides whether new sales even matter

Net revenue retention is the compounding engine. Above 100% your existing book grows before a single new logo signs; below 100% you are running up a down escalator and new sales spend their first dollars refilling the leak. Move the levers and watch what happens to the number that decides whether growth compounds or leaks.

Net revenue retention: expansion minus churn on your current book

net retention

Try

Above 100% the existing book grows on its own before a single new logo signs. Below 100% you are running up a down escalator: new sales have to refill the leak before they add anything.

net retention: 110.0%

Median NRR sits at 102%, the top quartile clears 110%, and the bottom quartile fell from 95% to 92% year over year (Aleph and Benchmarkit, 2026 SaaS metrics). GRR median is 84%, and the gap between the two is your expansion motion. Pricing shape moves the number more than most teams expect: usage-based books run 108% NRR against 98% for seat-based, a ten-point gap that is widening. A company at 84% GRR and 102% NRR is saving itself with expansion; a company at 84% GRR and 84% NRR has no expansion motion at all and is one bad quarter from shrinking.

What one quarter of the build order moved

Take the $30M org from the top. Here is what each rung produced, and it reconciles to the ladder and the stat tiles: the plumbing came first, the score second, the saved revenue before the reporting was even finished.

Build rungState beforeState after one quarter
L1 data modelHand-built monthly expiring-contracts exportLive renewal forecast with coverage on 84% of next-year revenue
L2 health backtestThree-color score, flagged 4 of 11 churnsRetuned model would have caught 9 of 11
L3 signal-to-playChurn found at renewal60 days of runway on at-risk accounts
L4 handback + expandExpansion appeared at quarter-end by magicExpansion signals routed to sellers with an SLA
L5 reportingNRR assembled by hand for the boardNRR and GRR on the same review as pipeline coverage

Pre-sale ops vs CS Ops, side by side

The disciplines are mirror images. Everything you built for the left wing has a right-wing twin, and the twin is usually missing.

Pre-sale ops (built) CS Ops (usually missing)
Scoring Lead / opportunity scoring, tuned Health scoring, backtested against churn
Routing Leads routed to reps by rule + SLA Save plays routed to CSMs by health drop + SLA
Pipeline New-business opportunities, staged Renewal opportunities, auto-created and staged
Coverage Pipeline coverage against quota Renewal coverage against retention target
The headline metric Win rate, pipeline velocity NRR, GRR, cohort retention
The autopsy Win/loss review on new deals Churn autopsy that retunes the health score
Same operational primitives, applied to the wing that carries more revenue. The right column is the work almost nobody has done.

Build the other half

Your RevOps stack is not incomplete because it lacks a tool. It is incomplete because it points eight of nine people at the cheaper half of growth and one part-timer at the 84% of next year’s revenue that renewals carry. The fix is not more headcount on the left wing; it is a CS Ops layer that gives the right wing the same objects, scoring, routing, and reporting the left wing has had for years.

Start with the one build everything else needs: auto-create a renewal opportunity the day a deal closes. That single change turns retention from a spreadsheet into a pipeline you can forecast, cover, and report. Then climb the rest of the ladder: backtest a health score, wire it to a save play, route expansion back to the sellers, and put NRR on the same slide as coverage. The pipeline half of that story, sizing coverage to a win rate that no longer supports the old 3x rule, lives in the coverage ratio that lies to you. The half of your revenue engine that has been running on memory becomes an instrument, and the instrument is the whole point of RevOps.

customer-success revops retention

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