Skip to main content

Dynamic Pricing Strategies with TimeTime

Introduction

Effective pricing is a crucial aspect of any service-based business. TimeTime's advanced pricing policy system enables businesses to implement sophisticated pricing strategies that adapt to market conditions, capacity constraints, customer segments, and other dynamic factors. This article explores how to leverage TimeTime's pricing capabilities to optimize revenue while providing fair and transparent pricing to customers.

Understanding TimeTime's Pricing Policy System

TimeTime approaches pricing through a flexible policy-based system. Rather than setting a single price for each service, you can define multiple pricing policies with specific conditions. When a booking is made, TimeTime automatically calculates the appropriate price by evaluating these policies against the booking details.

Key Concepts

  1. Base Price: The standard price for a service
  2. Pricing Policies: Rules that modify the base price based on specific conditions
  3. Price Modifiers: Adjustments applied to the base price (fixed amounts or percentages)
  4. Policy Conditions: Circumstances that trigger a pricing policy
  5. Price Calculation: The process of determining the final price for a booking

Types of Pricing Strategies

TimeTime supports a wide range of pricing strategies through its policy system:

1. Time-Based Pricing

Apply different rates based on the time of booking:

  • Peak/Off-Peak Pricing: Charge premium rates during high-demand hours and discounted rates during slower periods
  • Weekend/Weekday Differentials: Set different pricing for weekends versus weekdays
  • Seasonal Adjustments: Implement pricing that reflects seasonal demand fluctuations
  • Holiday Premiums: Automatically apply surcharges for bookings on holidays

Example policy configuration:

const peakHoursPricingPolicy = {
id: "pricing-policy-peak-hours",
name: "Peak Hours Surcharge",
description: "Higher rates for prime business hours",
conditions: {
timeRanges: [
{
daysOfWeek: ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
startTime: "09:00",
endTime: "17:00"
}
]
},
priceModifier: {
type: "PERCENTAGE",
value: 25 // 25% increase for peak hours
}
};

2. Resource-Based Pricing

Adjust pricing based on the resources involved in a booking:

  • Premium Resource Surcharges: Charge more for high-demand or luxury resources
  • Quantity-Based Pricing: Adjust rates based on the number of resources used
  • Resource Combination Pricing: Special rates when certain resources are booked together
  • Resource Tier Pricing: Different pricing tiers for different categories of resources

Example:

const premiumRoomPolicy = {
id: "pricing-policy-premium-rooms",
name: "Premium Room Rate",
description: "Higher rate for premium conference rooms",
conditions: {
resourceIds: ["resource-conference-room-executive", "resource-conference-room-panoramic"]
},
priceModifier: {
type: "FIXED_AMOUNT",
value: 50 // $50 additional for premium rooms
}
};

3. Customer Segment Pricing

Offer different pricing to different customer types:

  • Membership Discounts: Special rates for members or subscribers
  • Volume-Based Discounts: Lower rates for customers who book frequently
  • New Customer Incentives: Special introductory rates for first-time customers
  • Corporate Rates: Negotiated pricing for business clients

Example:

const memberDiscountPolicy = {
id: "pricing-policy-member-discount",
name: "Member Discount",
description: "10% discount for members",
conditions: {
customerGroups: ["GROUP_MEMBERS"]
},
priceModifier: {
type: "PERCENTAGE",
value: -10 // 10% discount
}
};

4. Duration-Based Pricing

Vary pricing based on the length of the booking:

  • Tiered Duration Pricing: Different rates for different duration tiers
  • Extended Session Discounts: Discounted rates for longer bookings
  • Minimum Duration Surcharges: Higher per-minute rates for very short bookings
  • Package Rates: Special pricing for pre-defined duration packages

Example:

