Skip to main content

Revenue Cloud Decision Tables: Why New Products Break Quote Pricing

One of the most disruptive gotchas in Revenue Cloud occurs when a team adds a new Product2 record with a PricebookEntry and then discovers that every Quote containing that product fails to price correctly. The root cause is Revenue Cloud's Decision Table caching mechanism -- and the fix is simple once you know to look for it.

What Decision Tables Are

Revenue Cloud uses Decision Tables as a metadata-driven pricing engine. Rather than relying solely on standard PricebookEntry prices, the system evaluates a set of approximately 10 Decision Tables during every pricing operation. These tables define rules for:

  • Base price resolution
  • Discount calculations
  • Markup and margin rules
  • Tax treatment selection
  • Pricing procedure step routing
  • Product-specific pricing overrides

Decision Tables are cached in memory for performance. When a pricing operation runs, Revenue Cloud reads from this cache rather than querying the underlying metadata each time. This caching is critical for performance in orgs with thousands of products and complex pricing rules.

The Cascading Failure Pattern

Here is the sequence that causes the problem:

  1. Admin creates a new Product2 record and associates it with a PricebookEntry in the relevant Pricebook.
  2. Decision Tables are not refreshed. The cache still reflects the state before the new product existed.
  3. A user adds the new product to a Quote. The pricing engine consults the cached Decision Tables, finds no matching entry for the new product, and either fails silently or throws an error.
  4. The failure cascades. Any subsequent pricing operation on that Quote -- including repricing existing lines -- may fail because the pricing engine encounters the unresolvable product and halts the entire calculation.

This means a single new product can break pricing on Quotes that contain dozens of other, previously working products.

Symptoms to Watch For

  • Pricing returns $0 on new products despite a valid PricebookEntry with a non-zero price
  • Repricing fails on Quotes that were working before the new product was added
  • Line items cannot be saved with errors referencing required pricing fields
  • "Calculate" action on Quote completes without error but leaves prices unchanged
  • Existing products on the same Quote lose their calculated prices after the new product is added

The particularly insidious aspect is that these symptoms can appear intermittent -- they depend on whether the specific Quote includes the new product.

How to Refresh Decision Tables

  1. Navigate to Setup in your Salesforce org.
  2. Search for "Decision Tables" in the Quick Find box.
  3. Open the Decision Table management page.
  4. Click Refresh (or Refresh All) to rebuild the cache from current metadata.

After refreshing, the pricing engine will recognize the new product and all associated pricing rules. Existing Quotes with the new product should reprice correctly on their next calculation.

Prevention Checklist for Product Launches

Use this checklist whenever adding new products to an org with Revenue Cloud:

StepActionVerify
1Create Product2 recordProduct is Active
2Create PricebookEntryPrice is non-zero, correct Pricebook
3Add product to relevant Pricing ProceduresRules reference new product if needed
4Refresh Decision TablesNavigate to Setup and refresh
5Test pricing on a draft QuoteNew product prices correctly
6Reprice a Quote with mixed productsExisting products still price correctly

Step 4 is the one most teams miss. It should be a mandatory step in any product setup runbook.

Debugging Tips

If you suspect Decision Table caching is the issue:

  • Check the timeline. Was a new product added recently? Correlate the timing of product creation with the onset of pricing failures.
  • Test with an older product. If Quotes with only pre-existing products still price correctly, the new product is likely the trigger.
  • Refresh and retest. The fastest diagnostic is simply refreshing Decision Tables and seeing if the problem resolves. If it does, you have confirmed the root cause.
  • Review debug logs. Look for Decision Table evaluation entries that show no match found for the new product's criteria.

Key Takeaway

Decision Table caching is a performance optimization that creates an operational dependency. Every product change requires a Decision Table refresh. Building this step into your product management process prevents a class of pricing failures that can be difficult to diagnose without knowing where to look.