Pricing Logic

This guide explains how Vrio determines what customers pay and how to configure pricing for different offer types, item variations, and billing scenarios. Understanding these pricing rules will help you set up flexible pricing strategies that work exactly as intended.

How Vrio Determines Pricing

The price a customer pays depends on three main things:

  1. What type of offer you're using (Custom vs Shared)
  2. Whether your item has variations (size, color, etc.)
  3. What billing cycle they're on (first purchase, renewal, etc.)

Let's break this down simply:

Custom Offers

You're selling one specific item per cycle.

If your item has NO variations

  • Vrio uses the price you set on the offer cycle
  • Simple and straightforward

If your item has variations (size, color, etc.)

  • Vrio first checks if you set a specific price for that variation on the offer cycle
  • If not, it uses the base offer cycle price
  • If no offer cycle pricing exists, it falls back to the item's own pricing

→ Learn how: Setting Prices for Custom Offers

Shared Offers

Customers can choose from multiple items within the same offer.

If items have NO variations

  • Vrio checks if you set a specific price for that item within the offer
  • If not, it uses the item's base price

If items have variations

  • Vrio first looks for item + variation pricing within the offer
  • Then item variation pricing
  • Then item base pricing within the offer
  • Finally the item's own pricing

→ Learn how: Setting Prices for Shared Offers

Price Overrides

Sometimes you need to give someone special pricing:

In the Admin UI

  • When placing an order or creating a checkout link

  • Simply enter the custom price in the price override field


  • Great for VIP customers, customer service adjustments, or one-off discounts

Via API

  • Pass order_offer_price in your offers array
  • Useful for dynamic pricing, A/B testing, or integration with external pricing systems
{
  "offers": [
    {
      "offer_id": 123,
      "order_offer_quantity": 1,
      "order_offer_price": 19.99
    }
  ]
}
🚧

Important

Overrides only affect the first purchase - renewals use normal offer pricing.

Key Pricing Principles

Price Changes Only Affect New Transactions

When you change pricing on an offer, it only affects NEW transactions that are created. Already scheduled recurring transactions will use the price that was set when they were scheduled.

Example Timeline:

  • Customer signs up for $20/month on August 6th
  • Next charge scheduled for September 6th at $20
  • You change price to $25 on September 1st
  • Customer still pays $20 on September 6th (already scheduled)
  • Their October 6th charge will be scheduled at the new $25 price

Need to update existing customers immediately? You can edit them manually or use Vrio's bulk update tool to change scheduled transactions.

Want to grandfather existing customers at their current price? Create a new offer with the new pricing and use that for new signups. This lets existing customers keep their current pricing while new customers get the updated rates.

Currencies

Vrio doesn't convert currencies automatically:

  • Best approach: Create separate offers for each currency
  • Alternative: Use API price overrides for currency conversion (initial purchase only - renewals will use offer pricing, so create separate offers for recurring scenarios)

Campaign-Level Changes Affect the Offer

When you modify pricing through campaign management interfaces:

  • You're editing the underlying offer configuration
  • Changes affect ALL campaigns using this offer
  • Other campaigns may see unexpected price changes
  • Always verify which campaigns use an offer before making changes

Pricing Decision Flow

For Custom Offers

Customer selects item variation (if any)
    ↓
1. Check: Item has a variation AND is there a specific price set for this variation on the offer cycle?
    → YES: Use that price ✅
    → NO: Continue to step 2
    ↓
2. Check: Is there a base price set on the offer cycle?
    → YES: Use offer cycle price ✅
    → NO: Continue to step 3
    ↓
3. Use the item's own pricing (variation or base price)

For Shared Offers

Customer selects item + variation (if any)
    ↓
1. Check: Item has a variation AND is there a specific price for this item + variation within the offer?
    → YES: Use that price ✅
    → NO: Continue to step 2
    ↓
2. Check: Item has a variation AND is there pricing for just the item variation (not offer-specific)?
    → YES: Use item variation price ✅
    → NO: Continue to step 3
    ↓
3. Check: Is there a price set for this item within the offer?
    → YES: Use offer-specific item price ✅
    → NO: Continue to step 4
    ↓
4. Use the item's base price

Common Pricing Scenarios

Simple Monthly Subscription

  • Set one price on the offer cycle
  • All customers pay the same amount each month
  • Price changes affect only new signups

Multi-Tier Pricing (Trial → Full Price)

  • Cycle 1: $1.00 trial
  • Cycle 2+: $29.99 regular price
  • Each cycle can have different pricing

Size-Based Pricing

  • Small: $19.99
  • Medium: $24.99
  • Large: $29.99
  • Set variation pricing within the offer cycle

