Product Types: Program vs. Membership vs. Product/Fee

Last updated: July 6, 2026

Summary

Every offering that syncs into HubSpot carries a product type that sorts it into one of three buckets: Program, Membership, or Product/Fee. This one field is the most useful tool you have for clean segmentation — it's how you separate real class registrations from membership renewals and incidental fees. This article explains the three types and, importantly, the right way to filter on them.

The three product types

  • Program — the actual classes and activities people register for: swim lessons, gymnastics, camps, sports leagues, and the like. These are what you're almost always after when building outreach lists.

  • Membership — the membership products themselves (joining or renewing a membership).

  • Product / Fee — everything else that appears as a line item: fees, rentals, add-ons, and incidental charges. This bucket includes zero-dollar lines (for example, a waived or bundled fee), which is why a registration's line items can look "busier" than expected.

Why this matters

When someone registers, their deal can carry several line items — the program itself, plus membership or fee lines. If you build a list without accounting for type, those extra lines can pull in people you didn't mean to target, or make a single registration look like several different things.

Filtering to Program cleanly isolates real class registrations and excludes membership and fee noise. It's the foundation of every program-based list.

The key gotcha: filter on the type, not a single ID

Product type is available both as a numeric ID and as a readable name/description. It's tempting to filter on a specific type ID — but many different type IDs all roll up to "Program." Programs are spread across a wide range of IDs, so filtering on any one ID will silently miss the large majority of programs.

Always filter on the product type name/description (= "Program"), never on a single type ID. The name is the reliable, complete filter; a single ID is a trap that returns only a small slice of what you expect.

How to use it in HubSpot

Build your audience in the Lists tool as a contact-based active list, and add a filter on the associated line item's product type:

  1. Create an active list based on Contacts.

  2. Add a filter for contacts with an associated Deal / Line Item.

  3. Set the line item's product type / description is equal to Program.

  4. Layer any additional filters (branch, specific program name, date) on top.

This gives you everyone who registered for a real program, without membership or fee lines dragging in the wrong people. See How to Build a Program-Based List for the full walkthrough.

Common mistakes

  • Filtering on one product type ID. Returns a fraction of programs. Use the name/description instead.

  • Forgetting to filter by type at all. Lets membership and fee lines inflate or pollute a program audience.

  • Segmenting on the deal instead of the line item. Program type lives on the line item; make sure your filter reaches it.

  • Treating zero-dollar lines as errors. A $0 fee line is usually expected (a waived or bundled charge), not a data problem — it's just a Product/Fee, not a Program.

At a glance

Type

What it is

Include in program lists?

Program

Real classes and activities

Yes

Membership

Membership join/renewal

Only for membership-specific outreach

Product / Fee

Fees, rentals, add-ons, $0 lines

No

Related articles