intermediate
pricing
dynamic-pricing
surge-pricing

Dynamic Pricing Rules

Configure automatic price adjustments based on time of day, weather conditions, demand, and vehicle models to maximize revenue

Levy Fleets TeamDecember 25, 202514 min read

Dynamic Pricing Rules

Dynamic pricing allows you to automatically adjust ride prices based on time of day, weather conditions, demand, or specific vehicle models. This guide covers how to create, manage, and optimize dynamic pricing rules for maximum revenue and operational efficiency.

Overview

Dynamic pricing rules apply adjustments to base prices in real-time based on configurable conditions. These adjustments can increase prices during peak demand or decrease them during slow periods.

Key Features

  • Time-based rules - Surge pricing during peak hours, discounts during off-peak
  • Weather-based rules - Adjust pricing for rain, snow, or extreme temperatures
  • Demand-based rules - Automatic adjustments based on high-demand areas
  • Vehicle-model targeting - Apply rules to specific vehicle types only
  • Priority ordering - Control which rules take precedence
  • Multiple adjustment types - Use percentages, multipliers, or fixed amounts

Accessing Dynamic Pricing

1

Navigate to Pricing

Go to Dashboard and click Pricing in the sidebar navigation.

2

Find Dynamic Pricing Section

Scroll to the Dynamic Pricing Rules section.

3

Manage Rules

Click Add Rule to create a new rule or use edit/delete icons for existing ones.

Rule Types

Time-Based Rules

Schedule automatic price adjustments for specific time windows and days of the week.

Use Cases:

  • Morning rush hour surge (7 AM - 9 AM weekdays)
  • Happy hour discounts (4 PM - 6 PM)
  • Weekend surge pricing
  • Late night reduced rates

Configuration:

FieldDescriptionExample
Start TimeWhen the rule activates07:00
End TimeWhen the rule deactivates09:00
Days of WeekWhich days the rule appliesMon, Tue, Wed, Thu, Fri

Overnight Spans

Time-based rules support overnight spans. For example, a rule from 10:00 PM to 2:00 AM will work correctly across midnight.

Weather-Based Rules

Adjust pricing based on current weather conditions. Requires external weather integration.

Available Conditions:

ConditionDescription
RainAny precipitation detected
SnowSnow or sleet conditions
Extreme HeatTemperature above threshold
Extreme ColdTemperature below threshold

Use Cases:

  • Increase prices during rain to account for higher risk
  • Decrease prices in perfect weather to encourage ridership
  • Apply surcharges during dangerous conditions

Demand-Based Rules

Automatically adjust pricing in high-demand areas. These rules work with zone-based demand detection.

How It Works:

  • System monitors ride requests and vehicle availability by zone
  • When demand exceeds supply thresholds, the rule activates
  • Prices adjust automatically to balance demand

Best For:

  • Event venues during concerts/games
  • Transit hubs during rush hour
  • Popular nightlife areas on weekends

Adjustment Types

Each dynamic pricing rule can use one of two adjustment methods, plus an optional fixed surcharge:

Percentage Adjustment

Increases or decreases the price by a percentage.

ValueEffectExample
+25%25% increase$10.00 becomes $12.50
+10%10% increase$10.00 becomes $11.00
-15%15% discount$10.00 becomes $8.50
-20%20% discount$10.00 becomes $8.00

Calculation:

Adjusted Price = Base Price x (1 + Percentage / 100)

Typical Ranges:

  • Rush hour surges: +20% to +50%
  • Off-peak discounts: -10% to -25%
  • Bad weather surcharges: +15% to +30%

Multiplier

Applies a direct multiplier to the base price.

ValueEffectExample
1.5x50% increase$10.00 becomes $15.00
2.0x100% increase (double)$10.00 becomes $20.00
0.9x10% discount$10.00 becomes $9.00
0.75x25% discount$10.00 becomes $7.50

Calculation:

Adjusted Price = Base Price x Multiplier

