Loading

Understanding Contact Counts and Breakdown in Marketing Cloud

Date de publication: Dec 22, 2025
Description

This article explains the concept of Contact Counts in Marketing Cloud and provides a detailed breakdown of their composition. Note: For inquiries regarding specific billing or contract details for your account, please contact your Account Executive directly.

Résolution

Executive Summary

We frequently receive inquiries regarding how Contact Counts are calculated. This article clarifies the technical concepts and internal breakdowns.

Note on Billing: While Support can assist with technical definitions and usage explanations, we cannot address inquiries regarding specific contract terms or billing amounts. Please direct questions about your invoice or contract limits to your Account Executive.

1. How Contact Counts are Calculated (Billable Contacts)

The billable Contact Count is calculated by taking the sum of contacts from sources 1 through 3 below and deduplicating them based on the Contact Key.

  1. All Contacts

  2. Contacts in Populations

  3. Contacts in Managed Lists for Triggered Sends (Hidden)

*In most modern environments, (2) Populations are rarely used, and (3) Triggered Sends usually represent a negligible fraction of the total. Therefore, in most scenarios, (1) All Contacts represents the primary source of your billable usage.

To analyze the breakdown of your contacts (e.g., by channel), generate the "Contacts Counts" report via Analytics Builder. If you notice an unintended increase in contacts, reviewing this report is the first step.

Important: Please note that manually adding or subtracting numbers from various UI screens or reports will not strictly match the total billable count due to data overlaps and backend system tables.

Reference)

https://help.salesforce.com/s/articleView?id=000393417&type=1

 


2. Detailed Breakdown of Contacts

1) All Contacts

These are records managed at the account level (Enterprise ID / EID) within Contact Builder. They are generally classified into two categories:

  • 1-1) Subscribers with Channels (Email, SMS, MobilePush)

  • 1-2) Contacts without Channels

Terminology Note: While "Contact" and "Subscriber" are often used interchangeably, there is a distinction. Generally, a record subscribed to Email Studio is a "Subscriber," while "Contact" is the broader term covering Mobile Studio and cross-channel identities.

 

1-1) Subscribers with Channels

These are records registered via message sends, Mobile App downloads, imports, or API calls that are attached to a specific channel (Email, SMS, or Push). They always possess address information (e.g., Email Address, Device ID, System Token).

  • Scope of Management:

    • All Subscribers (Email): Managed at the Account (EID) level. A subscriber in a Parent BU is visible to Child BUs.

    • Mobile Contacts: Managed at the Business Unit (BU) level.

 

1-2) Contacts without Channel Addresses (Orphaned Contacts)

These records exist in "All Contacts" but are not associated with any specific channel (Email, Mobile, etc.). If your Contact Count is higher than expected, this category is often the primary cause. When looking to reduce contact usage, investigate and delete these contacts first. (See Section 4 for creation triggers).

 

2) Contacts in Populations

Records residing in Data Extensions linked via Data Designer as "Populations" count towards your total. Contacts entering via Populations might not initially exist in "All Contacts" or "All Subscribers" but will be added to "All Subscribers" once an email is sent to them.

  • How to check: Go to Contact Builder > Data Designer. Check if any Attribute Group is linked as a "Population" (indicated by a specific icon). If you only see a "+" icon, this feature is not in use.

Reference)

https://trailhead.salesforce.com/content/learn/modules/marketing-cloud-contact-management/configure-contact-models?trail_id=develop-for-marketing-cloud

 

3) Contacts in Managed Lists for Triggered Sends

When configuring Triggered Emails or Journey Builder Test Sends, if you configure the system not to add recipients to "All Subscribers," they are stored in a hidden internal list. In the _Subscribers data view, these appear with a SubscriberType of "Unknown External System."

  • Recommendation: To avoid fragmented data, we strongly recommend configuring Triggered Sends to "Add to All Subscribers" unless you have a specific requirement to avoid it.

  • Verification: Check the "Contacts from Triggered Sends" field in the Contacts Counts report.

Reference)

https://help.salesforce.com/s/articleView?id=sf.mc_es_create_triggered_email_interaction.htm&type=5

 


3. Calculation Example

Here is an example of how the deduplication logic works. Assume the following records exist (lowercase letters represent Contact Keys):

[Scenario Configuration]

  • Business Unit A (Parent)

    • All Contacts: a, b, c, d, e, g, h

    • Populations (DE-A): a, f

    • Email Studio: a, b, c

    • MobilePush: c, d

    • GroupConnect: a, e

  • Business Unit B (Child)

    • All Contacts: a, b, c, d, e, g, h (Same as Parent due to EID scope)

    • Populations (DE-B): i

    • Email Studio: a, b, c (Same as Parent)

    • MobilePush: g

[Counting Logic]

  1. All Contacts: a, b, c, d, e, g, h (Total: 7)

    • (Breakdown - With Channel: a, b, c, d, e, g)

    • (Breakdown - Without Channel: f,g,i )

  2. Contacts in Populations: a, f, i (Total: 3)

[Billable Count Calculation]

