Why this matters
Winning a new customer costs a lot. Growing an existing one usually costs far less, because they already trust you, already use the product and already have a payment method on file. In many mature SaaS companies, a large share of new revenue each year comes from customers they already have.
That growth does not happen on its own. It needs two things. First, a pricing model that lets the bill grow as the customer grows. Second, triggers that put the right offer in front of the customer at the moment their need changes. This lesson covers both, for SaaS and for D2C.
The framework
Pricing models that allow expansion
| Model | How the bill grows | Good for | Watch out for |
|---|---|---|---|
| Flat tiers | Only when the customer jumps a tier | Simple products, SMB buyers | Revenue moves in steps; heavy users underpay |
| Per seat | When the team grows | Collaboration tools | Seat sharing; contraction in layoffs |
| Pure usage | With every unit consumed | APIs, infrastructure, data | Hard to forecast; bill shock |
| Hybrid | Platform fee plus usage above an allowance | Most B2B products with a usage driver | Needs clear overage rates and alerts |
| Commit plus overage | Prepaid annual volume at a discount; overage or top-up when exceeded | Larger accounts, enterprise | Over-commit leads to a painful renewal |
Snowflake is a well-known example of commit plus consumption. Customers typically sign one to four year capacity agreements, and its 10-K notes that usage often runs ahead of the commitment, at which point customers buy more capacity or renew early.
The four expansion triggers
- Usage limits. The customer is close to, or over, an included allowance (contacts, API calls, storage, invoices).
- Seat growth. New teammates are invited, or active users rise above the plan’s seats.
- Feature gates. A user tries a feature on a higher tier (SSO, advanced permissions, automation, integrations).
- PQL signals. Product-qualified lead signals that show a free or small account looks like your best customers: several active users, a key feature used often, a company domain from a target segment.
The term PQL comes from product-led growth practice. A PQL is a user or account whose product behaviour, rather than form fills, shows buying intent.
An upsell trigger flow
Here is a flow for a usage-limit trigger in a self-serve SaaS. It separates small accounts, which should upgrade on their own, from large ones, which deserve a human.
Usage limit upsell flow
- TriggerAccount reaches 80% of included monthly usage
- Send · In-appIn-app banner: you've used 80%, here's what happens at 100%
- Send · EmailEmail to admin with usage chart and plan comparison
- WaitWait until usage reaches 100% or 7 days pass
- SplitDid the account reach 100%?
Yes, and PQL score 70+
- Send · EmailAccount owner gets a sales task with usage context
- Send · In-appIn-app: book a call or upgrade now, with 10% grace overage
- ExitUpgraded or in sales pipeline
Yes, PQL score below 70
- Send · In-appIn-app one-click upgrade, work keeps running on soft overage
- WaitWait 3 days
- Send · EmailReminder email with annual-plan saving
- ExitUpgraded or on overage billing
No
- ExitExit; re-enter next billing cycle
Step-by-step playbook
- Find your expansion driver. Look at accounts that grew their bill in the last 12 months. What changed first: usage, seats, or a feature need? That is the driver to price on and trigger from.
- Set the allowance. Choose included usage so that roughly the median customer uses 50% to 70% of it. That leaves room to grow without hitting the limit in month one.
- Publish overage rates. Make overage per unit slightly higher than the per-unit price of the next tier. That makes upgrading the cheaper choice for steady growth.
- Instrument triggers. Create events for
usage_80,usage_100,seat_invite_over_plan,gated_feature_clickedand a daily PQL score. Store them on the account, not just the user. - Build the flows. Warn at 80%. At 100%, keep work running with a grace overage. Route high-score PQLs to a human within one business day.
- Cap frequency. No more than one upsell message per user per week across all triggers. Over-prompting trains people to ignore you.
- Offer commitments. When an account has been over its allowance for two straight months, offer an annual commit at a 10% to 20% discount.
- Review per trigger every month. Report views, conversions and expansion MRR for each trigger. Retire the weak ones.
Worked example
Hypothetical. Say a SaaS for customer support charges a hybrid price: a $500 per month platform fee includes 100,000 automated replies. Overage is $4 per 1,000 replies. A Growth tier costs $900 and includes 250,000 replies.
Customer A uses 160,000 replies.
Overage = (160,000 − 100,000) ÷ 1,000 × 4 = 60 × 4 = $240
Bill = 500 + 240 = $740
Effective price = 740 ÷ 160 = $4.63 per 1,000 replies
Customer B uses 240,000 replies.
Overage = (240,000 − 100,000) ÷ 1,000 × 4 = 140 × 4 = $560
Bill on base plan = 500 + 560 = $1,060
On Growth, Customer B would pay $900. The upgrade saves them $160 a month and moves the company to a higher committed base. This is why overage rates should make the next tier the rational choice: the customer wins, and your revenue becomes more predictable.
Expansion across the base. Say 400 base-plan accounts and 15% of them (60 accounts) cross the allowance in a quarter. 40 upgrade to Growth and 20 stay on overage averaging $200 a month.
Upgrade expansion = 40 × (900 − 500) = $16,000 MRR
Overage expansion = 20 × 200 = $4,000 MRR
Total expansion = $20,000 MRR
On a base of 400 × 500 = $200,000 MRR, that is 10% expansion in one quarter from usage triggers alone.
D2C version: AOV through bundles and cross-sell
Hypothetical. A D2C skincare brand has 10,000 orders a month at an AOV of ₹900. It adds a “complete the routine” bundle on the product page and a one-click post-purchase add-on.
- 12% of orders take a ₹400 add-on:
0.12 × 400 = ₹48extra per order. - 5% upgrade to a ₹1,500 bundle instead of a ₹900 single item:
0.05 × 600 = ₹30extra per order.
New AOV = 900 + 48 + 30 = ₹978, an increase of about 8.7%.
Check margin before celebrating. If the bundle carries a 15% discount, work out contribution margin per order before and after. AOV that rises while margin per order falls is not a win.
B2B SaaS vs D2C: what changes
| Topic | B2B SaaS | D2C |
|---|---|---|
| Expansion unit | Usage, seats, tiers, add-on modules | Basket size, pack size, frequency, subscriptions |
| Main triggers | Limits, seat invites, gated features, PQL score | Cart contents, post-purchase moment, replenishment timing |
| Channel | In-app, email, sales for high-fit accounts | Product page, cart, thank-you page, WhatsApp, email |
| Success metric | Expansion MRR, upgrade rate | AOV, attach rate, contribution margin per order |
| Main risk | Bill shock and churn from aggressive limits | Discounting that erodes margin |
How to measure it
| Metric | Numerator | Denominator | Window and segment |
|---|---|---|---|
| Expansion MRR | MRR added from upgrades, seats, add-ons and overage | Not a ratio; report in currency | Monthly; by trigger |
| Upgrade rate | Accounts that moved up a tier | Accounts that hit the trigger | 30 days after trigger; by plan |
| PQL-to-paid | PQL accounts that became paid or upgraded | Accounts that reached PQL score | 60 days; by score band |
| Overage share | Accounts billed overage | All accounts on usage plans | Monthly; high share means allowances are too low |
| AOV | Revenue | Orders | Weekly; new vs returning buyers |
| Attach rate | Orders with the add-on | Orders where it was offered | Weekly; per placement |
Track expansion MRR against contraction MRR in the same report. An aggressive trigger that pushes upgrades and then causes downgrades next quarter is not working.