Skip to main content

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:

  1. Participant Type Pricing: Highest priority (per-person pricing)
  2. Party Size Tier: Group size-based pricing
  3. Temporal Modifier: Time-based adjustments
  4. 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:

  1. Define minimum party size for tier
  2. Define maximum party size (null = unlimited)
  3. Set price per person for tier
  4. Add multiple tiers as needed
  5. 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:

  1. Define time windows (start/end times)
  2. Select days of week
  3. Set modifier type and value
  4. 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:

  1. Link to participant types
  2. Set price per person for each type
  3. System calculates total automatically
  4. 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:

  1. Create test booking
  2. Try different party sizes
  3. Test different times
  4. Verify price calculation
  5. 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

  1. Name Clearly: Use descriptive ruleset names
  2. Document Rules: Add notes explaining pricing logic
  3. Test Thoroughly: Verify calculations before going live
  4. Version Control: Keep track of pricing changes

Pricing Strategy

  1. Start Simple: Begin with base pricing
  2. Add Complexity Gradually: Add tiers/modifiers as needed
  3. Monitor Performance: Track which pricing works best
  4. Regular Reviews: Review and optimize pricing

Maintenance

  1. Regular Audits: Check pricing is correct
  2. Seasonal Updates: Adjust for seasons
  3. A/B Testing: Test different pricing strategies
  4. 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