In most B2B SaaS accounts, upselling doesn’t happen as a single moment near a sale. It happens months into a contract, once usage patterns have had time to show what a team actually needs next. The person who usually notices this first is a customer success manager or account manager, since they’re the ones watching the account day to day rather than a sales rep closing a new deal.
Expansion revenue in B2B SaaS gets created through that kind of usage shift, which makes it a different motion from new-business selling. That’s different from the version of upselling most content describes, and it’s worth looking at where the two diverge.
The retail and general-sales version of upselling happens at or near the point of purchase. It’s a single moment, usually initiated by whoever is trying to close the sale: add the warranty, take the larger size, choose the higher tier before checkout.
B2B SaaS contracts don’t work on that timeline. A customer signs a 12-month agreement, and what they need from the product several months in can look different from what they needed at signup. Teams grow. Use cases expand. The person who initially bought the product may not be the one using it most by the time renewal comes up.
Applying a checkout-style approach to that kind of relationship tends to produce something CS and account teams run into often: a rep reaching out mid-contract to ask if the account wants to upgrade, without much connection to what the account is actually doing at that point, mostly because a number needs to move that quarter.
A more workable approach starts from a different assumption: that expansion opportunities tend to show up at specific points in an account’s usage, not on a schedule set by a sales team’s quota targets.
Lincoln Murphy, VP of Customer Experience at ListKit, described this on the Across the Funnel podcast as something he plans for at the start of an account, rather than looking for later:
I know if my customer makes progress through these milestones, that at some point they’re going to hit a milestone that has an associated expansion opportunity with it. I mapped that out pretty early. So we don’t have a lot of guesswork, or a bunch of just, let’s hope that our customers buy more. Let’s try to upsell customers because we need to hit some sort of quota. That stuff doesn’t work.
A milestone-based approach ties expansion to a customer’s use case outgrowing their current plan. A quota-based approach ties expansion to a number that needs to move on a set schedule, regardless of where the account actually is. Outreach that follows a milestone usually lines up with something the account was already approaching. Outreach on a fixed schedule doesn’t always.
A few signals tend to show up before an account is ready for an expansion conversation, and they get more useful the more specific they are.
Mathias Biilmann, CEO and co-founder of Netlify, described one example on the Across the Funnel podcast. When an account adds a batch of seats, that can trigger a closer look at what the team is building, who is getting involved, and whether the account is moving toward needs like tighter governance, SSO, or performance guarantees. The seat increase is useful because of what it may indicate about where the account is heading next.
Ramsey Pryor, former CEO of Rumi.ai, described another type of signal that came directly from a customer conversation. A customer started talking about additional work they still needed solved and put significant value on that problem themselves. That kind of conversation can reveal an expansion opportunity before it shows up clearly in product usage.
These signals can come from both product behavior and customer conversations. The important part is using them as a reason to look deeper at the account rather than treating any one signal as an automatic upsell trigger.
Sales teams are generally structured to run prospects through a defined process toward a close date. That works well for new business. It fits less well for expansion, where the trigger isn’t a date on a calendar but a usage threshold that can happen in month four or month fourteen.
CSMs and AMs are usually closer to that behavior. They see usage patterns, hear about new use cases during regular check-ins, and are often the account’s main point of contact when needs shift.
Ryan Milligan, CRO at QuotaPath, made a related point on the Across the Funnel podcast about why compensation plans often separate churn management from expansion rather than combining both into a single blended target:
The reason you split it is because you want somebody to feel the pain of churn. And if you just do net revenue retention, sometimes you can have a massive expansion that overshadows all of your churn and contraction, and it’s just not a great setup for the org.
A similar logic applies to who owns expansion. When expansion sits inside a general “grow the account” responsibility without a clear owner or trigger, a large expansion can offset a churn problem in the reporting without the churn itself getting addressed, or a retention-focused CSM can miss an expansion opportunity because it was never explicitly part of their role. Giving CSMs and AMs clear ownership of expansion, tied to usage signals, helps close that gap.
When an expansion conversation is triggered by actual usage, the outreach can be much more specific. Instead of a general prompt to consider upgrading, it can reference something specific: your team has been near the seat limit for the last month, want to talk through what makes sense.
It also changes what gets measured. Rather than tracking how many upsell conversations happened in a quarter, it becomes more useful to track how many expansion opportunities were identified close to when they became relevant, versus how many were caught later. Net revenue retention is often the first metric leadership looks at, but it combines expansion and retention into a single number, which is part of why some teams track gross revenue retention separately. A team can hit its NRR target through a few large expansions while still losing smaller accounts, and the combined number won’t show that clearly. Understanding what separates gross retention from net retention is useful before expansion becomes the only number getting attention.
This connects to negative net churn as well, where expansion revenue offsets what’s lost to churn and contraction. Negative net churn depends on expansion happening at a rate the account base can support, which in turn depends on how consistently expansion signals get caught.
Accounts that expand without much friction are often ones where expansion was considered from the start, rather than added on later. That can mean mapping, during onboarding, what a more mature version of the account’s usage might look like, and what thresholds would suggest it’s moving in that direction.
It also means treating behavioral usage data as useful in both directions. The same patterns that indicate churn risk in one direction can indicate expansion readiness in the other. A CS team already set up to track behavioral shifts for retention has most of what it needs to track them for expansion too. A revenue-oriented view of the CS function treats these as related capabilities rather than two separate initiatives with separate tooling.
Identifying whether an account is ready doesn’t require guessing. It requires deciding in advance what “ready” looks like in the data, and having a way to see it when it happens. That starts with customer success metrics that track usage depth rather than just activity counts. Platforms like Hyperengage are built to make those thresholds visible as they happen, rather than something a team finds out about later during a QBR.
Upselling in B2B SaaS doesn’t map cleanly onto the retail version of the term, which is part of why so much of what’s written about it doesn’t match what CSMs and AMs actually deal with. Accounts tend to expand more smoothly when someone is watching for the point where usage outgrows the current plan, and reaches out based on that, rather than on a date from a sales calendar. This takes more setup than working from a sales calendar, but it gives the team a clearer reason for when to start an expansion conversation.
ORA by Hyperengage prepares your calls, tracks account health, and surfaces signals — so your team can focus on building relationships, not chasing data.
See ORA in ActionORA by Hyperengage prepares your calls, tracks account health, and surfaces signals — so your team can focus on building relationships, not chasing data.
See ORA in ActionKey Terms

Ask a room of CS leaders what counts as a good retention rate and you’ll get a number back with total confidence attached to it. Ask what ACV tier that number describes, and half the room goes quiet. That gap, a benchmark stated with certainty and no context for who it applies to, is where […]

Ask ten CS leaders how they calculate churn rate and nine will give you the same formula: customers lost divided by customers you started with, times 100. It’s the easiest number in the post-sales stack to compute, which is exactly why it’s the easiest to misuse in a board meeting. Report 4% monthly churn, someone […]

The account looked healthy right up until it churned. Usage was decent, support volume was normal, the health score was green, and nobody had raised anything particularly alarming in the last QBR. Then renewal came around and the customer said they were leaving. Anyone who has spent enough time around Customer Success has seen some […]