Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Visual Approach to Essbase Calcs: 2018

217 views

Published on

Essbase’s “Best in Class” calculation engine enables Essbase and Planning to satisfy a vast array of planning and analysis needs. Whether it’s on-premise, in PBCS custom databases, or in the EPBCS business processes, creating custom logic that meets any analytical need will generate enormous value for your organization. But to take advantage of that power and avoid costly mistakes, you must thoroughly understand what you’re working with.

The Visual Approach to Essbase calculations was developed and refined over 20 years of Essbase and Planning projects with thousands of hours of training. Now, it’s been updated for the cloud and Hybrid Aggregation. The Visual Approach uses many diagrams and visualizations to walk through exactly how Essbase thinks, starting with a thorough explanation of dimensionality, the Essbase calc cycle, global calculation, and controlling calculation scope. It demystifies sparse and dense, showing how to make the block your friend in order to make your calculations (and other Essbase/Planning operations) quickly. Finally, it explains a handful of the most important commands and functions.

This presentation is for power users, admins, and developers who are either new to Essbase and Planning calculations or need to improve their calculation skills. It provides a thorough understanding of the concepts governing Essbase calculations and the core set of commands and functions that are used in virtually every calc script and business rule. It gives you the confidence to tackle new calculation challenges and write better, faster, and more powerful business rules.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Visual Approach to Essbase Calcs: 2018

  1. 1. Integrated Business Analytics Solutions A Visual Approach to Essbase Calculations: 2018 Ron Moore June 12, 2018
  2. 2. 2 Ron Moore • Principal Architect at Ranzal • Over 20 years Essbase consulting and training experience • Certified in Essbase, Planning and R programming • Many webcasts and KScope sessions • 19 Oracle University Quality Awards Intro
  3. 3. 3 Comprehensive Business Solutions Ranzal’s solutions drive improved business performance through better decision making, strong customer engagement and optimized operations Deep Oracle Partnership Drives Customer Value Adaptable Deployment Models Diverse Client Portfolio & Industry Expertise Bio Tech and Pharma Medical Supplies Team Highlights Multiple Oracle ACEs Seasoned delivery team with avg ~6 yrs serving Ranzal clients Experienced mgmt team with avg 12 yrs leading Ranzal
  4. 4. 4 Visit us at Booth # 407
  5. 5. 5 • Provide a solid intro to “how Essbase thinks” about calculations • Avoid mistakes that cause poor performance • Introduce the most important calc commands and functions • Provide some simple best practices (the simple stupid rules) that work for 80% of Essbase calcs • Mostly BSO, but some of it is relevant for ASO and Hybrid Session Objectives
  6. 6. 6 • Intersections and intersection names • Referring to intersections in calculations • How Essbase stores data (Sparse & Dense in 60 seconds) • Essbase’s multidimensional calculation cycle • Absolute and relative references • The most important Essbase calc commands and functions • You can do a simple allocation Agenda
  7. 7. 7 Row and Column Intersections • Spreadsheets store data in intersections named using row numbers and column letters • Like coordinates on a map
  8. 8. 8 Essbase Uses Business Descriptions • Essbase names intersections using business descriptions • “Members” of Dimensions
  9. 9. 9 Two Dimensional Model Dec -> “Net Income”
  10. 10. 10 Three Dimensional Model Dec -> “Net Income”Actual ->
  11. 11. 11 Five Dimensional Model
  12. 12. 12 • Every number lives in an intersection. Every Intersection has a name. Its one (and only one) member of each dimension. Simple Stupid Rule #1 (the iron rule of multidimensional databases)
  13. 13. 13 Sales Actual->Sales Jan->Actual->Sales • Specify more dimensions to reduce scope
  14. 14. 14 Jan->NY->Margin NY->Margin Margin • Specify fewer dimensions to increase scope
  15. 15. 15 Hierarchy Member Formula Calc Script Three Ways to Specify a Formula
  16. 16. 16 Relative and Absolute References
  17. 17. 17 • Essbase implicitly matches the members on the left to the members on the right Margin = Sales - COGS; Jan->Margin = Jan->Sales - Jan->COGS ; Feb->Margin = Feb->Sales - Feb->COGS ; … Dec->Margin = Dec->Sales - Dec->COGS ; Relative References
  18. 18. 18 • The cross-dimensional operator (->)creates an absolute reference Fixed (Absolute) References Share = Sales / “Total Markets” ->Sales; • Specifying a co-ordinates overrides the implied match NY->Share = NY->Sales / “Total Markets” ->Sales; MA->Share = MA->Sales / “Total Markets” ->Sales; FL->Share = FL->Sales / “Total Markets” ->Sales;
  19. 19. 19 Sparse and Dense in 60 seconds
  20. 20. 20 Cartesian math Dimensions Members Potential cells 1 8 8 2 12 96 3 3 288 4 5 1440 5 4 5760 Potential cells 0 1000 2000 3000 4000 5000 6000 1 2 3 4 5
  21. 21. 21 Data Explosion • One input number • Results in many calculated numbers
  22. 22. 22 Essbase Breaks the Database Into “Blocks” USA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Europe Asia Africa All Regions Hardware Software Services All Products
  23. 23. 23 But Some Are Empty... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 USA Europe Asia Africa All Regions Hardware Software Services All Products
  24. 24. 24 • The smallest unit of I/O in Essbase • A block contains all dense dimension member combinations • For one sparse dimension member combination Definition of a Block
  25. 25. 25 Basic Calc Script Commands CALC ALL; Calculates the database based on the outline. CALC DIM (single or multiple dimensions listed); Calculates a single dimension or multiple dimensions.
  26. 26. 26 The Dense Calc 1. Accounts Dimension (Accounts Dimension property) 2. Time Dimension (Time Dimension property) 3. Remaining Dense Dimension (in Outline Order) The Sparse Calc 4. Remaining Sparse Dimensions (in Outline Order) Order of Calculation: Dimensions Update: ASO and new versions of BSO use Solve Order to control calculation order
  27. 27. 27 Calc Order: 1. Accounts Jan Feb Mar Qtr1 Measures L - - - - Profit ~ - - - - Margin + - - - - Sales + 678 645 675 - COGS - 271 258 270 - Total Expenses - - - - - Marketing + 94 90 94 - Payroll + 51 51 51 - Misc + 0 1 1 - Ratios L - - - - Margin % F - - - - Profit % F - - - - Load Data
  28. 28. 28 Calc Order: 1. Accounts Jan Feb Mar Qtr1 Measures L - - - - Profit ~ - - - - Margin + 407 387 405 - 3 Calc Margin for all dense dims Sales + 678 645 675 - 1 Read Sales Data COGS - 271 258 270 - 2 Read COGS Data Total Expenses - - - - - Marketing + 94 90 94 - Payroll + 51 51 51 - Misc + 0 1 1 - Ratios L - - - - Margin % F - - - - Profit % F - - - - Margin:Consolidate Sales (+) and COGS (-)
  29. 29. 29 Calc Order: 1. Accounts Jan Feb Mar Qtr1 Measures L - - - - Profit ~ - - - - Margin + 407 387 405 - 3 Calc Margin for all dense dims Sales + 678 645 675 - 1 Read Sales Data COGS - 271 258 270 - 2 Read COGS Data Total Expenses - 145 142 146 - 7 Calc Total Expenses for all dense dims Marketing + 94 90 94 - 4 Read Marketing data Payroll + 51 51 51 - 5 Read Payroll data Misc + 0 1 1 - 6 Read Misc. data Ratios L - - - - Margin % F - - - - Profit % F - - - - Total expenses: Consolidate Marketing (+), Payroll (+) and Misc. (+).
  30. 30. 30 Calc Order: 1. Accounts Jan Feb Mar Qtr1 Measures L 262 245 259 - 8 Calc Measures for all dense dims Profit ~ 262 245 259 - 8 Calc Profit for all dense dims Margin + 407 387 405 - 3 Calc Margin for all dense dims Sales + 678 645 675 - 1 Read Sales Data COGS - 271 258 270 - 2 Read COGS Data Total Expenses - 145 142 146 - 7 Calc Total Expenses for all dense dims Marketing + 94 90 94 - 4 Read Marketing data Payroll + 51 51 51 - 5 Read Payroll data Misc + 0 1 1 - 6 Read Misc. data Ratios L - - - - Margin % F - - - - Profit % F - - - - Profit: Consolidate Margin (+) and Total Expenses (-)
  31. 31. 31 Calc Order: 1. Accounts Jan Feb Mar Qtr1 Measures L 262 245 259 - 8 Calc Measures for all dense dims Profit ~ 262 245 259 - 8 Calc Profit for all dense dims Margin + 407 387 405 - 3 Calc Margin for all dense dims Sales + 678 645 675 - 1 Read Sales Data COGS - 271 258 270 - 2 Read COGS Data Total Expenses - 145 142 146 - 7 Calc Total Expenses for all dense dims Marketing + 94 90 94 - 4 Read Marketing data Payroll + 51 51 51 - 5 Read Payroll data Misc + 0 1 1 - 6 Read Misc. data Ratios L 60.0 60.0 60.0 - 9 Calc Margin % for all dense dims Margin % F 60.0 60.0 60.0 - 9 Calc Ratios for all dense dims Profit % F 38.6 38.0 38.4 - 10 Calc Profit % for all dense dims Formulas: Margin % Sales, Profit % Sales
  32. 32. 32 Calc Order: 2. Time
  33. 33. 33  Two-Pass calcs are recalculated to correct for errors created by the default calc order  Check Two-Pass calc in the outline Two-Pass Calcs
  34. 34. 34 Calculation Order Affects Results
  35. 35. 35 Essbase Default Calculation Order (assuming all stored) Empty Database
  36. 36. 36 Load Data Loaded Level 0 Data
  37. 37. 37 The Dense Calc: Accounts Measures Calculated for NY->Apples Block
  38. 38. 38 The Dense Calc: Periods Time Dimension Calculated for NY->Apples Block
  39. 39. 39 The Dense Calc: Level 0 Blocks Dense Calc Completed on Level 0 Blocks
  40. 40. 40 The Sparse Calc: AllMkts Aggregate AllMkts
  41. 41. 41 The Sparse Calc: AllPdt Aggregate AllPdt
  42. 42. 42 CALC TWOPASS; Twopass Calc Completed
  43. 43. 43  Calculated on retrieval or as precedent  Dynamic Calc Non-Store  Dynamic Calc and Store  Set in Outline Editor Dynamic Calcs
  44. 44. 44 Advantages of Dynamic Calcs
  45. 45. 45  Make all dense calcs dynamic (non-store) with 2 exceptions:  Any member with input data  If the order makes the calc wrong (rare)  Don’t use Dynamic Calc and Store  This eliminates the needs for the second pass because the two-pass calcs are dynamic  The blocks (and therefore the database) are much smaller so there is less disk I/O Dynamic Calc Rules
  46. 46. 46  You can focus the calc on a subset using FIX statements in a script  You can test conditions using IF statements Controlling Scope with IF and FIX
  47. 47. 47 IF (condition) commands; ELSEIF (condition) commands; ELSE commands; ENDIF; Conditional Logic: IF statements
  48. 48. 48  Outline or script  Script requires calc member block  Wrap code in parens and precede with a (dense) member name  Loads and tests each member of the tested dimension  Use on dense dimensions Conditional Logic: IF statements
  49. 49. 49 FIX (mbrList) commands; ENDFIX  FIX statement cannot calc the “fixed” dim  Script only - not outline  Loads only those blocks specified  Passes thru database once per FIX Statement (un-nested)  Use multiple fixes on sparse dimensions Controlling Scope with FIX
  50. 50. 50 FIX(NY) CALC DIM (Account,Year); ENDFIX FIX example 1
  51. 51. 51 FIX Example 2 FIX(NY,NJ) CALC DIM (Account,Year); ENDFIX Note: If NY and NJ for “All Pdt” contained data they would also be calculated
  52. 52. 52 FIX Example 3 FIX(NY:CT) CALC DIM (Account,Year); ENDFIX
  53. 53. 53 FIC Example 4 FIX(NY,Apples) CALC DIM (Account,Year); ENDFIX
  54. 54. 54 FIX Example 5 FIX(@CHILDREN(AllMkts),@Children(AllPdt)) CALC DIM (Account,Year); ENDFIX
  55. 55. 55 FIX Example 5 FIX(@Relative(AllMkts,0),@Relative(AllPdt,0)) CALC DIM (Account,Year); ENDFIX
  56. 56. 56  Relationship Functions obtain Values  Member Set Functions return a list of member names(frequently used with FIX Statements)  Booleans return TRUE or FALSE (used with IF Statements) Hierarchical References
  57. 57. 57 “Crossing” Dimensions Crossing 1 dimension Crossing 2 dimensions
  58. 58. 58  PARENTVAL  Share = Sales % @PARENTVAL(“AllMkts”,Sales);  ANCESTVAL Share = Sales % @ANCESTVAL (“AllMkts”, 2,Sales); > 0 = Generation < 0 = Level 0 = Level Relationship Functions obtain Values
  59. 59. 59 @ParentVal( ) @PARENTVAL(dimName [, mbrName]) Share = Sales % @PARENTVAL(“AllMkts” ,Sales );
  60. 60. 60 @AncestVal( ) @ANCESTVAL (dimName, genLevNum [, mbrName]) Share = Sales % @ANCESTVAL (“AllMkts”, 2 , Sales ); genLevNum > 0 = Generation < 0 = Level 0 = Level
  61. 61. 61 @MDParentVal() @MDPARENTVAL (numDim, dimName1, . ... . dimNameX [,mbrName]) Share= Sales/@MDPARENTVAL ( 2 , “All Regions”, “All Products”,Sales ) ;
  62. 62. 62 @MDAncestVal() @MDANCESTVAL (dimCount, dimName1, genLevNum1. . dimNameX, genLevNumX [,mbrName]) Share=Sales/@MDANCESTVAL ( 2 ,”All Markets”, 2 ,”All Products”, 2 , Sales );
  63. 63. 63 Comparing Relationship Functions @MDParentVal( dimCount, dimName1.. . dimNameX, mbrName) @AncestVal ( dimName, genLevNum1, mbrName) @ParentVal( dimName , mbrName) @MDAncestVal( dimCount, dimName1, genLevNum1. . dimNameX, genLevNumX ,mbrName)
  64. 64. 64 Hierarchical References Summary Chart
  65. 65. 65 Allocation Example Marketing Technologies Group | www.mtgny.com
  66. 66. 66 Allocation Example Marketing Technologies Group | www.mtgny.com /* Roll up driver denominators */ FIX (“Headcount”) Calc Dim (“All Markets”, “All Products”); ENDFIX
  67. 67. 67 Allocation Example Marketing Technologies Group | www.mtgny.com /* Calculate Driver % */ “Headcount%” = “Headcount” / “Headcount”->”All Markets”->”All Products”; /* Roll up driver denominators */ FIX (“Headcount”) Calc Dim (“All Markets”, “All Products”); ENDFIX
  68. 68. 68 Allocation Example Marketing Technologies Group | www.mtgny.com /* Calculate Driver % */ “Headcount%” = “Headcount” / “Headcount”->”All Markets”->”All Products”; /* Calculate Allocation */ “Rent”=“Headcount%” * “Rent”->”All Markets”->”All Products”; /* Roll up driver denominators */ FIX (“Headcount”) Calc Dim (“All Markets”, “All Products”); ENDFIX
  69. 69. 69 • HouseKeeping: Set UPDATECALC Off; Set AGGMISSG On; • FIX on Level 0. Do the main calcs. Then agg the necessary dimensions • Its frequently faster to clear upper level data and re-agg, rather than recalculate an aggregated database • The block creation problem Additional Comments
  70. 70. 70 • BSO Calc optimization is mostly about reducing the number of blocks touched. That means touching only the blocks you need and touching them as few times as possible. • ASO calcs are all dynamic (almost all) • ASO uses MDX instead of the BSO calc language • Hybrid is BSO with ASO dynamic aggregation Additional Comments
  71. 71. 71 8 Speaker Sessions Monday, 6/11: • 10:45am – 11:45am: Baha Mar's All In Bet on Red - The story of integrating data and master data with PBCS, FCCS and ARCS • 2:30pm - 3:30pm: Visual Approach to Essbase Calcs: 2018 • 4:15pm - 5:15pm: Integrated Planning Using Enterprise Planning and Budgeting Cloud Service at Sims Metal Management Tuesday, 6/12: • 9:00am - 10:00am: FDMEE versus Cloud Data Management - The Real Story • 10:15am - 11:15am: Edgewater Ranzal: Winning Strategies for Oracle Cloud Adoption: Should You Test Drive, Lease, or Buy? • 2:15pm - 3:15pm: Why Should I Care About DVD? Blu-Ray is the New Thing, Right? Wednesday, 6/13: • 11:45am - 12:45pm: Putting Predictive Planning to Work • 2:15pm - 3:15pm: EPM Automate - Automating Enterprise Performance Management Cloud Solutions Visit us at Booth # 407
  72. 72. 72 Let’s Connect on LinkedIn! • Open the LinkedIn app on your phone • Click My Network • Select Find Nearby • Connect with me and your peers!

×