Method

How we count

Every count is the number of records that match an audience on one dataset version. This page explains each rule behind the number, so you can check it.

Short answer

A count in MyDataHub by Emailmovers is the number of records matching an audience definition on one immutable dataset version, exact for paid callers and rounded for anonymous ones. It is the same number in the app, the REST API and the MCP server, and it carries an id that replays it for 12 months.

The full count is 1,605,275 named business contacts at active UK companies, as of 26 September 2026. MyDataHub opens on premium records: an active company, a LinkedIn profile and contact validation within the last 12 months. Everything else is one toggle away, and the full figure always shows beside the premium one. Nothing is resolved silently, and every default is a visible toggle.

How does a count go from every contact to named managers?

The default landing count is a funnel of four steps, each cumulative on the one before. It shows how many records sit at active companies, how many have an email, how many have a named email and how many of those are at manager level or above.

From every contact to named managers and above
Step Filter added to the step above Contacts, 26 September 2026
1. Contacts at active companies Company status is active 9,028,587
2. With an email Has an email 1,660,190
3. With a named email Email type is a named person, not info@ 1,605,275
4. Manager level and above Job level is Manager or above (Owner, Partner, CxO, Chair, VP, Director, Senior manager, Manager) 1,277,443

Each filter is added to the one above it. Counted through MyDataHub on 26 September 2026.

The 26 September 2026 figures show why the headline is "named business contacts" and not "contacts". Most of the 9 million contacts at active companies have no email, so the funnel narrows to the people you can write to by name.

What is an audience definition?

Every count starts from one JSON document, in the namespace mydatahub.audience/1. A brief compiles into it, a saved audience stores it and an agent sends it, so a person and an agent who describe the same audience get the same count.

The operators in an audience definition
OperatorApplies toMeaning
all, any, notGroupsAND, OR and negation, nested to any depth
inCoded fieldsOne of the listed codes
between, gte, lteBanded and ranked fieldsAn inclusive range, or a bound over an ordered code list
matchesJob titleA keyword match with expansion sets and a mode: contains, starts_with or exact
within_radiusLocationA resolved centre plus a radius of 1 to 100 miles
in_listHashed email, domain, company number or title termMembership of an uploaded suppression list
sinceDate fieldsWithin the last N days

This definition describes marketing managers and above at manufacturing companies with 50 or more staff within 20 miles of Leeds.

{
  "schema": "mydatahub.audience/1",
  "dataset": "uk_contacts",
  "dataset_version": "2026-W40",
  "where": {
    "all": [
      {
        "field": "contact.title",
        "op": "matches",
        "terms": ["marketing manager"],
        "mode": "contains",
        "expand": ["plural_singular", "department_synonyms", "ampersand_and", "abbreviations"]
      },
      {
        "field": "contact.job_level_rank",
        "op": "in",
        "values": [1, 2, 3, 4, 5, 6, 8, 9]
      },
      {
        "field": "company.sic_2007",
        "op": "in",
        "values": ["C"]
      },
      {
        "field": "company.employee_band",
        "op": "gte",
        "value": "50-99"
      },
      {
        "field": "site.location",
        "op": "within_radius",
        "centre": {
          "place": "Leeds",
          "code": "E08000035"
        },
        "radius_miles": 20
      }
    ]
  },
  "email_policy": {
    "min_deliverability_score": 70,
    "allow_catch_all": false
  },
  "dedupe": "none"
}

The server fills every default it applies, canonicalises the definition and returns the effective version with the count. Older schema versions are upgraded by a pure function, so an audience saved today still compiles in two years.

Which defaults does the engine apply?

Five defaults keep a count honest, and each one shows what it removes. You can switch any of them off, and the count then shows the difference.

Defaults and how they are shown
DefaultApplied unless you change itShown as
Active companiesCompany status is activeA toggle with the dissolved and insolvent count
Named emailsEmail type is namedA toggle with the role address count (info@, sales@)
Corporate subscribersSole traders and ordinary partnerships are left out of email audiencesA toggle with the individual subscriber count
No registered numbersNumbers a screen found TPS or CTPS registered are left out when a phone is requested; numbers not screened stay inA toggle with the registered count
Your suppressionsEvery account list is appliedThe records removed, per list

How does title expansion work?

Title expansion is data, not code: a titles dictionary and a synonyms table keyed by expansion set. There are five sets, and the default mode, contains, matches a term anywhere in a title.

  • plural_singular: manager, managers.
  • department_synonyms: HR, Human Resources, People; IT, Information Technology.
  • ampersand_and: Sales & Marketing, Sales and Marketing.
  • abbreviations: CEO, Chief Executive Officer; MD, Managing Director.
  • permutations: Marketing Director, Director of Marketing.

Mode starts_with narrows a match, and exact takes a verbatim list with no expansion. Other tools hide expansion behind a single toggle. We return the expanded list with a count for each term, and removing a term writes an explicit exclusion into the definition, so the edited count stays reproducible when the dictionary changes.

Per-term counts are contacts at active companies, not the count inside your audience. Three bundles resolve to filters and show what they contain.

