Top Banner
MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect
31

MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect.

Jan 12, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

Page 31: MDX and ASO, a Dynamic [Calculation] Love Story Dynamically Calculated Investment Returns John Anderson, Architect.

Questions?

John [email protected]