Pricing Configuration
This guide covers configuring pricing for your products, including price rulesets, party size tiers, temporal modifiers, and participant type pricing.
Overview
The pricing system is flexible and supports multiple pricing strategies:
- Base Pricing: Standard fixed prices
- Party Size Tiers: Different prices based on group size
- Temporal Modifiers: Time-based pricing (peak/off-peak)
- Participant Type Pricing: Different prices for different age groups
- Label Modifiers: Special pricing for labeled slots
Price Rulesets
A price ruleset is a collection of pricing rules applied to a variant.
Creating Price Rulesets
Step 1: Basic Information
- Name: Descriptive name for the ruleset
- Currency: Currency code (e.g., EUR, USD)
- Description (optional): Notes about the ruleset
Step 2: Configuration
- Link ruleset to variant
- Set active status
- Define currency
Ruleset Structure:
Price Ruleset
├── Base Rule (optional)
├── Party Size Tier Rules
├── Temporal Modifier Rules
├── Participant Type Rules
└── Label Modifier Rules
Price Ruleset Hierarchy
Rules are evaluated in priority order:
- Participant Type Pricing: Highest priority (per-person pricing)
- Party Size Tier: Group size-based pricing
- Temporal Modifier: Time-based adjustments
- Base Price: Fallback fixed price
Price Rules
Price rules define how prices are calculated. Each rule has a type and conditions.
Rule Types
Base Price Rule
Simple fixed price for all bookings.
Configuration:
- Rule Type: Base
- Modifier Type: Fixed
- Modifier Value: Price amount (e.g., 50.00)
Example:
Base Price: €50.00
Applies to: All bookings
Result: Every booking costs €50
Party Size Tier Rule
Different prices based on number of participants.
Configuration:
- Rule Type: Party Size Tier
- Conditions: Tier definitions
- Modifier Type: Per Person
Tier Structure:
{
"tiers": [
{ "min": 1, "max": 5, "pricePerPerson": 20.0 },
{ "min": 6, "max": 10, "pricePerPerson": 18.0 },
{ "min": 11, "max": null, "pricePerPerson": 15.0 }
]
}
Example:
1-5 people: €20 per person = €100 for 5 people
6-10 people: €18 per person = €180 for 10 people
11+ people: €15 per person = €225 for 15 people
Creating Tier Rules:
- Define minimum party size for tier
- Define maximum party size (null = unlimited)
- Set price per person for tier
- Add multiple tiers as needed
- System selects matching tier automatically
Temporal Modifier Rule
Time-based pricing adjustments (peak/off-peak hours).
Configuration:
- Rule Type: Time Window
- Conditions: Time ranges and days
- Modifier Type: Percentage or Fixed
Time Window Conditions:
{
"timeWindows": [
{
"startTime": "10:00",
"endTime": "18:00",
"daysOfWeek": [1, 2, 3, 4, 5],
"modifierValue": 1.2
}
]
}
Modifier Types:
- Percentage: Multiply base price (e.g., 1.2 = 20% increase)
- Fixed Amount: Add/subtract fixed amount
Example Peak Pricing:
Base Price: €50
Peak Hours (10am-6pm, Mon-Fri): +20%
Result: €60 during peak, €50 otherwise
Creating Temporal Rules:
- Define time windows (start/end times)
- Select days of week
- Set modifier type and value
- Multiple windows supported
Participant Type Pricing Rule
Different prices for different age groups or categories.
Configuration:
- Rule Type: Participant Type Pricing
- Conditions: Participant type prices
- Modifier Type: Per Person
Participant Prices:
{
"participantPrices": [
{ "participantTypeId": "pt_adult", "pricePerPerson": 50.0 },
{ "participantTypeId": "pt_child", "pricePerPerson": 25.0 },
{ "participantTypeId": "pt_senior", "pricePerPerson": 40.0 }
]
}
Example:
Adult (2): €50 × 2 = €100
Child (2): €25 × 2 = €50
Total: €150
Creating Participant Type Rules:
- Link to participant types
- Set price per person for each type
- System calculates total automatically
- Requires participant breakdown in booking
Label Modifier Rule
Adjust pricing based on slot labels.
Configuration:
- Rule Type: Label Modifier
- Conditions: Label codes to match
- Modifier Type: Percentage or Fixed
Label Conditions:
{
"labelCodes": ["premium", "vip"],
"matchType": "any",
"modifierValue": 1.15
}
Example:
Base Price: €50
Premium Label: +15%
Result: €57.50 for premium slots
Pricing Examples
Example 1: Simple Fixed Pricing
Setup:
- Base price rule: €50.00
- Applies to all bookings
Result:
- Every booking: €50.00
Example 2: Party Size Tiers
Setup:
- Tier 1: 1-4 people, €25/person
- Tier 2: 5-8 people, €20/person
- Tier 3: 9+ people, €18/person
Results:
- 3 people: €75.00
- 6 people: €120.00
- 12 people: €216.00
Example 3: Peak/Off-Peak Pricing
Setup:
- Base price: €50.00
- Peak hours (10am-6pm, Mon-Fri): +25%
- Off-peak: Base price
Results:
- Peak time booking: €62.50
- Off-peak booking: €50.00
Example 4: Participant Type Pricing
Setup:
- Adult: €50/person
- Child: €25/person
- Senior: €40/person
Result for 2 adults, 2 children:
- Adults: €100
- Children: €50
- Total: €150
Example 5: Combined Rules
Setup:
- Base: €50
- Party size tier: 6-10 people = €45/person
- Peak modifier: +20%
- Participant type: Child = 50% discount
Result for 8 adults during peak:
- Base from tier: €45 × 8 = €360
- Peak modifier: €360 × 1.2 = €432
Result for 8 children during peak:
- Base from tier: €45 × 8 = €360
- Child discount: €360 × 0.5 = €180
- Peak modifier: €180 × 1.2 = €216
Rule Priority
Rules are evaluated in priority order (higher priority first).
Setting Priority
Priority Values:
- Higher number = higher priority
- Evaluated first
- Lower number = lower priority
- Evaluated later
Default Priorities:
- Participant Type Pricing: 100
- Party Size Tier: 50
- Temporal Modifier: 25
- Base Price: 0
Rule Evaluation Flow
1. Check Participant Type Rules (if applicable)
↓ (if no match)
2. Check Party Size Tier Rules
↓ (if no match)
3. Check Temporal Modifier Rules
↓ (if no match)
4. Use Base Price Rule
Modifiers Applied:
- After base price determined
- Temporal modifiers applied
- Label modifiers applied
- Final price calculated
Creating Pricing Configuration
Step-by-Step Setup
1. Create Price Ruleset
- Navigate to Catalog > Pricing
- Click "New Ruleset"
- Enter name and currency
- Save ruleset
2. Create Base Rule (Optional)
- Add base price rule
- Set fixed price
- This is fallback if no tiers match
3. Create Party Size Tiers (If Needed)
- Add party size tier rule
- Define tiers
- Set prices per tier
4. Create Temporal Modifiers (If Needed)
- Add time window rule
- Define peak/off-peak periods
- Set modifier values
5. Create Participant Type Rules (If Needed)
- Add participant type rule
- Set prices per type
- Link to participant types
6. Link to Variant
- Edit variant
- Select price ruleset
- Variant now uses this pricing
Testing Pricing
How to Test:
- Create test booking
- Try different party sizes
- Test different times
- Verify price calculation
- Check pricing hash consistency
Price Preview:
- Use availability API
- Preview shows estimated price
- Final price calculated on hold
Managing Price Rules
Editing Rules
What Can Be Changed:
- Modifier values
- Tier definitions
- Time windows
- Priority
- Active status
Best Practices:
- Test changes before making active
- Document reason for changes
- Consider impact on existing holds
- Update during low-traffic periods
Deactivating Rules
When to Deactivate:
- Temporary pricing changes
- Seasonal pricing end
- Testing new rules
- Rules no longer needed
Effects:
- Rule no longer applies
- Existing holds keep old pricing
- New bookings use active rules
- Can reactivate later
Rule Validation
System Validates:
- Tier ranges don't overlap incorrectly
- Time windows are valid
- Prices are positive numbers
- Priority ordering is logical
Common Validation Errors:
- Invalid tier ranges
- Overlapping time windows
- Missing required fields
- Invalid modifier values
Currency Handling
Currency Configuration
Setting Currency:
- Each ruleset has one currency
- Currency must match tenant default
- All rules in ruleset use same currency
Currency Consistency:
- Variant currency must match ruleset
- Site currency considered
- Tenant default currency used
Multi-Currency Support
Current Support:
- Single currency per tenant
- Currency conversion (future feature)
- Currency display (future feature)
Pricing Best Practices
Organization
- Name Clearly: Use descriptive ruleset names
- Document Rules: Add notes explaining pricing logic
- Test Thoroughly: Verify calculations before going live
- Version Control: Keep track of pricing changes
Pricing Strategy
- Start Simple: Begin with base pricing
- Add Complexity Gradually: Add tiers/modifiers as needed
- Monitor Performance: Track which pricing works best
- Regular Reviews: Review and optimize pricing
Maintenance
- Regular Audits: Check pricing is correct
- Seasonal Updates: Adjust for seasons
- A/B Testing: Test different pricing strategies
- Customer Feedback: Consider feedback in pricing
Troubleshooting
Pricing Not Calculating
Check:
- Ruleset linked to variant
- Rules are active
- Conditions match booking
- Priority order correct
Solutions:
- Verify ruleset assignment
- Check rule active status
- Review conditions
- Test with sample booking
Wrong Prices
Check:
- Correct ruleset linked
- Rules applied in correct order
- Conditions match
- Modifiers calculated correctly
Solutions:
- Review rule priority
- Check tier matching
- Verify time windows
- Test calculations manually
Pricing Hash Issues
Understanding:
- Pricing hash ensures price consistency
- Changes create new hash
- Holds use hash from creation time
- Confirmation validates hash
If Hash Changes:
- Price updated since hold created
- Customer sees updated price
- System prevents price changes mid-flow
Next Steps
- Learn about Promotion Management for discount codes
- Review Catalog Management for variant setup
- Check Reports for pricing analytics
- Explore Operations for booking management