HubSpot Marketing Contacts, Explained: Why Your Bill Changed Mid-Contract
The email from finance says the HubSpot charge went up in March. Nobody upgraded anything. Nobody added a seat. The marketing team sent the same number of campaigns as February. And yet the invoice is $250 a month higher, and it will stay that way.
What happened is almost always the same thing: the number of marketing contacts crossed a tier line, HubSpot upgraded the tier automatically, and billed it the next day. This post explains the mechanism, the four ways contacts become billable without anyone deciding, the asymmetry that makes the bill go up faster than it comes down, and the audit that stops it. Every rule is quoted from HubSpot’s own documentation, checked 2026-09-05.
Two kinds of contact, one of them billed
HubSpot does not bill you for contacts. It bills you for marketing contacts. Per HubSpot’s marketing contacts page, marketing contacts are “contacts you send marketing emails and target ads to.” Non-marketing contacts are everything else: bounces, unsubscribes, partners, sales-only contacts, people who opened one support ticket. They are stored free, you can log activity on them, send one-to-one sales email, and attach them to deals and tickets. The only thing you cannot do is send them marketing email or put them in an ad audience.
That split is sensible. The problem is that the status is a property on the contact record, and a lot of things in HubSpot set that property to “marketing” on their own.
The tiers, and what one step costs
Marketing contacts are sold in tiers, and every tier has a top. Per HubSpot’s product and services catalog:
| Tier | Included marketing contacts | Additional contacts |
|---|---|---|
| Starter | 1,000 | $50 per 1,000 per month, for 1,001 to 3,000 |
| Professional | 2,000 | $250 per 5,000 per month, for 2,001 to 22,000 |
| Enterprise | 10,000 | $100 per 10,000 per month, for 10,001 to 50,000 |
Read the Professional row carefully. The step is 5,000 contacts at a time. Contact number 2,001 costs the same as contact number 7,000: $250 a month. There is no “2,001 to 3,000” pack. HubSpot’s own pricing guide says the same in plain words: moving from 2,000 to 5,000 contacts adds roughly $250 a month.
The four ways a contact becomes billable without anyone deciding
Per HubSpot’s documentation on setting contacts as marketing and the default marketing statuses guide:
1. Forms. By default, a contact who submits a form is set to marketing. That includes existing contacts who were non-marketing before they submitted. A “download the whitepaper” form and a “contact support” form both do this unless you change the setting on each form individually.
2. Imports. The last step of an import asks whether the contacts are marketing or non-marketing. The tool defaults to non-marketing, which is the safe answer, but the person importing the webinar list at 6pm on a Friday can tick the other box.
3. Integrations. Connected apps that create contacts can be set to sync them as marketing, per HubSpot’s integration marketing-contact settings. If your event tool, your webinar tool and your enrichment tool are all set to “marketing”, every attendee lands in the billable column.
4. Workflows. On Professional and Enterprise, workflows can set contacts to marketing based on property values. One enrolment rule written too broadly moves thousands of contacts at once. Vantage Point’s write-up walks through how that happens.
None of these is a bug. Each is a default that makes sense for a company that wants to email everyone it meets. For a team that only emails a segment, every one of them is a leak.
Up is tomorrow, down is next month
This is the asymmetry that turns a leak into a line item. Per HubSpot’s marketing contacts billing guide, if you exceed the marketing contacts in your tier, “you will automatically be upgraded to the next contact tier and billed the following day.” The catalog says the same: exceed the tier at any time and you are billed immediately.
Going the other way is slower. Per HubSpot’s marketing contacts page, a change from marketing to non-marketing “will take effect in the following month.” Set 800 contacts to non-marketing on the 3rd and they still count until the next update date.
So an accidental import on the 28th moves you up a tier on the 29th and bills it. Fixing it on the 30th brings you back down next month. One month of the higher tier is the minimum price of the mistake, and if the renewal date lands in between, the higher tier is what the renewal quote is calculated on. That timing rule is why the renewal checklist tells you to clean contacts 45 days out, not the week before.
A worked example, labelled as one. A Professional account sits at 1,900 marketing contacts. A webinar tool synced as “marketing” adds 400 attendees on the 27th. On the 28th the account is in the 2,001 to 7,000 tier and billed $250 for the month. The marketer flips the attendees to non-marketing on the 29th; the change lands on the next update date. Cost of the sync setting nobody checked: $250 minimum, and $250 a month for the rest of the term if nobody notices at all.
The audit
Forty minutes, once a quarter, and a standing rule for each leak.
- Open the marketing contacts dashboard in settings and note the number against your tier’s top. If you are within 10 percent, treat every item below as urgent.
- Run HubSpot’s eligibility lists. HubSpot generates lists of bounces and unsubscribes that can never receive marketing email. Set them all to non-marketing. They are pure cost.
- Find the silent marketing contacts. Build a list: marketing status is marketing, and last marketing email sent is more than 12 months ago or never. Decide who on that list you will actually email this quarter. Flip the rest.
- Check every form’s marketing setting. Support forms, careers forms, partner forms, event forms. Only the forms that feed a real nurture should set contacts to marketing.
- Check every integration’s marketing setting. Per app. Webinar and event tools are the usual culprits.
- Check the import default is still non-marketing and tell whoever imports lists why.
- On Professional, schedule the downgrades with a workflow. HubSpot lets a workflow set contacts to become non-marketing on the next update date, so the clean-up runs itself.
- Diarize the renewal date minus 45 days and run steps 1 to 3 again.
Why this matters more for a team of three
A marketing department absorbs a $250 step. A first marketing hire with a $30,000 annual tools budget just lost 10 percent of it to a webinar sync setting. And unlike the seat count or the tier, nobody chose it, so it is hard to defend in a budget review and easy to be blamed for.
It also compounds with the cliff. If you are on Starter with 1,000 contacts and the list is growing, the contact tiers are one of the things that push a small team toward Professional, where the step is 5,000 contacts at a time. The cliff post covers that decision.
The setup where marketing contacts stop being a bill
There is a structural way out that most teams do not consider. Marketing status only matters if HubSpot is the thing sending your marketing email. If campaigns and follow-ups run from a tool that syncs with HubSpot, contacts can stay non-marketing in HubSpot, stored free, with all their activity on the record, while the sending happens elsewhere. The CRM stays the system of record. The billable column stays empty.
Keep the CRM, drop the hub walks through that configuration and the sync test to run on any vendor. Marqeable is one of the tools built for it: it reads contacts, companies and lifecycle stages from HubSpot or Salesforce, runs email and text campaigns and follow-ups from a brief, answers website chat and text replies in seconds, and writes replies, meetings and activity back to the contact record. Private beta, small early cohort, month-to-month, beta pricing quoted on the call and locked for life for early customers. The homepage comparison shows it against Marketing Hub row by row.
Frequently asked questions
What is the difference between marketing and non-marketing contacts?
Marketing contacts can receive marketing email and be targeted with ads, and they count toward the billed tier. Non-marketing contacts are stored free with full activity history, one-to-one sales email, and deal and ticket associations. Only the marketing status is billed.
Why did my HubSpot bill go up mid-contract?
The number of marketing contacts crossed the top of your tier. HubSpot upgrades the tier automatically and bills it the following day. Forms set submitters to marketing by default, integrations can sync contacts as marketing, imports can be flagged marketing, and Professional workflows can set the status in bulk.
How much do additional marketing contacts cost?
Per the product catalog: Starter $50 per 1,000 a month for 1,001 to 3,000; Professional $250 per 5,000 a month for 2,001 to 22,000; Enterprise $100 per 10,000 a month for 10,001 to 50,000.
When does setting a contact to non-marketing reduce the bill?
The following month, on the next update date. Upgrades bill the next day; downgrades wait. Clean the list at least one billing cycle before a renewal or an expected tier change.
The bottom line
HubSpot’s marketing-contact model is fair in principle and leaky in practice. Forms, imports, integrations and workflows all move contacts into the billable column by default, the tier steps up the next day, and it steps down a month later. Run the audit quarterly, fix the four defaults once, and diarize the renewal. Or take the structural step: keep HubSpot as the record, send from somewhere that syncs with it, and let the billable column stay at zero.
See it live: Marqeable drafts full campaigns from a brief, runs follow-up automations across text and email, answers every visitor and reply, and links revenue to the exact message, with a human approving every send.
Marqeable runs your campaigns, answers every visitor, text, and email in seconds, and turns them into booked jobs and meetings - even at 9pm on a Saturday. We’re in private beta with a small early cohort. Get early access
