Skip to main content
Card class: HeroCategory: Email Marketing
Subscriber → Lead → MQL → SQL → Opportunity → Customer → Evangelist counts. Sharp drop-offs flag the stage that needs work.

At a glance

Contact counts at each stage of HubSpot’s lifecycle funnel: Subscriber, Lead, MQL, SQL, Opportunity, Customer, Evangelist, Other. Sharp drop-offs between adjacent stages flag the conversion gap that needs work. Pulled from /crm/v3/objects/contacts grouped by lifecyclestage.
What it countsCOUNT(distinct contact) GROUP BY lifecyclestage across all contacts in the portal. The stages are the standard HubSpot 8 (subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other) plus any custom stages defined on the portal.
HubSpot Hub scopeAll Hubs. The lifecyclestage property exists on every contact regardless of which Hub the portal subscribes to.
Stage definition sourceHubSpot’s standard taxonomy with custom-stage support via /crm/v3/properties/contacts/lifecyclestage. Two portals with custom stages will show different funnel shapes.
Stage move backwardsCounted at current stage. HubSpot allows lifecyclestage to move forward or backward; the card reflects the current value, not the highest-ever.
Stage historyNot surfaced on this card. The first/last touchpoint per stage is exposed via the property history endpoint; this card uses point-in-time only.
Unset / null lifecyclestageCounted in the “Other / unset” bucket. A 5%+ unset bucket indicates contact-creation flows that do not seed a default stage.
Customer-stage backfillCustomers can be marked via Stripe / Shopify integration triggers, manually, or by workflow. The card does not distinguish; it shows whoever is currently flagged customer.
Email-subscription stateNot factored in. An unsubscribed contact at lifecyclestage = customer still counts in the customer bucket.
Currencyn/a (count).
Time windowRT, real-time read. Distribution is a stock figure.
Alert triggerNone on the card itself. Stage-to-stage conversion alerts (Lead-to-MQL <15%, MQL-to-SQL <25%, SQL-to-Customer <20%) live on dedicated cards.
Rolesowner, marketing, sales

Calculation

Calculated automatically from your HubSpot data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

The same B2B SaaS portal with 84,200 total contacts. Reading the lifecycle funnel on 14 Apr 26:
StageCountShareConversion to next stage
Subscriber38,60045.8%58% (Subscriber to Lead trailing 90D)
Lead22,40026.6%39.7% (Lead to MQL)
MQL8,90010.6%34.8% (MQL to SQL)
SQL3,1003.7%29.7% (SQL to Opportunity)
Opportunity9201.1%(deal-stage view takes over here)
Customer4,8005.7%n/a
Evangelist3200.4%n/a
Other / unset5,1606.1%n/a
Five things this picture reveals:
  1. Subscriber bucket at 45.8% is the dormant-list reservoir. 38,600 contacts opted in but never converted to lead. For a B2B portal this usually means a popular gated content magnet (whitepaper, webinar) brought volume that nurture sequences never warmed. The fix is workflow enrolment, not more top-of-funnel.
  2. Lead-to-MQL at 39.7% is healthy. B2B benchmark is 20-30%; this team is above benchmark, suggesting lead scoring is calibrated correctly. Audit HS01 fires below 15%.
  3. MQL-to-SQL at 34.8% is also above benchmark. B2B benchmark is 25-35%; this team is at the top end. Sales is accepting MQLs as worth working, no junk-rejection problem.
  4. SQL-to-Opportunity at 29.7% is the bottleneck. B2B benchmark is 30-40%; this team is at the bottom of the band. Most likely cause: BANT or MEDDPICC qualification too strict, deals being created late in the sales cycle. Pair with Average Deal Cycle to confirm.
  5. The Other / unset bucket at 6.1% (5,160 contacts) is the cleanup target. These contacts will not appear in any funnel calculation, so the rates above are computed on the 79,040 contacts with a stage. Audit HS01 surfaces unset count and recommends a default-stage workflow.
Customer-to-Subscriber ratio matters too. 4,800 customers ÷ 38,600 subscribers = 12.4%, meaning roughly 1 in 8 subscribers ends up a customer. For B2B SaaS sub-$500 ACV that ratio is healthy; below 5% indicates a list with poor product-market-fit signal.

Sibling cards merchants should reference together

The funnel shape is the headline; conversion rates between stages are the sub-headlines:
CardWhy pair it with Lifecycle Distribution
Total ContactsThe denominator. Funnel shares sum to 100% of this number minus the unset bucket.
Lead to MQL Conversion %The first major rate. Below 15% indicates lead-scoring drift or stalled nurture.
MQL to SQL Conversion %The marketing-to-sales handoff health. Below 25% means SDRs are rejecting MQLs as junk.
SQL to Customer Conversion %The sales close-rate. Below 20% means pricing, fit, or competitor problems.
MQLs (count)The MQL flow figure (period count) versus the MQL stock here. Stock without flow signals MQL-creation has stalled.
Predictive Score DistributionThe complementary view: HubSpot’s 0-100 propensity bucket. Compare lifecycle distribution against score distribution to spot lifecycle-misalignment.
Lifecycle Stage to First Purchase ConversionThe cross-channel reality check, lifecycle-customer should approximate commerce-customer.
Klaviyo Active Subscribers (when commerce-attached)If the merchant runs Klaviyo for DTC, Subscriber-stage HubSpot count should approximate Klaviyo subscriber count. Big gaps indicate one of the two ESPs has stale opt-in state.