const extendedSessionDiscountPolicy = {
id: "pricing-policy-extended-session",
name: "Extended Session Discount",
description: "Discount for sessions over 2 hours",
conditions: {
minimumDuration: "PT2H" // ISO 8601 duration format: 2 hours
},
priceModifier: {
type: "PERCENTAGE",
value: -15 // 15% discount
}
};

5. Advance Booking Pricing

Adjust prices based on how far in advance a booking is made:

  • Last-Minute Discounts: Reduce prices for near-term availability to improve utilization
  • Early Bird Specials: Offer discounts for bookings made well in advance
  • Urgency Pricing: Premium rates for immediate or same-day bookings
  • Booking Window Tiers: Different rates based on the booking lead time

Example:

const lastMinuteDiscountPolicy = {
id: "pricing-policy-last-minute",
name: "Last-Minute Discount",
description: "Discount for bookings made within 24 hours of service",
conditions: {
maximumAdvanceBookingHours: 24
},
priceModifier: {
type: "PERCENTAGE",
value: -20 // 20% discount
}
};

6. Occupancy-Based Pricing

Dynamically adjust prices based on current booking levels:

  • Demand Pricing: Higher rates when approaching full capacity
  • Low Occupancy Discounts: Lower rates during periods of low utilization
  • Threshold Pricing: Price tiers that activate at different occupancy levels
  • Fill Rate Incentives: Graduated discounts as capacity utilization decreases

Example:

const highDemandSurchargePolicy = {
id: "pricing-policy-high-demand",
name: "High Demand Surcharge",
description: "Premium for bookings when over 80% capacity is reached",
conditions: {
minimumOccupancyPercentage: 80
},
priceModifier: {
type: "PERCENTAGE",
value: 30 // 30% price increase
}
};

Implementing Dynamic Pricing

Step 1: Define Your Pricing Strategy

Before implementing pricing policies, consider:

  1. Your business objectives (maximizing revenue, increasing utilization, etc.)
  2. Your market positioning and competitive landscape
  3. Customer price sensitivity and willingness to pay
  4. Operational costs and profit margins
  5. Seasonal demand patterns and peak periods

Step 2: Configure Base Prices

Set up the standard prices for your services:

// Setting up a service with a base price
const yogaClass = {
id: "event-type-yoga-class",
name: "Group Yoga Session",
duration: "PT1H", // 1 hour
description: "Group yoga class for all skill levels",
basePrice: {
amount: 25,
currency: "USD"
}
// other service properties...
};

await timeTimeClient.put(`/event-types/${yogaClass.id}`, yogaClass);

Step 3: Create Pricing Policies

Define pricing policies that modify the base price:

// Example: Creating a pricing policy via API
const weekendSurchargePolicy = {
id: "pricing-policy-weekend-surcharge",
name: "Weekend Surcharge",
description: "Additional charge for weekend sessions",
eventTypeIds: ["event-type-yoga-class"], // Apply to yoga classes
conditions: {
timeRanges: [
{
daysOfWeek: ["SATURDAY", "SUNDAY"]
}
]
},
priceModifier: {
type: "PERCENTAGE",
value: 20 // 20% increase for weekends
}
};

await timeTimeClient.put(`/pricing-policies/${weekendSurchargePolicy.id}`, weekendSurchargePolicy);

Step 4: Test Your Pricing Model

Before fully implementing your pricing strategy:

  1. Test different booking scenarios to verify pricing calculations
  2. Simulate bookings at different times and with different resources
  3. Calculate expected revenue under various occupancy scenarios
  4. Gather feedback from selected customers on pricing structure

Step 5: Monitor and Refine

After implementation:

  1. Track key metrics (revenue per booking, utilization rates, etc.)
  2. Analyze customer booking patterns in response to pricing changes
  3. Adjust policies based on performance data
  4. Continuously test new pricing strategies for specific segments or time periods

Best Practices for Dynamic Pricing

1. Transparency

  • Clearly communicate how prices are calculated
  • Show price breakdowns when multiple policies apply
  • Explain the benefits customers receive at different price points

