GTM Operations
You Have 40 Pipeline Reports and One Renewal-Date Field
The bowtie splits at Commit. Your CRM instruments the left side to the decimal and describes the entire right side, where NRR compounds, with a single date field. Here is the instrumentation build that fixes it.
· 12 min read
For a decade the CRM was a deal-closing machine and everyone was fine with that. The left side of the funnel earned fields, stages, and reports; the right side earned a renewal date and a shrug. Count the reports in your CRM that end at closed-won. Pipeline by stage, conversion by rep, velocity by segment, coverage by team, win rate by source. On every CRM I have audited that number runs north of 40. Now count the fields that describe what happens after the deal closes. Onboarding status, time to first value, product adoption depth, expansion signal, health trajectory. On those same teams that number is one: a renewal date.
Break the shrug. The half of the business where net revenue retention compounds has no dashboard, and NRR is the number investors watch harder than new bookings. Median B2B SaaS NRR sat at 102% in FY2025, with the top quartile at 110% and the bottom at 92% (Aleph and Benchmarkit, 2026 SaaS Metrics Benchmarks, n=230). Every point of that number is produced on the right side of the bowtie: onboarding that lands, impact the customer feels, expansion that follows. You are steering it with a date field and a CSM’s gut. The right side is not underinstrumented, it has no instruments at all, and the four stages below are the rungs nobody built.
Here is the framework. Four right-side stages, each a rung, and on most teams every rung is dark because the field that would light it does not exist. Scroll it bottom to top: this is the order the customer moves through after Commit, and the order you build instrumentation in. Locate your own team on it. Most teams are stuck at the bottom rung with a renewal date and nothing above it.
- R4Renew: report trajectory by days-to-renewalNRR, leading
Cross health trajectory with days to renewal and you get the first right-side report your CRM has ever produced: the leading indicator for the NRR number the whole business runs on, one quarter out instead of after the fact.
- R3Expand: catch the signal in a field$0.80 vs $1.63
Expansion signal, whitespace value, and an expansion record type so growth runs through the pipeline like new business does. Right now expansion, if it happens, dies in a renewal note. Give it a field and a stage and it becomes a motion.
- R2Adopt: measure trajectory, not only a scoreImproving / Flat / Declining
Adoption depth plus a health score plus a health trajectory. Trajectory is the rung that matters: a 70 falling is a churn and an 80 rising is an expansion, and a static number hides both. This is the earliest churn signal you will ever get.
- R1Onboard: log the first-value dateTTFV date
The gap between closed-won and first value is where retention is won or lost. Ship Time_to_First_Value__c and make it required to leave onboarding. Until it is populated the customer has not onboarded, no matter what a status picklist says.
The left side of the bowtie is instrumented to the decimal. The right side, where NRR compounds, is where the fields do not exist. Here is the shape the whole argument lives inside.
Why this is the expensive blindness
NRR above 110% is a strong business and above 120% is best-in-class, the kind of number that means you could stop selling to new logos and still grow (Aleph and Benchmarkit, 2026). The gap is not academic: usage-based pricers post 108% NRR against 98% for seat-based, and companies growing over 50% post 111% against 92% for those growing under 10% (Aleph and Benchmarkit, 2026). NRR is produced entirely on the right side of the bowtie. And you are running it blind, on a renewal-date field and a CSM’s gut, while pointing 40 reports at the left side where a percentage point of win-rate improvement is worth a fraction of what a percentage point of NRR is worth.
The asymmetry is the whole story. You instrument the cheap side to the decimal and fly the expensive side by feel. Not because anyone decided that, but because the CRM shipped with opportunity stages and nobody built the fields for what comes after.
The economics make the blindness compound. Expansion revenue costs about $0.80 per $1 of new ARR against $1.63 to acquire it net-new (Aleph and Benchmarkit, 2026), and it is recurring rather than one-time. A customer who onboards well, gets impact, and expands throws off revenue every year and grows the base you expand from next year. A business at 120% NRR doubles its existing-customer revenue roughly every four years without selling a single new logo. That is the machine you are running blind. Every quarter you spend improving win rate by a point is a quarter you did not spend on the number that compounds at half the cost, and you make that trade because the win-rate number has a field and a report and the NRR inputs do not.
There is a cultural tell that rides on top of the data gap. On teams with no right-side fields, the customer success org runs on QBR decks and gut calls, and every renewal conversation starts from zero because there is no accumulated record of whether the customer got value. On teams that built the ladder, the CSM walks into a renewal already knowing the first-value date, the adoption trajectory, and the expansion signals, and the conversation is about growth instead of survival. The fields do not only produce reports. They change what the CS team can talk about.
What each rung needs, field by field
The fix is a data model, and it is not exotic. Each rung of the ladder above needs its own fields and its own exit criteria, exactly the way an opportunity stage does.
Onboard (R1). This rung owns the gap between closed-won and first value. Build a Time_to_First_Value__c date, an Onboarding_Status__c picklist (Not Started, In Progress, Stalled, Complete), and an Onboarding_Owner__c. The exit criterion is a logged first-value date. Until that field is populated the customer has not onboarded, no matter what the status says.
Adopt (R2). This rung owns whether the customer gets the value they bought. Build an Adoption_Depth__c (seats active, features used, whatever your product measures), a Health_Score__c, and a Health_Trajectory__c (Improving, Flat, Declining). Trajectory matters more than the score, because a 70 falling is a churn and an 80 rising is an expansion, and a static number hides both.
Expand (R3). This rung owns growth inside the account. Build an Expansion_Signal__c (usage-cap-approaching, new-team-onboarded, exec-sponsor-expanded), a Whitespace_Value__c, and an actual expansion opportunity record type so expansion runs through the pipeline like new business does. Right now expansion, if it happens, happens by accident in a renewal note. Give it a stage and it becomes a motion.
Here is the whole model in one table, rung by rung, with the exit criterion that makes each rung a gate instead of a vibe:
| Rung | Fields to build | Exit criterion |
|---|---|---|
| R1 Onboard | Time_to_First_Value__c, Onboarding_Status__c, Onboarding_Owner__c | A logged first-value date, not a status |
| R2 Adopt | Adoption_Depth__c, Health_Score__c, Health_Trajectory__c | Trajectory known, not only a score |
| R3 Expand | Expansion_Signal__c, Whitespace_Value__c, expansion record type | Signal routed into a real opportunity |
| R4 Renew | Report crossing Health_Trajectory__c with days to renewal | Leading NRR view one quarter out |
A worked cut
Take a $10M book. On the left side you know everything: the pipeline, the win rate, the sources. On the right side, build the four-rung model and run the R4 report you have never been able to run: accounts by health trajectory crossed with days to renewal.
Say it comes back like this. $2M of ARR sits in accounts renewing within 90 days with a Declining trajectory and a null first-value date. That is $2M you were going to be surprised by, because your one field, the renewal date, said everything was fine right up until the churn. Another $1.5M sits in accounts with an Expansion_Signal__c set and no expansion opportunity created, which is $1.5M of growth nobody is working because there was no field to catch the signal and no stage to route it into.
The chart is that R4 report. Two bars nobody could draw before the right-side fields existed: the churn you would have been surprised by, and the expansion nobody is working.
View as table
| Item | Value |
|---|---|
| Declining, renews under 90d | 2M |
| Signal set, no opp | 1.5M |
| Healthy, no action needed | 6.5M |
Reconcile those bars back to the ladder and the NRR benchmark. That $10M book renewing with $2M of preventable churn and no offsetting motion is trending toward roughly 80% gross retention, well below the 84% median GRR SaaS posted in FY2025 (Aleph and Benchmarkit, 2026). Save the $2M and work the $1.5M of expansion, and the same book swings from a churning 80% toward a 115% NRR, which is the difference between a business that shrinks its base every year and one that doubles it every four. Same accounts, same product. The only variable is whether the four rungs had fields.
The $2M was not lost to a competitor or a budget cut. It was lost to blindness: the accounts declined for a quarter, the signals sat in product usage and support tickets and an empty first-value date, and none of it reached a field a report could read. A health-trajectory field populated a quarter earlier turns that $2M from a surprise into a save queue the CS team can work.
The $1.5M of unworked expansion runs the same way in reverse. Those accounts sent buy-more signals, a usage cap approaching, a new team onboarded, an exec sponsor expanding, and each one died in a renewal note because there was no field to catch it and no stage to route it. Give the signal a field and the expansion a record type, and the same pipeline discipline you apply to new business applies to the growth that costs $0.80 on the dollar.
Here is the same book seen through the two data models side by side. The left column is what you can answer today. The right is what the four-rung ladder answers.
| Renewal-date-only model | Four-rung right side | |
|---|---|---|
| Will this account churn? | Unknown until the renewal date | Health trajectory flags it a quarter early |
| Did onboarding land? | CSM says yes | First-value date is populated or it is not |
| Where is expansion? | In a renewal note, if anywhere | Signal field routes it to a real opportunity |
| Reportable right-side ARR | One date field | Trajectory by days-to-renewal, whitespace, signals |
| NRR you can steer | After the fact | Leading, one quarter out |
Here is how I build it: the right-side build order
Do not try to build all nine fields at once. Build R1 first, because time-to-first-value is the earliest predictor of everything downstream and the cheapest to instrument. Then climb the ladder as the data underneath each rung becomes trustworthy. The Steps below are the same rungs, turned into a shippable sequence.
- 1
Step 1, ship Time_to_First_Value__c and make it required
One field, required to move a customer out of onboarding. It is the earliest predictor of retention and the cheapest to instrument. Everything else on the ladder measures against it. This lights rung R1.
- 2
Step 2, populate it for one full quarter
Get a first-value date on every new customer for a quarter. Now you have a baseline. Without the baseline, trajectory in the next rung measures against nothing.
- 3
Step 3, add the Adopt fields
Adoption depth, health score, and health trajectory. Trajectory is the one that matters: a 70 falling is a churn, an 80 rising is an expansion, and a static score hides both. This lights rung R2.
- 4
Step 4, add Expand once health is trustworthy
Expansion signal, whitespace value, and a real expansion record type. Only add it once the health data is good enough to trust a signal, or you will route noise into the pipeline. This lights rung R3.
- 5
Step 5, run the trajectory-by-renewal report
Cross health trajectory with days to renewal. This is the R4 report, the first right-side report your CRM has ever produced, and the leading indicator for the NRR number the whole business runs on.
Start with Time_to_First_Value__c, required to move a customer out of onboarding. One field this week, and in a quarter you have lit the bottom rung and produced the first right-side report your CRM has ever run. For how the leak upstream of all this starts at lead assignment, see lead routing is a latency problem, not a fairness problem. And for how the win-loss side of the CRM collects its own data the same way, see instrument the CRM so win-loss data collects itself.
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