Group Price Management
Admin → Group Prices. Set per-group model discounts.
Where
Admin → Group Prices.
List shows
Per row:
- Group name (
default/vip/svipetc.) - Model name (empty = the group's default for all models)
- Discount multiplier (
0.8= 20% off) - Action buttons
How to add
- Top-right "Add"
- Fill:
- Group (required; dropdown from system-maintained list)
- Model name (required; dropdown from enabled Model Prices)
- Discount multiplier (
0.8= 20% off,1.2= 20% markup; blank =1.0)
- Save
How to edit
Row → "Edit" → change discount → Save. Takes effect immediately.
Match order
- Exact
(user_group, model)match - Otherwise
(user_group, "")— the group's default - Otherwise 1.0
Suggested setup
| group | model | discount | Effect |
|---|---|---|---|
vip | (empty) | 0.8 | VIP pays 80% across all models |
vip | gpt-4o | 0.5 | VIP pays 50% on gpt-4o (overrides the group's 0.8 for that model) |
svip | (empty) | 0.7 | SVIP pays 70% across all models |
Notes
- The same
(group, model)pair cannot be added twice (unique constraint) - Changing a group's discount affects every user in that group, immediately
- Don't set every group to 1.0 (already the default)
How to assign groups to users
Groups are configured in System Settings; new users default to default. Admins change a user's group in User Management.
FAQ
- Discount set but user says it didn't apply: verify the user's actual
groupfield (not username) - Effective immediately?: yes, next call uses the new discount
- Plan discount vs group discount?: plan discount wins first. See Billing Rules
Related
Related API
GET /api/group_price/— list (Root)POST /api/group_price/— add (Root)PUT /api/group_price/— update (Root)DELETE /api/group_price/:id— delete (Root)