Volume Discounts by Cycle

  • Cycle 1-3: $39.99 (getting started)
  • Cycle 4-6: $34.99 (loyal customer discount)
  • Cycle 7+: $29.99 (VIP pricing)

Multi-Product Offer with Custom Pricing

  • Shared offer with 5 different items
  • Each item has its own price within the offer
  • Customers can switch between items while keeping billing cycle

Advanced Pricing Features

Quantity Discounts

Vrio supports quantity-based pricing tiers that automatically adjust the price based on how many items a customer purchases. This powerful feature enables bulk pricing strategies and volume discounts without requiring complex manual calculations.

How Quantity Discounts Work

Automatic Price Calculation: When a customer adds multiple quantities of an item to their order, Vrio automatically applies the appropriate pricing tier based on the total quantity.

Tier-Based Pricing: Set up multiple price tiers (e.g., 1-5 items: $10 each, 6-10 items: $8 each, 11+ items: $6 each)

Real-Time Updates: Pricing updates immediately as customers adjust quantities in checkout

Quantity Discount Applications

Custom Offers: Quantity discounts can be applied at the offer cycle level, giving you precise control over bulk pricing for specific billing cycles.

Shared Offers: Each item within a shared offer can have its own quantity discount profile, allowing different bulk pricing strategies for different products.

Upsell Integration: Quantity discounts can be combined with upsell offers to encourage larger purchases.

Common Use Cases

Bulk Product Sales:

  • 1-2 bottles: $29.99 each
  • 3-5 bottles: $24.99 each
  • 6+ bottles: $19.99 each

Subscription Tiers:

  • 1 month: $39.99/month
  • 3 months: $34.99/month
  • 6 months: $29.99/month

Business/Wholesale Pricing:

  • 1-10 licenses: $15/month each
  • 11-25 licenses: $12/month each
  • 26+ licenses: $10/month each

Important Considerations

Pricing Hierarchy: Quantity discounts integrate with Vrio's standard pricing logic - they're applied after item and variation pricing is determined but before any offer-level overrides.

Recurring Billing: For subscription offers, the quantity discount pricing carries forward to renewal billing (customers keep their bulk pricing as long as quantity remains the same).

Inventory Impact: Higher quantities may affect fulfillment and inventory planning - ensure your operations can handle bulk orders.

→ Setup Guide: Configuring Quantity Discounts

Sticky Dunning Discounts

When a customer's payment fails and succeeds after dunning attempts, you can configure "sticky" discounts that persist on future renewals:

  • Set up dunning cycles with discount percentages
  • Enable "sticky discount" option
  • Successful recovery applies discount to future charges
  • Useful for retention after payment issues

Cycle-Based Price Increases

Configure automatic price increases after specific cycles:

  • Start customers at introductory pricing
  • Automatically increase prices after trial period
  • No manual intervention needed
  • Transparent pricing progression

Currency Considerations

Best Practices:

  • Create separate offers for each currency (USD, EUR, GBP)
  • Don't rely on API overrides for recurring billing
  • Test currency formatting in emails and receipts
  • Consider regional pricing strategies

Avoid:

  • Using USD offers with API overrides for other currencies
  • Assuming automatic currency conversion
  • Mixed currency scenarios within single offers

Testing Your Pricing Setup

Always test your pricing configuration before launching:

Test Scenarios

  1. Normal signup: Verify correct initial pricing
  2. Renewals: Confirm recurring pricing works as expected
  3. Price overrides: Test both UI and API overrides
  4. Variations: Test all size/color combinations
  5. Multi-cycle pricing: Verify price changes between cycles
  6. Currency handling: Test international scenarios

Common Issues to Check

  • Price overrides not applying to renewals
  • Variation pricing falling back incorrectly
  • Campaign changes affecting unrelated offers
  • Currency display issues
  • Cycle progression pricing errors

Troubleshooting Pricing Issues

Customer charged wrong amount

  • Check which pricing rule applied (offer vs item vs variation)
  • Verify cycle configuration and progression
  • Look for active price overrides
  • Check if offer pricing is properly configured

Price changes not taking effect

  • Confirm changes affect new transactions only
  • Check if existing customers have scheduled transactions
  • Verify campaign vs offer configuration
  • Look for price override conflicts

Variation pricing not working

  • Confirm variation pricing is set within the offer
  • Check fallback pricing hierarchy
  • Verify item variations are configured correctly
  • Test with different variation combinations

Currency pricing problems

  • Verify separate offers for each currency
  • Check for API override usage in recurring scenarios
  • Confirm currency display settings
  • Test international checkout flows

Related Documentation