Cross-Sell
How to cross-sell complementary products (add-ons, integrations) without diluting the core product value.
Why
Cross-sell is offering a complementary product to an existing customer: a customer on the Pro plan might also want an AI coding add-on ($10/mo), a team seats pack ($5/seat), or a premium support package ($50/mo). The economics are attractive because the customer already trusts you and the marginal cost of an add-on is near zero. The risk is diluting the core product: if you cross-sell 10 add-ons, the pricing page becomes a config matrix, the customer has to decide 10 things, and decision paralysis reduces conversion on the core plan. The right design is 2-3 add-ons, each with a clear value prop, offered as one-click additions at checkout (not on the pricing page). The most common mistake is building add-ons that should be features — 'private projects add-on for $5/mo' is not an add-on, it is a feature that should be in Pro. Add-ons are for things that have a real marginal cost (extra seats, extra AI usage, premium support with dedicated engineer time) or that serve a distinct segment (enterprise compliance pack).
When
When you have a product with a clear core and 2-3 natural add-ons (extra seats, extra usage, premium support). Do not cross-sell more than 3 add-ons — it dilutes the core.
How
1. Identify 2-3 add-ons that have a real marginal cost or serve a distinct segment: extra seats ($5/seat), extra AI usage ($10/100k calls), premium support ($50/mo with dedicated engineer) 2. Do not put add-ons on the pricing page — they dilute the core plan comparison; offer them as one-click additions at checkout, after the customer has chosen a plan 3. Make each add-on a one-click toggle: 'Add extra seats (+$5/seat)' with a quantity selector — do not require a separate checkout flow 4. Price add-ons to cover their marginal cost plus 50-100% margin: extra seats cost you ~$0.50/seat in support, so price at $5/seat (10x margin); premium support costs you ~$20/mo in engineer time, so price at $50/mo 5. Track add-on attach rate: what % of Pro customers buy each add-on? Target 20-30% for the most popular add-on; < 5% means the add-on is not valuable or not visible 6. Do not create add-ons for features that should be in the core plan — 'private projects add-on' is a feature, not an add-on; if you find yourself wanting to charge for it separately, it should be a tier differentiator 7. Bundle add-ons for annual plans: 'annual Pro includes 5 extra seats and premium support (a $130 value) for free' — this drives annual adoption and the marginal cost is low 8. Review add-ons quarterly: are they driving revenue? Are customers confused by them? Cut add-ons with < 5% attach rate — they add complexity without revenue
Example
# Add-ons (offered at checkout, not on pricing page)
const addOns = [
{ id: "extra_seats", price: 5, unit: "seat", label: "Extra team seats" },
{ id: "extra_ai", price: 10, unit: "100k calls", label: "Extra AI coding calls" },
{ id: "premium_support", price: 50, unit: "month", label: "Premium support (dedicated engineer, 4h SLA)" },
];
# Checkout flow (after plan selection)
// 1. Customer selects Pro plan ($29/mo)
// 2. Checkout page shows add-ons as one-click toggles:
// [ ] Extra team seats (+$5/seat) [qty: 3]
// [ ] Extra AI coding (+$10/100k calls) [qty: 2]
// [ ] Premium support (+$50/mo)
// 3. Total: $29 + $15 + $20 + $50 = $114/mo
// 4. One checkout — no separate flows
# Annual bundle (drives annual adoption)
// Annual Pro ($290/yr) includes:
// - 5 extra seats ($25/mo value)
// - Premium support ($50/mo value)
// - Total bundle value: $290 + $750 + $600 = $1640/yr for $290
# Attach rate tracking
// Pro customers: 1000
// Extra seats: 280 (28% attach) ✓
// Extra AI: 150 (15% attach) ✓
// Premium support: 40 (4% attach) ✗ → review or cutCommon Problems
- ⚠Putting add-ons on the pricing page — they create a config matrix that causes decision paralysis on the core plan. Offer add-ons at checkout, after the plan is chosen.
- ⚠Creating add-ons for features that should be in the core plan — 'private projects add-on' is a feature, not an add-on. Add-ons are for things with real marginal cost (seats, usage, support).
- ⚠More than 3 add-ons — each add-on adds complexity, and beyond 3 the customer cannot evaluate them all. Cut add-ons with < 5% attach rate.
Best Practices
- ✓Offer 2-3 add-ons at checkout (not on the pricing page) as one-click toggles — this captures incremental revenue without diluting the core plan comparison.
- ✓Price add-ons to cover marginal cost plus 50-100% margin — extra seats at $5 (10x the $0.50 support cost), premium support at $50 (2.5x the $20 engineer cost).
- ✓Bundle add-ons into annual plans to drive annual adoption — the marginal cost is low and the bundle makes annual a no-brainer, locking in a year of revenue.