A discount schedule is an SBQQ__DiscountSchedule__c record with a Type (Volume or Term — verify exact API values), associated with a product or price book entry.
Create the schedule header: POST /services/data/{apiVersion}/sobjects/SBQQ__DiscountSchedule__c with Name, SBQQ__Type__c, SBQQ__DiscountUnit__c (Percentage or Amount), and SBQQ__PartnerDiscount__c if applicable.
Create discount tiers as SBQQ__DiscountTier__c child records: POST /services/data/{apiVersion}/sobjects/SBQQ__DiscountTier__c with SBQQ__Schedule__c (lookup to the schedule), SBQQ__LowerBound__c, SBQQ__UpperBound__c, and SBQQ__Discount__c.
Associate the discount schedule with a product by setting SBQQ__DiscountSchedule__c on the SBQQ__Product2__c extension record (or the product option record), or link it at the price book entry level — verify the correct association object for your CPQ configuration.
Test the schedule by adding the associated product to a quote and varying quantities to confirm the correct tier is applied during QuoteCalculator calls.
Review the CPQ price waterfall on calculated quote lines to confirm the discount schedule is being applied.
Known gotchas
Volume discounts apply based on quantity; term discounts apply based on subscription term length — using the wrong type will cause the schedule to not apply.
Upper bound of the final tier should be left blank or set to a sufficiently large number to cover all valid quantities; a gap between tiers can result in no discount being applied.
The association path between discount schedules and products/price book entries can vary by CPQ configuration; consult your org's CPQ setup documentation.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp