As with Commitment, Prepay with Drawdown is a Zuora feature independent of Mediation but here we'll return to our earlier meter but run the meter for a new billing account, subscription and
a new 'Prepay Tokens Rate Plan'.
The difference between Prepaid with Drawdown and Commitment is when cash is collected. Obviously PPDD you get at least some cash up front, though heavy users may also be billed in arrears for overage over their prepaid amount as with 'Measured Add-On'.
What would a new 'Prepay Tokens Rate Plan' look like? Here the recurring charge bills $1000 every month as a cash prepay that is use or lose, and the usage charge drawdowns on the prepay at a rate of $0.01 per token until the first 100,000 tokens are consumed, after that the rate goes up to $0.02/token. It pays to prepay:
| Property | Recurring Prepayment Charge (Upfront Pool) | Usage Drawdown Charge (Token Consumption) |
|---|---|---|
| Charge Type | Recurring (or One-Time) | Usage |
| Charge Model | Flat Fee | Per Unit |
| Charge Function | Prepayment | Drawdown |
| Prepaid Type | Unit | Unit |
| Unit of Measure (UOM) | Token | Token |
| List Price | $1000.00 (Funds 100,000 Tokens) | $0.01 |
| Billing Period | Month | Month |
| Validity Period | 1 Month | N/A |
| Billing Timing | In Advance (Upfront) | In Arrears (Real-time Drawdown) |
| Rollover Rule | Expire | N/A |
| Overage Rate | N/A | $0.02 per Token. Here when the prepay balance is consumed, the overage rate is twice the prepay rate |
I used this table as the basis of the following prompt. Do not use this unmodified, you need to:
- Edit the effective start and end dates on the rate plan, change the UOM if you don't use Token
- Edit the pricing to reflect your tenant's default currency and other enabled currencies, if you don't know what those are ask the AI, e.g. 'what is the default currency and what currencies are active in this tenant?')
- Update the accounting codes to the ones specified by your Finance team
Create a new Product Rate Plan named "Prepay Meter Rate Plan" under [target product name], effective 2026-01-01 through 2050-12-31, with the following two charges - be sure to include the non USD pricing as specified:
1. Drawdown charge (token consumption)
Charge Type: Usage
Charge Model: Tiered Pricing
Unit of Measure: Token
Billing Period: Month
List Price Base: Per Billing Period
Trigger Event: Contract Effective
End Date Condition: Subscription End
Prepaid/Drawdown: Is Prepaid = true, Prepaid Operation Type = DrawDown, Drawdown Rate = 1
Rollover: Apply Last, Rollover Periods = 0, Rollover Period Length = 0
Up To Periods Type: Billing Periods
Accounting Code: Deferred SaaS Revenue
Revenue Recognition Rule: Recognize upon invoicing
Taxable: false
Pricing tiers (Per Unit price format):
USD: Tier 1 = 1-100,000 at $0.01/unit; Tier 2 = 100,001+ at $0.02/Token
EUR: Tier 1 = 1-100,000 at 0.01/unit; Tier 2 = 100,001+ at 0.03/Token
AUD: Tier 1 = 1-100,000 at 0.01/unit; Tier 2 = 100,001+ at 0.02/Token
CAD: Tier 1 = 1-100,000 at 0.01/unit; Tier 2 = 100,001+ at 0.01/Token
2. Prepayment charge (upfront pool)
Charge Type: Recurring
Charge Model: Flat Fee Pricing
Billing Period: Month
Billing Timing: In Advance
List Price Base: Per Billing Period
Trigger Event: Contract Effective
End Date Condition: Subscription End
Default Quantity: 1
Prepaid/Drawdown: Is Prepaid = true, Prepaid Operation Type = TopUp, Validity Period Type = Month
Rollover: Apply Last, Rollover Periods = 0, Rollover Period Length = 0
Accounting Code: Deferred SaaS Revenue
Revenue Recognition Rule: Recognize upon invoicing
Taxable: false
Pricing (flat fee, per currency): USD = $1,000.00; EUR = 1000; AUD = 1000; CAD = 1000
Create the new product rate plan as described above.
Create a new billing account and subscription using your new PPDD rate plan.
Copy and then edit llm_usage.csv with your new account number. Edit the event ids, e.g. replace ext-0001 with ext-10001. Event_id is defined as unique in the meter and the same event-ids will all be rejected.
This is just one example of PPDD, while we used a cash 'pool' that was 'use or lose', you can use a 'unit' based prepay. We used a monthly validity period here, but as we saw with Commitment, longer periods such as quarterly or annual are supported.
Previous: Interactive commitment walkthrough