mdx and aso, a dynamic [calculation] love story dynamically calculated investment returns john...
TRANSCRIPT
![Page 1: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/1.jpg)
MDX and ASO, a Dynamic [Calculation] Love Story
Dynamically Calculated Investment Returns
John Anderson, Architect
![Page 2: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/2.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 3: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/3.jpg)
Many years of full lifecycle implementation with Oracle EPM
Oracle|Hyperion Essbase certified Industry Experience includes Aerospace &
Defense, Life Sciences, Financial Services Accomplished dad – first child is six weeks old
and kicking
Introduction: About John
![Page 4: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/4.jpg)
Oracle Platinum Partner Functional and Technical experts focused at the
convergence of Enterprise Performance Management, Data Management, Business Intelligence, and Social Business Technologies
Professional services firm dedicated to helping progressive enterprises dramatically improve business analytics…win with data
Introduction: About Cervello
![Page 5: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/5.jpg)
Learn some MDX equivalents of BSO formulas Think about dynamically answering user
questions Takeaway some confidence to implement
calculations in ASO
Introduction: Goals for Today
![Page 6: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/6.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 7: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/7.jpg)
Large investment manager $B’s in assets 100’s of investment ‘products’ Multiple business units
The Important Part: The Client
![Page 8: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/8.jpg)
The system must answer these two questions● What is the Aggregate Performance of funds across
any/all attributes of our business?● How do I find the time-weighted return for these
aggregate assets?● And how do I provide answers for non-standard time
requests that I can’t always anticipate?
The Important Part: The Requirements
Standard (1, 3, 5Yr, etc)…EASYAd hoc requests (18Mth, 30Mth, etc)…NOT SO EASY
![Page 9: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/9.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 10: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/10.jpg)
Existing environment● Newly built Data Warehouse for all Fund data and
attributes● Newly built Data Mart for OBIEE reporting of Fund-
level assets and performance Existing data
● Fund-level assets provided monthly● Fund-level performance provided monthly with fixed
set of time-horizons (1 month, 3 month, YTD, and 1,3,5 year and life-to-date)
The Interesting Part: Environment
![Page 11: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/11.jpg)
First question: OBIEE or Essbase?● Detailed reporting already being done with OBIEE● However, aggregate calculations proved too complex
and cumbersome…Essbase it is!
The Interesting Part: Technology Choice
Second question: BSO or ASO?● This sounds calculation intensive (the time-weighted
part anyways), and the comfort zone is BSO, but…● Reporting required 27 dimensions!
● 17 had to be stored dimensions due to slowly-changing data relationships, 10 could be attribute dimensions
● ASO…let’s give it a shot!
![Page 12: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/12.jpg)
Performance of a fund is a ratio of the change in assets● This month / last month = performance growth● Actually is very complex (cash in/out flows) – out of
scope of this model Provided data is this month’s ending assets
after cash flows ($), and this month’s performance (%)
So, how do you aggregate a ratio?
The Interesting Part: Agg Performance
![Page 13: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/13.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 14: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/14.jpg)
The Fun Part: Agg Performance
How do you agg a ratio? You don’t. Instead, re-create the pieces to make it easier.
Then, member formula on aggregate data…
First, level 0 calc...
The Answer
*Disclaimer: a BSO cube was used for this and other level 0 calcs for a variety of reasons
$ % $
$ $ %
![Page 15: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/15.jpg)
Voila! Requirement #1 satisfied…now we have aggregate views of performance across any business attribute. But…● This only works for 1 month performance…what
about other time horizons?
The Fun Part: Agg Performance
![Page 16: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/16.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 17: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/17.jpg)
Aggregate views of 1 month performance have been described, but what about time-weighted returns (3mth, 6mth, etc)?
How do we provide a big enough selection of time-weighted options to satisfy current and future anticipated reporting needs?
The Interesting Part: Time-weighting
![Page 18: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/18.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Build using ASO and MDX The Useful Part: Key Takeaways
Agenda
![Page 19: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/19.jpg)
User selectable dimension ‘Performance Horizon’
The Fun Part: Dynamic Selection
Dynamically calculates based on selection POV
![Page 20: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/20.jpg)
Time-weighted Performance math:( [ ( 1 + (Asset Prod / Prior Asset ) cur mnth /100 ) * ( 1 + ( Asset Prod / Prior Asset ) 1 mnth ago /100 ) * ( 1 + ( Asset Prod / Prior Asset ) 2 mnths ago /100 ) …. N months ] – 1 ) * 100
The Fun Part: Logic Breakdown
(Curr month) (month shift 1) (month shift N)…
Isolate the repeating term once, and create enough time-shifted terms to satisfy the greatest
Performance Horizon
which can be thought of as…
![Page 21: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/21.jpg)
Let’s assume a max of 18Mth Performance Horizon Build time-shifted measures through 17 months ago
The Fun Part: Outline Construction
Multiplication consolidation operators!!
(Curr month)
(time shifted measures)
Solve Order
1) Curr month (30)
2) Time-shift (40)
3) Consolidation (45)
![Page 22: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/22.jpg)
ASO Formula
The Fun Part: Time Shifting - QTD
/* 001_MAGO_CUM_G */CASE
/* If member is QTD and is 2nd or 3rd mnth of a quarter */WHEN (Count(Intersect( {[QTD_PERF_HRZN]}, {PERF_HRZN_DIM.CurrentMember} ) ) = 1) AND (Count(Intersect( {[P02],[P03],[P05],[P06],[P08],[P09],[P11],[P12]}, {TIME_DIM.CurrentMember} ) ) = 1)
THEN ( [CUM_G_MTH_TERM], [TIME_DIM].currentmember.lag(1) )
BSO equivalent
IF…ELSEIF
IF(@ISMBR())
@SHIFT(mbr,-1)
![Page 23: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/23.jpg)
ASO Formula
The Fun Part: Time Shifting - YTD
/* Else If member is YTD and is from Feb thru Dec */WHEN (Count(Intersect( {[YTD_PERF_HRZN]}, {PERF_HRZN_DIM.CurrentMember} ) ) = 1) AND (Count(Intersect( {MemberRange([P02],[P12])}, {TIME_DIM.CurrentMember} ) ) = 1)
THEN ( [CUM_G_MTH_TERM], [TIME_DIM].currentmember.lag(1) )
BSO equivalent
IF(@ISMBR())
@SHIFT(mbr,-1)
![Page 24: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/24.jpg)
ASO Formula
The Fun Part: Time Shifting
/* Else If member is 2Mth horizon or greater, and is not QTD or YTD */WHEN (Count(Intersect( {MemberRange([002_MTH_PERF_HRZN],[002_MTH_PERF_HRZN].LastSibling)}, {PERF_HRZN_DIM.CurrentMember} ) ) = 1) AND NOT (Count(Intersect( {[QTD_PERF_HRZN],[YTD_PERF_HRZN]}, {PERF_HRZN_DIM.CurrentMember} ) ) = 1)
THEN /* If member is the month of January go to Dec of Prior Year */ IIF ( Count(Intersect( {[P01]}, {TIME_DIM.CurrentMember} ) ) = 1,
( [CUM_G_MTH_TERM], [YEAR_DIM].currentmember.lag(1), [TIME_DIM].currentmember.lead(11) ), ( [CUM_G_MTH_TERM], [TIME_DIM].currentmember.lag(1) ) )
/* Else populate with '1' to allow for multiplication to return results */ELSE 1END
BSO equivalent
@IRSIBLINGS()
IF…ELSE
@MDSHIFT(mbr,-1,Year,,11,Time,)
Rinse, and repeat for each time-shift measure
![Page 25: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/25.jpg)
In real world #s, 3Mth and 17Mth returns look like:
The Fun Part: The Results
The Answer= all that – 1 * 100
Curr Month
Time-shifted measures
Multiply by ‘1’ for prior months not needed…e.g. 3Mth return needs only 2 prior months
![Page 26: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/26.jpg)
Introduction The Important Part: Business Requirements The Interesting Part: Design Challenges The Fun Part: Implementation using ASO and
MDX The Useful Part: Key Takeaways
Agenda
![Page 27: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/27.jpg)
Solve order is key in complex formulas – think about this ahead of time and allow room for future expansion
The Useful Part: Solve Order
A late addition during build
![Page 28: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/28.jpg)
Don’t be afraid to use additional outline members to break up logic into bite-sized pieces● ASO can handle large numbers of outline members● Smaller pieces of logic can be easier to maintain and
debug
The Useful Part: Logic Breakdown
“wait, what does this do again?”
![Page 29: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/29.jpg)
Calculate ‘across’ at the same level● ex: Asset Performance at upper levels = same level
product divided by same level prior assets● ex: Measure “Prior Assets” = @PRIOR(“Assets”)
Remember the other lesser-used consolidation operators (multiplication, division, etc)● Outline math is powerful and fast
The Useful Part: Other Tips
![Page 30: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect](https://reader035.vdocuments.mx/reader035/viewer/2022062801/56649e5f5503460f94b590f2/html5/thumbnails/30.jpg)
Consider an ‘analysis’ dimension when it makes sense (think ‘Performance Horizon’)
You can find MDX equivalents of BSO functions if you look for them – think Dynamically!!
The Useful Part: Final Thoughts