How to Set Up Member and Non-Member Pricing for an Association Event
Two ways to charge members and non-members different prices: visible tiers on the honor system, or a hidden member tier unlocked by a code.
To charge members and non-members different prices for an association event, create two ticket tiers: one at the member rate and one at the non-member rate. Attendees pick the tier that applies to them at registration. If you need to stop non-members from choosing the member rate, hide the member tier and give members a code that unlocks it.
That is the whole answer. The rest of this guide covers which of the two setups to use, how to build each one in CompleteEvent, and how to handle the edge cases associations run into every year: lapsed members, members who join at the door, and staff comps.
Two ways to set up member pricing
Option 1: Two visible tiers (honor system)
Both tiers show on the registration page. A member picks “Member — $195” and a non-member picks “Non-Member — $250”. Nobody is asked for proof at checkout.
This is what most chapter meetings, webinars, and smaller annual events use. It takes two minutes to set up, and the price difference is usually small enough that few people pick the wrong tier on purpose. You can check the member list against registrations afterward and follow up with anyone who doesn't match.
Option 2: A hidden member tier unlocked by a code
Only the non-member tier shows by default. Members get a code in your member newsletter or member portal. When they enter it, the member tier appears with the member price.
Use this for your annual conference or any event where the member discount is large, where the member rate is a selling point for joining, or where your board wants proof that member pricing goes only to members.
How to set up Option 1 in CompleteEvent
- Open your event and go to the Tickets tab.
- Click Set up member pricing. The wizard asks for a member tier name, a member price, a non-member tier name, and a non-member price. It suggests a non-member price 30% above the member price; change it to whatever your fee schedule says.
- Save. The wizard creates two standard ticket tiers. You can edit names, prices, capacity, and sale dates on each one afterward, the same as any other tier.
If you want a record of membership status, add a registration question such as “Member ID” or a checkbox confirming current membership. That gives you something to match against your membership database after registration closes.
How to set up Option 2 in CompleteEvent
Promo codes in CompleteEvent can be limited to specific tiers, and a tier can be set so it stays hidden until someone enters a code for it. Together, those give you a member-only price.
- On the Tickets tab, create a Non-Member tier at your non-member price. Leave its availability as Public.
- Create a Member tier at the same non-member price. Under Availability, choose Hidden — unlock with a code.
- Go to the Promo Codes tab and create a code such as
MEMBER2026. Set a fixed discount equal to the member savings (for example, $55 off a $250 ticket to get a $195 member price). Under applicable tiers, select only the Member tier. - Send the code to members only: the member newsletter, the member portal, or a renewal email.
A member enters the code, the Member tier appears, and the discount applies before checkout. A non-member without the code sees only the Non-Member tier. Because members and non-members register under different tiers, your registration export and revenue reports split the two groups without any extra work.
Set an expiry date on the code that matches your registration deadline, and a maximum number of uses if you want to cap how many member-rate tickets one code can sell.
Edge cases associations run into
A member's membership lapsed
Decide the rule before registration opens and put it in the tier description: “Member rate requires membership current through the event date.” If you use Option 2, rotate the code each year so last year's code stops working.
Someone joins to get the member rate
That is a membership sale, not a problem. Many associations say so on the registration page: “Not a member? Join now and register at the member rate.” Link to your join page and send the code in the new-member welcome email.
Speakers, staff, and board members
Create separate codes for each group with a 100% discount, limited to the tier you want them on. Separate codes make the comps easy to count in your post-event report.
Group and institutional memberships
If an organization holds the membership and its employees get the member rate, give each member organization its own code with a use limit equal to the number of seats included.
What this costs
Ticket tiers, promo codes, and hidden tiers are available on every CompleteEvent plan, including Free. Stripe charges its standard processing fee (2.9% + $0.30 per transaction in the US) on paid tickets, and CompleteEvent adds a platform fee of 3% on Free, 1% on Starter, 0.75% on Growth, or 0.5% on Pro. Ticket revenue goes straight to your own Stripe account. See pricing for plan limits.
For more on running association events, see association event management and what to look for in association event software.
Frequently asked questions
- How do I charge members and non-members different prices for an event?
- Create two ticket tiers, one at the member rate and one at the non-member rate. Attendees choose the tier that applies to them. To stop non-members from choosing the member rate, hide the member tier and send members a code that unlocks it.
- Can event registration verify membership automatically?
- Not in CompleteEvent. Either attendees self-select their tier, or you hide the member tier behind a code you send only to members. You can also add a Member ID question and check it against your membership list after registration closes.
- Is member pricing available on the free plan?
- Yes. Ticket tiers, promo codes and hidden code-only tiers are available on every CompleteEvent plan, including Free.
Ready to simplify your events?
CompleteEvent is free for small events. No credit card required.
Get started free →