Memberships

Define membership tiers, grant them to customers, and apply per-membership discounts automatically.

Updated April 21, 2026

Memberships in Pool Hall Master are configurable tiers (e.g. Monthly Pass, VIP, League Member) that let you give certain customers automatic discounts, dedicated access hours, and an Apple Wallet pass. The discount applies automatically the next time the member plays — no manual override at checkout.

The two default tiers

When you first turn memberships on, Pool Hall Master seeds two example tiers so you have something to work with:

  • Monthly Pass
  • VIP Membership

Both are fully editable. You can rename them, change their pricing and discount, or delete them entirely and create your own.

Configure your membership tiers

  1. Open Account & Settings → Customers → Membership Types.
  2. Tap any tier to edit it, or + to create a new tier.
  3. Fill in the fields below.
  4. Tap Save.

What each field controls

FieldWhat it does
NameWhat members and staff see (e.g. VIP, League Member)
PriceThe cost to purchase the membership
Duration (days)How long the membership is valid before it expires
Discount %The percentage off table-time charges that this tier gets, applied automatically
Access daysWhich days of the week the membership unlocks (e.g. Weekdays, Daily)
Access hoursStart and end hour for member access; setting both equal means 24 Hours
IconThe SF Symbol shown on the member’s pass and in the app
ActiveToggle the tier on or off without deleting it

Selling a membership

You can sell a membership in two places:

  • POS view — there’s a Memberships category in the POS with a Sell Membership action. This is the standard path during a visit.
  • Directly from a customer profile — open the customer in the Directory, tap Manage Membership, and grant or change their tier.

When you sell or grant a membership, Pool Hall Master:

  • Sets the customer’s membershipId to the chosen tier.
  • Deactivates any previous membership on that customer.
  • Records a transaction in Transactions.
  • Generates an Apple Wallet pass the customer can add to their phone.

Granting a membership without charging

If you’re comping a membership (e.g. for a league captain or a staff trade), use Grant Membership from the customer’s profile. The flow is identical to selling, but skips the payment step.

How the discount applies

Membership discounts apply automatically to table-time charges. When a checkout is calculated for a player who has an active membership:

  1. Pool Hall Master picks the best applicable rate (Rate Rule → table type → global tiers → default — see Pricing models).
  2. It then applies the membership’s Discount % to the table-time portion of the charge.
  3. The member’s per-player line on the Checkout Overview reflects the discounted amount.

The discount does not apply to non-time line items like food, drinks, or merchandise unless you’ve configured a separate rule.

Membership Notifications (SMS)

When a member’s expiration approaches, Pool Hall Master can text them automatically.

  1. Open Account & Settings → Membership Notifications.
  2. Toggle SMS notifications on.
  3. Configure how many days before expiration the reminder fires.

The actual SMS template is editable under SMS Templates.

Apple Wallet passes for members

Each active member gets an Apple Wallet pass with their tier name, expiration date, discount percentage, and access window. Customers can add it to Apple Wallet from the link in the Membership Pass SMS or from their player profile at phmapp.io/{slug}/profile.

The pass is generated server-side by the generateWalletPass Cloud Function and updates automatically when the membership changes.

Removing or changing a member’s tier

From a customer’s profile, open Manage Membership:

  • Change Plan — open the membership picker and select a different tier.
  • Remove Membership — clears the active membership.

The change is reflected at the next checkout.