Lifecycle Stage vs Lead Status: What Each Property Governs and How to Configure Both
Lifecycle stage is the funnel's reporting spine — forward-only, synced across contacts and companies, consumed by attribution. Lead status is the working state inside a stage. Conflating them breaks both. What each property does mechanically, and a configuration that keeps them apart.
Paul Maxwell
AUTHOR
GET WEEKLY REVOPS INSIGHTS
No spam. Unsubscribe anytime.
HubSpot ships two properties that both look like the answer to "where is this person in our funnel", and portals that conflate them end up with reporting nobody trusts and worklists nobody uses. The two properties have different mechanics, different consumers and different rates of change, and the configuration that works treats that separation as the design.
Definitions
Lifecycle stage — the default property, on both contacts and companies, recording how far the relationship has progressed. Internal name lifecyclestage. Its default values run Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer, Evangelist, Other.
Lead status — a default contact and company property, internal name hs_lead_status, holding the current working state of a lead being actively pursued. Its values are a customisable picklist with no built-in automation semantics.
Forward-only automation — HubSpot's documented rule that automatic updates to lifecycle stage only move it forward; setting an earlier value requires the property to be cleared first, manually or by workflow.
Working state — where a record stands inside one stage: attempting contact, connected, needs follow-up, unqualified. Working states change daily; stages change a handful of times in a relationship's life.
The Mechanics of Lifecycle Stage
Lifecycle stage is infrastructure, and it behaves like it. The property exists on contacts and companies and is kept aligned between them — stage movement propagates through record associations, which is why a company's stage and its contacts' stages are not independent facts. Automatic updates come from record creation defaults, associations and connected apps, and they only move the stage forward: a customer does not silently become a lead again, and the platform refuses automatic regression unless the value is first cleared. The default stages can be customised or extended in settings, and on Professional and Enterprise tiers each stage accrues calculated time-in-stage properties, which is what makes funnel-velocity reporting possible without building anything.
Those mechanics tell you what the property is for. Forward-only movement, cross-object sync and time-in-stage calculation are the behaviours of a reporting spine — a small, stable, shared vocabulary that conversion rates, attribution and revenue reporting can be computed over. Every consumer of lifecycle stage is downstream analytics or automation; almost none is a rep deciding what to do next.
The Mechanics of Lead Status
Lead status has almost no mechanics, and that absence is the point. It is a picklist whose values you define in the property settings, with no automatic transitions, no cross-object enforcement and no directional rule. HubSpot ships suggested values, and nearly every serious configuration replaces them with the vocabulary of its own sales motion — attempting contact, connected and in dialogue, meeting booked, needs follow-up after event, unqualified with a reason.
The absence of built-in behaviour makes lead status cheap to change and safe to argue about. Renaming a working state or adding one costs a picklist edit and a saved-view update; renaming a lifecycle stage ripples through every report, workflow and integration that consumed it. That asymmetry is the practical reason the two properties must not trade jobs.
The Division of Labour
The rule that keeps a portal coherent is one sentence long: lifecycle stage records what the relationship has become, and lead status records what is being done about it right now.
The common failure is encoding working states into lifecycle stages — adding stages like Contacted, Follow-Up or Nurture to the funnel because a rep wanted to see them on the record. Each addition degrades the reporting spine: conversion-rate reports acquire steps that are not conversions, time-in-stage stops meaning progression, and the forward-only rule starts fighting daily work, since working states legitimately move backward and the funnel does not. The mirror-image failure — encoding the funnel into lead status, so that "MQL" appears as a status value — quietly forks the source of truth, and the fork is discovered when marketing's funnel counts and sales' worklists disagree in the same meeting.
Unqualified deserves its own sentence, because it is the value teams place worst. Disqualification is a working outcome, not a funnel regression: the honest configuration is a lead status of Unqualified accompanied by a reason property, leaving lifecycle stage wherever the relationship actually reached. Pushing disqualified leads back down the lifecycle both fights the forward-only mechanics and destroys the historical record of how far they came, which is exactly the data a later re-engagement effort needs.
Configuration Procedure
- Write an exit criterion for every lifecycle stage in use — the observable fact that moves a record forward, such as "MQL: submitted a qualified-intent form" or "SQL: accepted by an owner within the response SLA". A stage without an exit criterion cannot be reported on honestly.
- Review the lifecycle stage automation settings against those criteria, and remove or customise stages your motion genuinely does not use rather than leaving them as noise.
- Replace the default lead status values with the working states your reps actually pass through, in the property editor, and add an "unqualified reason" property alongside.
- Build one workflow per handoff boundary that clears lead status when lifecycle stage advances — a fresh SQL should not arrive carrying the working state of its MQL life.
- Verify with a single test contact: advance it through each stage, confirm time-in-stage values populate, confirm lead status clears at the boundaries you automated, and confirm an attempted automatic regression fails until the value is cleared — the failure is the documented behaviour working.
Failure Modes
Symptom: a workflow that should move records to an earlier stage does nothing. Cause: automatic lifecycle updates only move forward; earlier values require clearing first. Fix: add a clear-property action before the set-property action, and ask whether the regression belongs in lead status instead.
Symptom: funnel conversion reports show steps with near-100 percent conversion. Cause: working states were added as lifecycle stages, so adjacent "stages" are not real transitions. Fix: move those values to lead status and re-point the affected views.
Symptom: marketing and sales report different MQL counts from the same portal. Cause: one team reads lifecycle stage while the other reads a status value duplicating it. Fix: delete the duplicate value; one property owns the funnel.
Symptom: reps' worklists show leads already handed off or closed. Cause: lead status is never cleared on stage transition. Fix: the boundary workflows in step 4 above.
Symptom: a contact's stage and its company's stage disagree in a way a report exposes. Cause: stage sync moves through associations, and one side was set manually against the flow. Fix: decide which record is authoritative for the relationship, correct the other, and stop setting stages by hand outside the documented automation.
Scope and Limits
This article covers the two properties' division of labour, not the design of the stages themselves — what should count as an MQL is an organisational agreement no property configuration can settle. Custom lifecycle stages and the calculated time-in-stage properties carry tier requirements noted in HubSpot's documentation, which is authoritative over this text as the platform changes. Deal stages are a separate system belonging to pipelines and are deliberately not discussed here.
Verification Checklist
Every lifecycle stage in use has a written, observable exit criterion.
No lifecycle stage value describes a working state, and no lead status value duplicates a funnel stage.
An unqualified reason property exists and is required when status is set to Unqualified.
Boundary workflows clear lead status when lifecycle stage advances.
A test contact has been walked through the full funnel and the calculated time-in-stage values populated.
Lifecycle architecture is part of any CRM implementation we scope.