Typical Ranges:

  • Major event surge: 2.0x to 3.0x
  • Extreme weather premium: 1.5x
  • Promotional discount: 0.8x

Fixed Adjustment

Add or subtract a fixed dollar amount on top of percentage/multiplier adjustments.

ValueEffect
+$1.00Add $1.00 flat fee
+$2.50Add $2.50 flat fee
-$0.50Subtract $0.50

Best For:

  • Flat surcharges (e.g., "Peak hour fee")
  • Fixed discount promotions
  • Cost recovery for specific conditions

Creating a Dynamic Pricing Rule

Step 1: Basic Information

Rule Name (Required)

A descriptive name for the rule. Examples:

  • "Morning Rush Hour Surge"
  • "Weekend Night Premium"
  • "Rainy Day Discount"
  • "Happy Hour Special"

Rule Type (Required)

Select one:

  • Time Based
  • Weather Based
  • Demand Based

Priority (Required)

Enter a number (1 and up). Higher numbers are processed first. When multiple rules apply:

  1. Rules are sorted by priority (highest first)
  2. Within the same priority, newer rules take precedence
  3. All applicable rules are applied sequentially

Step 2: Configure Adjustment

Adjustment Type

Choose between:

  • Percent - Enter percentage (positive for increase, negative for discount)
  • Multiplier - Enter multiplier value (>1 for increase, <1 for discount)

Adjustment Value

TypeExamples
Percent25 (for +25%), -15 (for -15%)
Multiplier1.5 (for 50% increase), 0.8 (for 20% discount)

Fixed Adjustment (Optional)

Enter a dollar amount to add/subtract after the percentage/multiplier.

Step 3: Set Conditions

For Time-Based Rules:

  1. Set Start Time (24-hour format)
  2. Set End Time (24-hour format)
  3. Select applicable Days of Week (at least one required)

For Weather-Based Rules:

  1. Check one or more weather conditions
  2. Leave unchecked conditions won't trigger the rule

For Demand-Based Rules: Configure zone demand thresholds in advanced settings.

Step 4: Target Vehicle Models (Optional)

By default, rules apply to all vehicle models. To limit to specific models:

  1. Check the boxes next to the desired vehicle models
  2. Leave all unchecked to apply globally

Example:

  • Only apply surge pricing to premium e-bikes
  • Only discount standard scooters during promotions

Step 5: Activate

Toggle the Active checkbox to enable the rule. Click Create to save.

Rule Priority and Stacking

How Priority Works

When multiple rules apply to a ride, they're processed in this order:

  1. Highest priority number first (priority 10 before priority 1)
  2. Most recently created first (for same priority)

All applicable rules are applied sequentially, building on each other.

Stacking Example

Active Rules:

  1. "Morning Surge" - Priority 5 - +20%
  2. "Premium Vehicle Premium" - Priority 3 - +$1.00
  3. "Rainy Weather" - Priority 2 - +10%

Base Price: $10.00

Calculation (for a premium vehicle during morning rain):

Step 1: Morning Surge (+20%)
$10.00 x 1.20 = $12.00

Step 2: Premium Vehicle (+$1.00)
$12.00 + $1.00 = $13.00

Step 3: Rainy Weather (+10%)
$13.00 x 1.10 = $14.30

Final Price: $14.30

Best Practices for Priority

Priority RangeUse Case
10+Emergency/override rules
5-9Time-based surges
3-4Vehicle-specific adjustments
1-2Weather/demand modifiers

Managing Existing Rules

Viewing Rules

The rule table displays:

ColumnDescription
PriorityExecution order
Rule NameDescriptive name
TypeTime/Weather/Demand icon
AdjustmentPercentage, multiplier, and/or fixed
Schedule/ConditionTime window or weather triggers
Vehicle ModelsWhich models are affected
StatusActive/Inactive badge

Editing Rules

  1. Click the Edit icon on the rule row
  2. Modify any fields
  3. Click Save

Immediate Effect

Changes take effect immediately for new rides. Active rides continue with their original pricing.

