> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Total Contacts, HubSpot

> All-time CRM contact count. Reference number for everything below, funnel rates use this as the denominator. How to read it, why it matters, and how to ac...

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Email Marketing](/nerve-centre/connectors#connectors-by-type)

> All-time CRM contact count. Reference number for everything below, funnel rates use this as the denominator.

## At a glance

> All-time count of distinct contact records in your HubSpot portal. The denominator that every funnel rate, list-coverage check, and per-contact KPI on this dashboard sits on top of. Pulled from `GET /crm/v3/objects/contacts` and reflects whatever is currently in HubSpot, including unsubscribed, bounced, and unengaged contacts.

|                              |                                                                                                                                                                                                                                                                      |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**           | Total distinct `vid` (or `hs_object_id`) records returned by `/crm/v3/objects/contacts`. Includes every lifecyclestage (subscriber, lead, MQL, SQL, opportunity, customer, evangelist, other) and every email-status (subscribed, unsubscribed, bounced, unengaged). |
| **HubSpot Hub scope**        | All Hubs. Contacts are the universal record; Marketing, Sales, and Service Hubs all read from the same contact object.                                                                                                                                               |
| **Lifecycle stage filter**   | None. This is the everyone-in-the-portal number. For stage-filtered counts use the lifecycle distribution funnel card.                                                                                                                                               |
| **List membership**          | Not filtered. A contact in zero lists still counts. List-based segments are computed on top of this number, not the other way around.                                                                                                                                |
| **Email-subscription state** | Not filtered. Unsubscribed and bounced contacts still count. The `Active Subscribers` card subtracts them.                                                                                                                                                           |
| **Deletion / GDPR purge**    | Hard-deleted contacts disappear immediately. GDPR-deleted contacts are removed permanently and never reappear.                                                                                                                                                       |
| **Multi-portal**             | One number per connected portal. Agencies running multiple HubSpot portals see this card per portal, no aggregate.                                                                                                                                                   |
| **Currency**                 | n/a (count).                                                                                                                                                                                                                                                         |
| **Time window**              | `RT`, real-time read on every card load. No vsP comparison because the all-time count drifts upward continuously.                                                                                                                                                    |
| **Alert trigger**            | None. The card is a reference figure; growth or shrinkage signals are picked up by `New Contacts (period)` and `Lifecycle Stage Distribution`.                                                                                                                       |
| **Roles**                    | owner, 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

A B2B SaaS company running HubSpot Marketing Hub Pro plus Sales Hub Pro for the last four years. Reading this card on 14 Apr 26:

| Bucket                     | Count  | Share |
| -------------------------- | ------ | ----- |
| Total Contacts (this card) | 84,200 | 100%  |
| Lifecycle: Subscriber      | 38,600 | 45.8% |
| Lifecycle: Lead            | 22,400 | 26.6% |
| Lifecycle: MQL             | 8,900  | 10.6% |
| Lifecycle: SQL             | 3,100  | 3.7%  |
| Lifecycle: Opportunity     | 920    | 1.1%  |
| Lifecycle: Customer        | 4,800  | 5.7%  |
| Lifecycle: Other / unset   | 5,480  | 6.5%  |
| Email subscribed           | 51,200 | 60.8% |
| Email unsubscribed         | 18,900 | 22.4% |
| Hard-bounced               | 6,400  | 7.6%  |
| Never-engaged (>365D)      | 7,700  | 9.2%  |

Five things this picture reveals:

1. **84,200 total but only 51,200 are emailable.** A 39% gap between portal size and email-reachable size is normal for a four-year-old portal. Marketing-Hub pricing is based on this number, not the emailable subset, so audit Hub HS04 fires when the gap widens above 50%.
2. **Customer share at 5.7% is healthy for B2B SaaS.** A 5-10% customer-to-contact ratio is typical for SaaS sub-\$500 ACV; lower for enterprise (long cycles, fewer customers); higher for consumer DTC (shorter cycles, more customers). Outside this band, lifecycle definitions usually need cleanup.
3. **The Other / unset bucket at 6.5% is the cleanup target.** 5,480 contacts with no lifecyclestage value will not appear in any funnel calculation, so the funnel rates in `Lead to MQL` and `MQL to SQL` understate true throughput. Audit HS01 picks this up.
4. **Subscriber bucket dominates at 45.8%.** That is contacts who opted in but never converted to lead. For a B2B portal this usually means a popular content magnet (gated whitepaper, webinar) brought in volume that nurture sequences never warmed up. The fix is workflow enrolment for the dormant subscriber bucket, not more top-of-funnel.
5. **Total Contacts grows roughly 3-5% per month for a healthy B2B portal.** This portal is on plan. A growth rate above 15% per month for two consecutive months almost always means a list import (acquisition, conference badge scan, partner data swap), not organic, and triggers tier-pricing risk if the portal is on a contact-priced plan.

## Sibling cards merchants should reference together

Total Contacts is the denominator for almost every other HubSpot card. Pair it with these:

| Card                                                                                                  | Why pair it with Total Contacts                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [New Contacts (period)](/nerve-centre/kpi-cards/hubspot/new-contacts)                                 | The growth view. Total Contacts is the stock; New Contacts is the flow. Stock without flow is a dying portal.                                                                       |
| [Lifecycle Stage Distribution](/nerve-centre/kpi-cards/hubspot/lifecycle-stage-distribution)          | The shape view. Tells you what the 84,200 are doing, where the cleanup work is.                                                                                                     |
| [MQLs](/nerve-centre/kpi-cards/hubspot/mqls)                                                          | The marketing-handoff bucket. MQL ÷ Total Contacts gives the qualified-lead density (healthy B2B band: 8-15%).                                                                      |
| [SQLs](/nerve-centre/kpi-cards/hubspot/sqls)                                                          | The sales-acceptance bucket. SQL ÷ Total Contacts gives a tighter pipeline-health proxy.                                                                                            |
| [Lead to MQL Conversion %](/nerve-centre/kpi-cards/hubspot/lead-mql-conversion)                       | The progression rate from the largest bucket. Drop here cascades into MQL volume within 60 days.                                                                                    |
| [Companies](/nerve-centre/kpi-cards/hubspot/companies)                                                | The B2B-specific denominator. Contacts ÷ Companies gives the average contacts-per-company (healthy: 3-8 for ABM accounts).                                                          |
| [Klaviyo Total Contacts (when DTC overlap)](/nerve-centre/kpi-cards/klaviyo/email-attributed-revenue) | If the merchant runs both HubSpot for sales-CRM and Klaviyo for DTC email, Total Contacts here is usually the larger number; Klaviyo only holds opted-in commerce subscribers.      |
| [Shopify customers (when commerce-attached)](/nerve-centre/kpi-cards/shopify/total-revenue)           | Cross-check: HubSpot lifecycle-customer count should approximate Shopify distinct-customer count for connected stores. Big gaps surface in `Top Customers Without HubSpot Contact`. |

## Reconciling against the vendor's own dashboard

**Where to look in HubSpot:**

The closest native view is the contact list itself:

> [HubSpot → Contacts → Contacts](https://app.hubspot.com/contacts) (top-right shows total record count)

For a richer breakdown:

> [HubSpot → Reports → Analytics tools → Contacts analytics](https://app.hubspot.com/reports-dashboard) (filter `Contacts created` to All time)

The number on the contact-list header should match this card to within a few records.

**Why our number may legitimately differ from HubSpot's:**

| Reason                           | Direction                                   | Why                                                                                                                                                                                      |
| -------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Sync lag**                     | Ours lower for the most recent 5-15 minutes | Vortex IQ pulls via the contacts API on a 15-minute schedule (or webhook for portals with the listener installed). Records created in the last 5-15 minutes may not be in our index yet. |
| **GDPR-deleted records**         | Either                                      | HubSpot purges GDPR-deleted contacts immediately; if Vortex IQ still has the record cached from before the purge, the cached read will be higher for one sync cycle, then catches up.    |
| **Soft-deleted vs hard-deleted** | Ours higher temporarily                     | Soft-deleted contacts (`archived = true`) are excluded by HubSpot's UI count but may persist in Vortex IQ's cache for one sync cycle.                                                    |
| **Portal timezone vs UTC**       | None on this card                           | Total Contacts is an all-time count, no timezone-boundary effect.                                                                                                                        |
| **Multi-portal aggregation**     | n/a                                         | Vortex IQ scopes per portal; an agency with two portals sees two cards.                                                                                                                  |

**Cross-connector reconciliation:**

The most productive reconciliations involve email and commerce platforms, since contacts are the primary identifier across all three.

| Card                                                                        | Expected relationship                                                                                  | What causes legitimate divergence                                                                                                                                                                                                  |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Klaviyo Active Subscribers](/nerve-centre/klaviyo/klv_active_profiles)     | Klaviyo subscriber count is typically 30-60% of HubSpot Total Contacts for a DTC merchant running both | HubSpot stores all CRM contacts (subscribers, leads, sales-pipeline contacts). Klaviyo holds only commerce-opted-in subscribers, so it always carries fewer.                                                                       |
| [Shopify distinct customers](/nerve-centre/kpi-cards/shopify/total-revenue) | Shopify customer count is typically 5-15% of HubSpot Total Contacts                                    | Most HubSpot contacts never become Shopify customers (top-of-funnel lifecycle stages dominate). Customer-stage HubSpot contacts should approximate Shopify customers, big gaps surface in `Top Customers Without HubSpot Contact`. |
| [GA4 audience size](/nerve-centre/kpi-cards/google-analytics/users)         | GA4 30-day users is typically 3-10× HubSpot Total Contacts                                             | GA4 includes anonymous visitors; HubSpot only contacts who submitted forms or got cookied via tracking pixel.                                                                                                                      |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple CRM platforms)</em></summary>

  Total Contacts is the universal CRM denominator. Same concept exists on:

  * [`salesforce.sf_total_contacts`](/nerve-centre/salesforce/sf_total_contacts) (when added)
  * [`pipedrive.pd_total_persons`](/nerve-centre/pipedrive/pd_total_persons) (when added)

  For agencies running mixed CRM stacks, the lifecycle-distribution shape matters more than the absolute number.
</details>

## Known limitations / merchant FAQs

**Why does this count include unsubscribed and bounced contacts?**
Because Total Contacts is the portal-stock figure (and HubSpot bills on it). Unsubscribed contacts still occupy a record, still count toward your Marketing Hub tier, and still appear in Sales Hub views. To exclude them, look at `Active Subscribers` instead.

**My HubSpot bill jumped, why?**
Marketing Hub tiers are priced on Marketing-Contact count (a subset of Total Contacts where `hs_marketable_status = MARKETABLE`). When this card jumps by 10,000+ in a month, the most common cause is a list import or a workflow that reset hs\_marketable\_status. Audit HS04 surfaces this within 24 hours.

**Why is my list-segment number lower than this?**
HubSpot's lists, both static and active, are computed off this base. A static list captures a snapshot at the moment of creation and never refreshes; an active list re-evaluates roughly every 15 minutes. If you created a static list six months ago and a contact qualified yesterday, the static list still excludes them.

**My deal pipeline number doesn't match my dashboard, what gives?**
This is the contacts card, not deals. Total Contacts and Total Deal Pipeline Value are independent. A B2B portal with 84,200 contacts and 720 open deals is normal (the typical contact-to-deal ratio is 50:1 to 200:1 for B2B SaaS).

**Multi-portal aggregation, how does Vortex IQ handle this?**
One card per portal. We do not aggregate Total Contacts across HubSpot portals because contact records are not deduplicated across portals; the same email may exist in two portals as two separate records. Aggregating would double-count.

**Why does today's number sometimes go down?**
Two causes: (a) a bulk-delete cleanup just ran, removing thousands of stale contacts; (b) GDPR purge requests were processed (rare, usually 1-3 records). HubSpot logs both in the audit log under `Account → Activity`.

**Will GDPR-deleted contacts come back when I re-import the same email?**
No. GDPR deletion is permanent. The contact-id is burned and a re-import creates a new record with a new id, fresh history. This is by design.

**Why is the lifecycle distribution not adding up to this total?**
Look for the Other / unset bucket. HubSpot allows lifecyclestage to be empty (a property that has not been set on a contact); these contacts won't appear in any stage filter. Audit HS01 surfaces the unset count and recommends a default-stage workflow.

**How does this differ from the contacts list export?**
The export is a paginated CSV of the same query, not a different number. If the export count differs from this card by more than 1%, sync lag is the most likely cause; re-run the export 30 minutes later and it should converge.

***

### Tracked live in Vortex IQ Nerve Centre

*Total Contacts* 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
