Appearance
Pricing Rules
One system covers member rates, early bird windows, discount codes, per-audience pricing, and comps — because every price on a course is decided the same way. Learn the one mechanism and the rest follows.
How a price gets decided
Your pricing rules are a funnel. When someone registers, LecturePanda walks the list from top to bottom, and the first rule that matches them is the price they pay. Evaluation stops there — no other rule is considered, even if a cheaper one sits further down.
Three consequences follow from that, and between them they explain almost every surprise:
- Order is what makes a rule reachable. A rule below a broader one may never be evaluated.
- A rule matches only if every filter on it matches. Filters combine with AND, never OR.
- A rule with no filters matches everyone, which is what makes it a catch-all.
If nothing matches, the registration is free
When no rule matches a registrant, LecturePanda charges nothing and activates their registration immediately. A gap in your rules doesn't block someone or fall back to a default — it lets them in for free.
Always finish your list with an unfiltered catch-all rule at your standard price. It's the difference between "everyone else pays $150" and "everyone else pays nothing."
The "No Default Price Rule Found!" warning
LecturePanda watches for this and tells you. If the last rule in your list has any filters on it, a warning appears above the list:
No Default Price Rule Found! It is highly recommended that you define a default pricing rule (one without any filters) as your last rule. This fallback price ensures that participants are not inadvertently offered free registration if none of the currently defined rules match. It also clarifies the automatically generated pricing information shown on the event announcement for your participants.
It isn't an error and nothing is blocked — your course works, and rules already matching people keep matching them. It's pointing out that anyone who matches none of your rules will register free.
To clear it: add a rule at the bottom of the list with a price and no filters turned on, or switch off the filters on the rule that's already last if it was meant to be your default all along.
The "Discount Code Rules Are Not At The Top!" warning
A second warning appears when a rule carrying a discount code sits below a rule without one:
Discount Code Rules Are Not At The Top! A pricing rule with a discount code is listed below a rule without one. Rules are applied from top to bottom and the first match wins, so the rule above will be applied first and the discount code will never take effect. Drag your discount code rules to the top of the list so they are checked before your standard pricing.
A discount code is the most specific intent a registrant can express, so code rules belong above everything else. To clear it: drag them to the top of the list.
Order your rules from most specific to least
Put the narrowest rules at the top and the catch-all at the bottom. A useful test: if you moved a rule to the top, would it start capturing people it shouldn't? If yes, it belongs lower.
Drag rules into order with the arrows on the right of the pricing rules list.
Here's a conference priced four ways:
| # | Rule | Price | Filters |
|---|---|---|---|
| 1 | Speaker comp | $0 | Discount code SPEAKER26 |
| 2 | Member — early bird | $95 | Members + ends Sept 15 |
| 3 | Member — regular | $125 | Members |
| 4 | Early bird | $150 | Ends Sept 15 |
| 5 | Standard registration | $195 | None — catch-all |
Read it as a funnel and it's easy to check. A member registering in August falls past rule 1 (no code), matches rule 2, and pays $95. The same member in October misses rule 2's date window and pays $125. A non-member in August skips rules 2 and 3 and lands on rule 4. Everyone else reaches rule 5.
Flip rules 3 and 4 and members would still be fine — but move rule 5 to the top and everyone pays $195, because a catch-all matches the first person it's offered to.
The filters
Turn on only the filters a rule actually needs. Every one you enable narrows who it applies to; the ones you leave off don't constrain it at all.
| Filter | The rule applies when… |
|---|---|
| Apply Price During Time Frame | Now falls inside the window. Start and end are each optional — set just an end date for early bird |
| Apply Price To Registration Types | They registered as one of the types you pick |
| Apply Price to Members | Their email is verified against your chosen membership database. Leave Membership Types blank to accept any member on that connection |
| Apply Price Based On Additional Registration Question | They gave a particular answer to one of the course's questions |
| Apply Price For Discount Code | They entered the code exactly. Optionally capped with a max number of uses |
| Apply Price Based On Geographical Location | Their approximate location (from their IP address) is in a region you selected |
You rarely need both dates
Each end of the time frame is optional, and leaving one blank means "no limit in that direction":
- End date only — applies from now up until that moment. This is early bird pricing.
- Start date only — doesn't apply until that date, then applies indefinitely.
- Both — a closed window, for a price that runs between two dates and stops after.
So an early bird rule needs only an end date, and the regular-price rule beneath it needs no dates at all — it simply becomes reachable once the early bird window closes.
Common setups
Members pay less. Two rules: a member rule with Apply Price to Members on, above an unfiltered catch-all at the non-member price. The member check runs against your membership database, so it works on the email they register with.
Leave Membership Types blank and the rule covers every member on that connection — usually what you want, and one less list to maintain as your membership categories change. Fill it in only when a price is genuinely for one category, such as a student or retired rate.
Different audiences, different prices. One rule per audience with Apply Price To Registration Types, then the catch-all. If several audiences pay the same, one rule can list them all.
Comps and sponsor codes. A $0 rule with Apply Price For Discount Code, placed at the very top. Set max uses if the code shouldn't circulate indefinitely. See Codes & Free Registration for when a receipt code is the better tool.
In-person vs virtual. Add a registration question with those choices, then price on the answer with Apply Price Based On Additional Registration Question. The registrant picks, and the price follows.
Charging both ways at once. Filters stack, so "member, early bird, technicians only" is a single rule with three filters on — not three rules.
Discount-code rules stay off the announcement
Rules with a discount code are hidden from the prices listed automatically on your announcement page, so a comp code doesn't advertise itself. Every other rule shows its Description to registrants — worth naming them the way you'd want them read: "Member — Early Bird" rather than "Rule 2."
When a price isn't what you expected
Someone registered for free. No rule matched them, so nothing was charged. Add or widen a catch-all at the bottom of the list.
A discount code does nothing. Check three things, in this order: the code rule is above the rule that's capturing them instead; the code was typed exactly as configured, since matching is case-sensitive; and any time frame on the rule is still open.
The member rate doesn't apply. The rule matches only members found in the membership database it names — so confirm the registrant is on that list under a member type the rule accepts. If you've recently renamed or added a membership type in your AMS, resave the integration to pull the new labels across, then add the new type to each course's pricing rules. Syncing the label doesn't change any rule that was already written.
The registration types dropdown is empty. Registration types are created for your whole account, but a pricing rule can only offer the ones assigned to this course. Add them on the Details tab first, then come back. The same applies to the registration-question filter, which lists only questions attached to this course.
Everyone pays the same price. A catch-all has drifted above your specific rules. Drag it back to the bottom.
Test it before you announce it
Open your own registration link and step through it as each kind of registrant — member and non-member, each registration type, with and without the code. The price appears on screen before payment, so a two-minute pass catches an ordering mistake while it still costs nothing. Registrations you create this way draw from your participant bank, so tell us first and we'll keep your testing off your balance.
Related
- Payments reference — every field on the pricing rule form
- Codes & Free Registration — discount codes, receipt codes, and free courses
- Registration Payments & Receipts — where the money goes, receipts, and refunds
- Membership Checking — the databases the member filter checks against