Reconciling against the vendor’s own dashboard

Where to look in HubSpot: Two native views give the closest comparison:
HubSpot → Reports → Analytics tools → Contacts analytics (Lifecycle Stage breakdown) HubSpot → Contacts → Contacts (filter on Lifecycle stage, count per filter)
The Contacts analytics tile breakdown should match this card stage-for-stage to within a few records. Why our number may legitimately differ from HubSpot’s:
ReasonDirectionWhy
Sync lagOurs lower for the most recent 5-15 minutesLifecycle moves happen in real time in HubSpot’s UI; Vortex IQ trails by one sync cycle.
Backfill workflowsEitherIf a workflow re-stages contacts in bulk, both HubSpot and Vortex IQ should converge within 15 minutes. During the backfill window, intermediate states differ.
Custom stagesEitherPortals with custom stages (e.g. “Trial Signup”, “Demo Booked”) show those custom stages in this card. HubSpot’s standard analytics tile may bucket them as “Other”.
Portal timezone vs UTCNone on a stock figureLifecycle distribution is a snapshot, no window-boundary effect.
Hard-deleted contactsBoth sameBoth sides exclude.
Cross-connector reconciliation: The most useful reconciliation is HubSpot lifecycle-customer count against the actual commerce-platform customer count.
CardExpected relationshipWhat causes legitimate divergence
Lifecycle Stage to First Purchase ConversionThe customer-stage HubSpot count should approximate Shopify / Stripe distinct-customer count for connected storesCustomers acquired via self-serve checkout never become HubSpot contacts unless a marketing pixel fired; stale customer-stage records (cancelled subscriptions still flagged customer).
Top Customers Without HubSpot ContactInverse: commerce-platform customers missing from HubSpot contactsSelf-serve onboarding without marketing-tag fire; B2C stores often see 70-90% of customers never reach HubSpot.
Klaviyo Active SubscribersSubscriber-stage HubSpot count should approximate Klaviyo opted-in subscriber countOne ESP holds stale opt-ins; both should sync via two-way integration.

Known limitations / merchant FAQs

Why is my customer count different from my Stripe / Shopify customer count? HubSpot lifecycle-customer is a contact attribute, not an actual purchase. A contact may be marked “customer” by a workflow, by a sales rep, or by a stale Stripe integration that did not unflag cancelled subscribers. Stripe / Shopify customers are anyone with a payment record. Use the cross-channel Top Customers Without HubSpot Contact card to surface the actual gap. Lifecycle-stage backfill, what is it and how does it affect this card? HubSpot allows running a workflow that re-stages contacts in bulk based on property values. During a backfill the distribution shifts in real time. Vortex IQ catches up within one sync cycle (15 minutes). For long-running backfills the card reflects intermediate state until the workflow completes. Why is the unset / Other bucket so big? Most-common cause: contacts created via API or import without a default-stage assignment. The fix is a “set lifecyclestage to subscriber when created” workflow. Audit HS01 surfaces unset count and recommends this. Why does HubSpot allow lifecycle to move backward? By default it does not. There is a portal setting (Settings → Properties → lifecyclestage → “Disable lifecycle stage downgrade”) that prevents backward moves. This card reflects whatever HubSpot currently shows; if backward moves are enabled and a customer churned back to subscriber, that contact appears in the subscriber bucket. Sequence enrolment vs send timing, does it affect lifecycle? Sequence enrolment is a Sales Hub Sequences feature, separate from lifecycle. Lifecycle changes via workflow are independent. A sequence enrolment does not move lifecycle; only an explicit workflow rule or rep manual edit does. List-segment lag, does it move my distribution? Active list-membership refreshes every 15 minutes; lifecycle changes triggered by list-membership therefore lag by up to 15 minutes. The distribution converges within one cycle. Multi-portal aggregation, can I see lifecycle across portals? No. One card per portal because lifecycle taxonomies (especially custom stages) are portal-specific. Aggregating two portals with different custom stages would mix incomparable buckets. Today-volatility, why does the funnel shape shift hourly? Three sources: (a) form submissions move contacts subscriber-to-lead, (b) workflows that fire on engagement-based triggers move contacts to MQL, (c) sales reps manually progress contacts. Hourly shifts of <0.5% are normal; >2% in an hour means a bulk workflow or import is running. Why is my deal pipeline number different from my dashboard? This is the lifecycle (contact-side) card, not the deal-pipeline (deal-side) card. Lifecycle and deal pipelines are independent objects. Opportunity-stage lifecycle contacts may not all have deals; conversely, deals may exist for contacts at SQL-stage. The cross-reference is in Lifecycle Stage to First Purchase Conversion.

Tracked live in Vortex IQ Nerve Centre

Lifecycle Stage Distribution is one of hundreds of KPI pulses Vortex IQ tracks across HubSpot and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.