Deactivating Rules

  1. Toggle the rule's Active status to inactive
  2. Rule remains in the system but won't apply

Use this for:

  • Seasonal rules (holiday pricing)
  • Testing rules before full rollout
  • Pausing rules during promotions

Deleting Rules

  1. Click the Delete icon
  2. Confirm deletion

Rules are permanently removed. For temporary suspension, use deactivation instead.

Common Use Cases

Rush Hour Surge

Setup:

  • Name: "Morning Rush Hour"
  • Type: Time Based
  • Times: 7:00 AM - 9:00 AM
  • Days: Monday - Friday
  • Adjustment: +25%
  • Priority: 5

Happy Hour Discount

Setup:

  • Name: "Happy Hour Special"
  • Type: Time Based
  • Times: 4:00 PM - 6:00 PM
  • Days: Monday - Friday
  • Adjustment: -15%
  • Priority: 4

Weekend Night Premium

Setup:

  • Name: "Weekend Nights"
  • Type: Time Based
  • Times: 9:00 PM - 2:00 AM
  • Days: Friday, Saturday
  • Adjustment: +30% + $0.50 fixed
  • Priority: 6

Rainy Day Pricing

Setup:

  • Name: "Rain Surge"
  • Type: Weather Based
  • Conditions: Rain
  • Adjustment: +15%
  • Priority: 3

Premium E-Bike Surge

Setup:

  • Name: "Premium E-Bike Peak"
  • Type: Time Based
  • Times: 12:00 PM - 2:00 PM
  • Days: All days
  • Adjustment: +$1.00 fixed
  • Vehicle Models: Premium E-Bike only
  • Priority: 4

Best Practices

  1. Start with modest adjustments - Begin with 10-15% surges and increase based on data
  2. Use clear naming - Rule names should describe when/why they apply
  3. Set appropriate priorities - Avoid conflicts with careful priority planning
  4. Test before activating - Use the preview feature to verify calculations
  5. Monitor rider feedback - Excessive surges can drive customers away
  6. Combine with promotions - Use discounts to balance surge fatigue
  7. Communicate to riders - Show surge pricing in the app before ride start
  8. Review regularly - Adjust rules based on ride data and revenue metrics

Technical Reference

Database Structure

dynamic_pricing_rules

ColumnTypeDescription
idUUIDUnique identifier
nameTextRule name
rule_typeEnum'time_based', 'weather_based', 'demand_based'
multiplierDecimalMultiplier value (null if using percent)
percent_adjustmentDecimalPercentage value (null if using multiplier)
fixed_adjustment_centsIntegerFixed surcharge in cents
priorityIntegerExecution priority
is_activeBooleanWhether rule is enabled
conditionsJSONBWeather conditions (for weather rules)
vehicle_model_idsUUID[]Targeted vehicle models (null = all)
subaccount_idUUIDLocation scope

dynamic_pricing_time_windows

ColumnTypeDescription
rule_idUUIDLinks to parent rule
start_timeTimeStart of window
end_timeTimeEnd of window
days_of_weekInteger[]Array of day numbers (0=Sunday)

Troubleshooting

Rule Not Applying

  1. Verify the rule's Active status
  2. Check the time window matches current time (account for timezone)
  3. Confirm days of week include today
  4. Verify vehicle model targeting is correct or set to all
  5. Check rule priority isn't being overridden

Incorrect Adjustment Amount

  1. Confirm you're using the right adjustment type (percent vs multiplier)
  2. Verify the value is entered correctly (25 for 25%, not 0.25)
  3. Check if multiple rules are stacking unexpectedly
  4. Review the applied rules in ride details

Rules Conflicting

  1. Review priority numbers
  2. Adjust priorities to ensure correct execution order
  3. Consider consolidating similar rules
  4. Use vehicle model targeting to separate concerns

Dynamic Pricing Configured

With dynamic pricing in place, your pricing will automatically adjust based on conditions. Monitor your revenue metrics to fine-tune rules and maximize profitability while maintaining customer satisfaction.