Have you ever seen a report where 10% + 10% equals 20%, but it should actually be 10%? That is a calculation order problem. Two-Pass Calculation is the fix.
1. The Definition: Second Time's the Charm
By default, Essbase calculates data in a single pass. It moves through the outline, sums things up, and finishes.
* The Issue: Members like 'Gross Margin %' or 'Variance %' cannot be calculated until the final totals for the Year or Entity are known.
* The Two-Pass Fix: This property tells the engine: "Calculate the whole cube first. Then, come back and calculate this specific member again using the final results."
2. The "Test Score" Example
Think about your grades:
* Exam 1: 80/100 (80%)
* Exam 2: 20/100 (20%)
Incorrect (One Pass): The system adds the percentages together. 80% + 20% = 100%. (This is a disaster!)
Correct (Two-Pass):
1. Pass 1: Sum the points (80 + 20 = 100) and the totals (100 + 100 = 200).
2. Pass 2: Perform the division at the parent level (100 / 200 = 50%).
3. How it is useful while building an application
* Reliability: It ensures that your Financial Statements (P&L, Balance Sheet) show mathematically accurate ratios at the Quarter and Year levels.
* Efficiency: It prevents you from having to write long, complicated 'Calculate' scripts to force math to happen in a certain order.
* User Confidence: Your CFO will never see a 'Total %' that doesn't make sense.
4. Where we use these concepts?
* Member Properties: In the dimension outline, you select 'Two-Pass' for any Ratio or Percentage account.
* Dynamic Calc: It is almost exclusively used on members that are calculated on-the-fly (Dynamic Calc).
* FCCS/Planning: Both systems rely on this property to handle things like 'Consolidated Tax Rate' or 'Operating Margin'.
5. Extra Information: The Account Dimension Rule
Important Architect Tip: Two-pass only functions correctly on dimensions tagged as the Account or Time type. If you have a percentage in a 'Product' dimension, you might need a custom calculation script instead!