The system takes the Union of [1. All Contacts] + [2. Populations] + [3. Hidden Lists] and removes duplicates based on Contact Key.

  • Union Set: a, b, c, d, e, g, h + a, f, i

  • Final Billable Count (9): a, b, c, d, e, f, g, h, i


4.Common Sources of "Contacts without Channel Addresses"

Marketing Cloud does not explicitly log the "source of creation" for every contact. You must infer the source based on the Contact Key format and system behavior.

A. Journey Builder Entry

When a Contact Key enters a Journey, if it does not already exist in "All Contacts," it is added immediately. It is not added to "All Subscribers" (Email) until an Email Activity is actually triggered.

  • Scenario: A contact enters a journey but fails or exits before receiving a message. They remain as a "Contact without Channel."

  • Diagnosis: If you see many channel-less contacts with keys resembling Member IDs, check the Journey Builder [History] tab. Verify if these keys are entering the journey but failing to pass any messaging activities.

  • Action: Review your Entry Source filters to ensure only valid, marketable contacts are entering journeys.

Note on Filtering: Even if you set up a filter in the Entry Source to exclude certain records, they are still added as Contacts during the filter evaluation phase.

 

B. Synchronized Data Extensions

If you use Marketing Cloud Connect to sync objects (Lead, Contact, User) from Salesforce CRM, these records are automatically added to "All Contacts."

  • Identifier: Contact Keys are 18-character strings starting with 003... (Contact) or 005... (User).

  • Important Edge Case (GUIDs): If a sync occurs while the Contact Delete process is running, the system may generate a GUID-based Contact Key instead of using the Salesforce ID. If you see GUID-based keys but do not use MobilePush, suspect this cause.

  • Action: Always apply a filter (e.g., "Has Email Address = True") in the Synchronized Data Source settings before attempting deletion. If you delete without filtering, they will reappear immediately (min. 15 mins).

C. MobilePush SDK Implementation

By default, the MobilePush SDK registers an anonymous contact with a GUID-based Contact Key upon app initialization. If the user later logs in and your app calls setContactKey (or setProfileId) to assign a known ID, the original anonymous contact may remain orphaned.

  • Example Scenario:

    1. Initial Launch: App opens. ContactKey A (GUID) is generated and linked to DeviceID 1.

    2. User Login: App calls setProfileId "B"

    3. Result: ContactKey B is created and DeviceID 1 is reassigned to B.

    4. Residue: ContactKey A loses its device association and remains in the system as a "Contact without Channel Addresses."

  • Action: Consider implementing Delay Registration in the SDK to prevent the creation of anonymous contacts until the user is identified.

 

D. GroupConnect (LINE/Whatapp)

When a user follows your LINE official account, a contact is created with a GUID Contact Key. If you later map this user to an existing Contact Key, the original GUID contact may remain as a residue record.

 

Reference)

https://help.salesforce.com/s/articleView?id=000313920&type=1

 


5. FAQ

Q) My Contact Count spiked suddenly.

A) First, check the "Contacts Counts" report to confirm if the increase is happening in a specific channel or in "Without Channel Address." In most cases, this is due to the creation of "Contacts without Channels" as described above. If necessary, run a Data Extract Activity for [Contacts Without Channel Addresses] in the Parent BU * (must be done in Parent) to identify and delete unnecessary contacts.

  • Reoccurrence: If "Contacts Without Channel Addresses" increase again immediately after deletion, consider the following causes:

    • Journey Builder: Are you periodically entering a large Data Extension into a Journey?

    • MobilePush: Is your app repeatedly calling setProfileId with different keys on the same device? (e.g., Frequent switching of Member IDs). In these cases, you should either schedule regular deletions of these contacts or review your Journey entry criteria and App implementation (timing of setProfileId).

 

Q) Can I manually reconcile the numbers in the UI to match my billable count exactly?

A) Unfortunately, even if you add and subtract the numbers visible in the UI and reports, you cannot perfectly reconcile them with the billable Contact Count. If you absolutely must attempt this, it requires the highly complex process of exporting the full list of Contact Keys from all channels across all Business Units using Mobile Lists, and then manually removing duplicates. Therefore, we recommend focusing on regularly deleting "Contacts without Channels Addresses" rather than trying to reconcile the exact calculation.

 

Q) I want to identify the exact source/path where a channel-less contact was generated.

A) As mentioned in this article, the system does not record the specific path or source from which a contact was generated. Therefore, please refer to the "Common Sources of 'Contacts without Channels'" section above and deduce which trigger applies to your situation based on the Contact Key format and timing.

 


Important Notes Regarding This Article

Please note that Contact configurations can vary significantly depending on each environment, so these explanations may not apply to every case. Additionally, system behaviors and specifications are subject to change without notice. Please understand this beforehand.

Ressources supplémentaires

Related Article)

Checking the Number and Breakdown of Contacts in Your Current Marketing Cloud Account

https://help.salesforce.com/s/articleView?id=000395022&type=1

Numéro d’article de la base de connaissances

000393417

 
Chargement
Salesforce Help | Article