Bundles and what they resolve to
BundleResolves toNote
sdmJob levels 1 to 6, Owner to DirectorSenior decision makers
manager_and_aboveJob levels 1 to 6, 8 and 9Leaves out Company secretary, rank 7

How do the 13 job levels work?

Every contact has one of 13 ranked levels, and "and above" means every level up to the one you choose. The ladder starts at 1 for Owner and ends at 13 for Volunteer.

Company secretary sits at rank 7, between Director and Senior manager. It is left out of manager_and_above, which matches the live manager-and-above count of 26 September 2026.

How does geography work?

Every site carries codes for region, county, local authority, ward and statistical areas from the ONS Postcode Directory, which is released quarterly under the Open Government Licence. The legacy list of 20 regions had both "England London" and "England Greater London", and both now map to one London region.

London keeps its 33 boroughs, including the City of London, and Yorkshire (North, South and West Yorkshire and the East Riding) is a named set. The Channel Islands and the Isle of Man are a Crown Dependencies set.

How does a radius search work?

A radius query resolves its centre first. If a name is ambiguous, you get the candidates and are asked, never given a silent choice. The count then keeps the sites inside an exact distance test and reports the centre used and the postcodes matched. A radius of 1 to 100 miles is allowed, and a radius under 5 miles needs a free account.

What are Total, New to you and Emailable?

Three headline views sit on every count. Contacts and companies come back together, so one call can say "contacts at companies".

  • Total is every record that matches your filters.
  • New to you removes records from earlier orders and from your CRM overlap check. It is available when you are signed in.
  • Emailable is a named email scoring 70 or more at a corporate subscriber.

What do breakdowns show?

A breakdown splits a count by up to three fields, such as industry by seniority by region, as one grouped query. It returns the top 50 cells per field plus an "other" bucket, capped at 5,000 cells and 200 KB.

Charts always come with a text summary and a data table, so the numbers are readable without the picture.

How do suppressions and objections change a count?

Your suppression lists apply to every count you run, and each count shows how many records every list removed. Lists hold hashes, never the original emails.

Objections and erasure requests do not wait for the weekly build. A same-day overlay removes them from every count, and a replay of an earlier count reports how many records were removed since.

How do we stop counts identifying people?

We use the suppress-and-round practice used for UK statistical outputs. The rules below apply to the numbers on this site.

Disclosure rules
RuleWhat it does
Small cellsA breakdown cell under 10 reads "under 10", never a value
RoundingAnonymous and trial callers see counts rounded to the nearest 5, so two counts cannot be subtracted to reveal one company
Secondary suppressionIn cross-tabs, extra cells are hidden so totals cannot be differenced
Exact countsOnly authenticated paid callers see exact figures, because the exact count is what they buy
Single-company countsThese need an account and are logged
SamplesMasked server side, none when the count is under 25, drawn from a seed fixed per audience, and a title held by fewer than 10 people is withheld

How can you reproduce a count?

A count id is cnt_ plus the first 20 characters of a hash over the canonical form of the effective definition, the dataset version and the engine rules version. The same definition from chips, REST or MCP therefore gets one id.

Dataset versions are immutable weekly builds, named like 2026-W40. The last 52 stay in the serving store, so any count id re-runs exactly for 12 months. GET /v1/counts/{id} returns the effective definition, the compiled plan with every expanded term and resolved centre, the pinned versions, the three views and the breakdowns.

Which quality signals come with every count?

Quality signals shown with a count
SignalHow it is computedWhere it appears
Email coverageRecords with a named email divided by the countThe headline stat
Verified in the last 90 daysShare of emails with a provider result of ok in the last 90 days, with the measurement dateThe headline stat
Deliverability score distributionGood (70 to 100), risky (40 to 69) and poor (under 40)The breakdown card
Average days since verificationThe mean age of the latest verification eventThe count response and the validation report
Phone coverage and TPS screen dateShare with a validated number, and the version's TPS and CTPS screen dateWhen a phone is requested

What can a count not tell you?

A count is a number on a date. It changes with each Monday build, and an anonymous count is rounded. It counts records, so it cannot say how many people will read, reply or buy.

A count also cannot tell you that an address will not bounce. It can tell you when the address was last verified and what the deliverability score is, and those are the figures to trust.

Frequently asked questions

Is a MyDataHub count exact?

A paid caller sees the exact count. An anonymous visitor sees counts rounded to the nearest 5, with any cell under 10 shown as "under 10", so that two counts cannot be subtracted to reveal one company.

Why does the same audience give the same number every time?

A count is tied to one immutable dataset version and one set of engine rules, and its id is a hash of both with the effective definition. Rerunning the id re-counts the same data.

Does the count include companies that no longer trade?

Not by default. Company status defaults to active, and the count shows how many dissolved and insolvent companies you would add by switching the default off.

What happens to my count if someone objects to marketing?

The objection reaches the serving copy the same day through an overlay that is subtracted from every count, so a rerun reports how many records were removed since.

Call 01723 800030 or send us a message