In Salesforce CPQ + Billing (Revenue Cloud), heavy use of cross-object formula fields can create serious performance, calculation, and reliability issues. Salesforce product documentation and CPQ study guides highlight several risks related to:
Quote calculation engine performance
SOQL query depth
Runtime evaluation limits
Data availability timing during synchronous calculations
Below is the breakdown of the options:
✅ A. Formula field data is not always available during CPQ quote calculationCorrect.
Salesforce CPQ reads values at calculation time, but cross-object formula fields may:
Not resolve in time if they depend on parent records updated within the same transaction
Return stale values because formula evaluation is not recalculated in real time mid-calculation
Fail during QCP or price rule evaluation due to record access/state issues
This is a known risk documented in CPQ technical architecture guidance.
❌ B. Formula fields have unlimited access to object many relationships away which makes it vulnerable to data changes.Incorrect.
Formula fields do NOT have unlimited access. They are limited to 10 relationship levels.
While data changes on parent objects can affect formula results, this is not a primary risk emphasized in Revenue Cloud implementation guidance.
Therefore, not one of the three correct risks.
✅ C. They are computationally expensive.Correct.
Formula fields—especially cross-object ones—are recalculated at runtime every time:
The referenced record is queried
CPQ calculator reads them during price rule evaluation
Billing processes (Invoice Run, Usage Rating, etc.) reference them
This can significantly slow down:
This is a well-known performance risk.
✅ D. They can easily exceed limits if not carefully designed and testedCorrect.
Cross-object formulas contribute to:
In CPQ/Billing, where Quote and Quote Line processing already push platform limits, too many formula fields can cause:
Salesforce documentation warns against heavy formula usage for precisely these scalability concerns.
❌ E. Formula fields are editable, after calculation a user/process can overwrite the valueIncorrect.
Formula fields are never editable by users or automation.
Their values are dynamically calculated from their formula expressions.
Therefore, this option is not a valid risk.