2. Logical Pricing Structure

  • Ensure pricing makes intuitive sense to customers
  • Maintain consistency in your overall pricing approach
  • Avoid unnecessary complexity in your pricing rules

3. Value-Based Approach

  • Align pricing with the perceived value of your services
  • Consider what customers are willing to pay, not just your costs
  • Highlight the unique benefits that justify premium prices

4. Regular Review

  • Regularly evaluate the effectiveness of your pricing policies
  • Stay informed about competitor pricing
  • Update pricing strategies to reflect changing market conditions

5. Gradual Implementation

  • Introduce pricing changes gradually
  • Test new pricing strategies with a subset of services first
  • Collect feedback before widespread implementation

Advanced Pricing Techniques

Combinatorial Pricing

TimeTime allows multiple pricing policies to stack, enabling sophisticated pricing models:

// Base policy: Weekday standard rate
const standardRate = {
id: "pricing-policy-standard",
eventTypeIds: ["event-type-consultation"],
basePrice: { amount: 100, currency: "USD" }
};

// Policy 1: Weekend surcharge
const weekendSurcharge = {
id: "pricing-policy-weekend",
eventTypeIds: ["event-type-consultation"],
conditions: { timeRanges: [{ daysOfWeek: ["SATURDAY", "SUNDAY"] }] },
priceModifier: { type: "PERCENTAGE", value: 20 }
};

// Policy 2: Premium resource surcharge
const premiumRoomSurcharge = {
id: "pricing-policy-premium-room",
eventTypeIds: ["event-type-consultation"],
conditions: { resourceIds: ["room-executive"] },
priceModifier: { type: "FIXED_AMOUNT", value: 50 }
};

// Policy 3: Member discount (applied after other surcharges)
const memberDiscount = {
id: "pricing-policy-member",
eventTypeIds: ["event-type-consultation"],
conditions: { customerGroups: ["members"] },
priceModifier: { type: "PERCENTAGE", value: -10 }
};

In this example, a weekend consultation in the executive room for a member would calculate as:

  • Base price: $100
  • Weekend surcharge: +20% ($20) = $120
  • Premium room: +$50 = $170
  • Member discount: -10% ($17) = $153

Promotional Pricing

TimeTime supports time-limited promotional pricing:

const summerPromotion = {
id: "pricing-policy-summer-promo",
name: "Summer Promotion",
description: "Special summer rates",
eventTypeIds: ["event-type-tennis-lesson", "event-type-swimming-lesson"],
conditions: {
dateRange: {
startDate: "2023-06-01",
endDate: "2023-08-31"
}
},
priceModifier: {
type: "PERCENTAGE",
value: -15 // 15% discount
}
};

Package and Bundle Pricing

Offer special pricing for service bundles:

const wellnessPackage = {
id: "pricing-policy-wellness-package",
name: "Wellness Package",
description: "Discount when booking massage and yoga on the same day",
eventTypeIds: ["event-type-massage", "event-type-yoga"],
conditions: {
packageRequirements: {
requiredEventTypes: ["event-type-massage", "event-type-yoga"],
bookingWindow: "P1D" // Both services booked within 1 day
}
},
priceModifier: {
type: "PERCENTAGE",
value: -25 // 25% discount on both services
}
};

Conclusion

TimeTime's dynamic pricing system provides the flexibility and power to implement virtually any pricing strategy your business requires. By leveraging these capabilities, you can optimize revenue, manage demand, incentivize desired booking behaviors, and provide value-based pricing that resonates with your customers.

Whether you're running a simple service business or managing complex resources with variable demand patterns, TimeTime's pricing policies allow you to create a pricing strategy that aligns with your business objectives while remaining transparent and fair to customers.

For more technical details on implementing pricing policies, refer to the Pricing Policies Developer Guide or contact TimeTime support for personalized assistance with your pricing strategy.