What-If Book Hierarchy Widget

Overview

Key: “accelerator_whatif-bookhierarchy”

The What-If Book Hierarchy widget provides simulations to display instant recalculations and their incremental impact as a result of changing the position of a given book in the book/desk hierarchy. Users can save modifications to the underlying datastore under different datastore branches. Each modification’s effect on various measures on an existing or new branch can be viewed against table widgets.

By simply dragging a book from one point in the hierarchy to another, you can immediately see the potential impact on the VaR/ES or sensitivities, for example.

The book hierarchy is displayed as a horizontal tree structure. When a new tree loads, the root node (indicated by ‘R’) is open, displaying its immediate children, and the rest of the nodes are closed.

Default tree

To expand a node, click on it. This reveals the node’s children. To reveal all descendants of a node, right-click the node and select Expand Entire Subtree.

note

This feature is currently only available when using an MR server.

To focus the view on a single node and hide all other nodes, right-click the node and click Toggle Focus.

To pan the view, left-click and drag in the window. To zoom in to an area, use the mouse scroll-wheel.

Filtering a node’s children

You can filter a node’s children using a specific string:

  1. Right-click the parent node, and from the context menu, select Filter Children. This opens the What Children Do You Want To Filter On? dialog.

  2. Enter the string and click OK. This leaves only the child nodes matching the string visible. The parent node’s center is colored blue, and a label displays the string used as the filter.

    Filter children

Running a simulation

  1. Use your mouse to expand the nodes of the book hierarchy until you reach the one you want to work on. Then click and drag the specified node to where you want it.

note

If the destination node is too far or you want to move a large number of nodes at once, you can cut and paste the nodes by Shift+clicking the node or using the right-click context menu. For more information, see Cutting and pasting nodes.

Each desk must belong to only one group. The widget enforces the hierarchy of groups/desks/books (that is, you cannot move a book between a group and a desk).

  1. Select the branch on which you want to run your simulation or click Commit As… to initiate a new one.

    Branch dropdown

  2. In the What Branch Do You Want To Create dialog box, enter the name for your new branch, and click OK.

  3. Use the calendar dropdown to select an AsOfDate.

  4. To save your changes in your branch, click Commit then give your changes a name in the What Should This Save Submission’s Definition Be dialog box.

Cutting and pasting nodes

When you want to move a large number of nodes or the destination node is far away, drag-and-drop may not be practical. In such cases, you can cut and paste nodes by right-clicking the node and using the context menu options, or using the keyboard shortcuts.

  1. To cut a node, Shift+click it, or right-click and select Cut from the context menu. The node becomes transparent to indicate that it’s cut.

    To undo cutting a node, Shift+click the node again, or right-click and select Un-Cut from the context menu. To uncut all nodes simultaneously click Stop Cutting.

  2. Right-click the destination node, and in the context menu, click Paste: [node name].

To undo cutting a node, Shift+click the node again, or right-click and select Un-Cut from the context menu.

Cutting

Best practices for opening nodes

The widget can support hundreds of nodes open at once, but after a point, open nodes can slow the widget down. We recommend having a maximum of 800 nodes open at any time. The widget displays warnings when thresholds are violated.

Closing parts of the tree you’re not working on also helps focus on the parts you want to modify.

Settings required

This widget requires both a whitelist and a settings object to work properly.

 "accelerator_whatif-bookhierarchy.server.whitelist": ["SERVER1"];
 "accelerator_whatif-bookhierarchy.server.params": {
   SERVER1: {
     asOfDateMdx: string
   };
 };