Release notes – OrgVue version 2.22

Release documentation date: 12th May 2016

In development for over 8 months, OrgVue 2.22 has been in active use by a number of customers since the start of the year and has undergone many iterations following customer feedback in production. We are very grateful for all your feedback and ongoing support in helping us to continuously improve OrgVue.

Version 2.22 is backwards compatible with 2.20. However, we will keep the previous 2.20 version available for access for a further 4 weeks should any user require access to this environment.

Look and Feel

The most noticeable change on logging on is that we have updated the branding of OrgVue with a new OrgVue logo and colour scheme following the Concentra rebrand.

We have also take this opportunity to apply the brand to our email templates to provide a more polished user experience.


Once again, much of our development effort has been focused on performance when working with large datasets. Performance will remain a primary area of focus for us with each new release. For tenants operating in the OrgVue2 domain we will shortly be announcing several major performance enhancements here too.


All dashboards have been reworked so that they perform better with datasets of 100,000+ nodes and many properties. Long running dashboards now batch the data processing so that they can interrupted and reconfigured rather than being forced to wait to completion. For dashboards such as Data Types and Patterns, this greatly improves usability.

In addition to batching, more extensive use of in-memory caching has been introduced to ensure that previously run reports are retrieved from cache rather than re-executed unnecessarily.


Early on in the development of 2.22 we introduced a new value mode for expressions which we then back ported to 2.20. The Fixed value mode is now made the default mode and where a property is evaluated the same expression is applied to every row. The means that OrgVue need no longer check each cell for an expression and evaluation is several orders of magnitude faster. It is recommended that this mode is adopted wherever an expression is used, and expressions are never placed directly in cells. Following this practice, it will be rare to experience sluggish performance when evaluating expressions even in very large datasets.

In order to avoid the need to re-evaluate expressions when filtering, the hierarchical evaluation mode will now also be triggered automatically on filtering. This is a significant usability enhancement and will reduce confusion when using rollup or child aggregate expressions when correctly configured.

Note also in the screenshot above the comment balloon. Clicking on this will allow you to capture any relevant comments around the property such as documenting the intent of a complex expression.

Comparing performance of expressions

In performance sensitive situations it can be very helpful to compare the performance of different methods of calculating a value via an expression. To help with this we have introduced a debug.time function which generates a boxplot of the execution times of 1 or more expressions. Times are given in milliseconds. Below is illustrated how the use of node.math() is faster than the naive method of adding together 3 measures and leads to the recommendation to use node.math() whereever expressions are algebraic.

  {iterations: 100},
  ()=> n => n.currentsalary + n.currentbonus + n.pension ),
  ()=>node.math("currentsalary + currentbonus + pension")

Percentage formatter

A common support request has been around how to format a number as a percentage. Our previous advise has been to use an expression. OrgVue 2.22 now provides a percentage formatter which works on fractional ratios (values between 0 and 1) similarly to Excel.


OrgVue 2.22 sees the introduction of a new Worksheet which delivers a host of usability enhancements.


When exporting to PDF and PPTX formats from OrgVue, the worksheet is now paged across multiple pages repeating the header and legend on each page. In the 2.20 release, only the first page was exported as an image.

Side scrolling

When scrolling sideways, the first (Label) column will remain locked similar to freezing panes in Excel. This ensures that the identity of the row can always be seen

Column widths

In addition to being able to drag column dividers to alter the column width, you can now double click to fit width similarly to Excel.

Column ordering

Clicking and dragging on the column title allows the reording of columns.

Row sorting

Hovering over the right hand end of the column header and clicking on the up/down arrows allows sorting of the worksheet via the selected property. Clicking again will cycle through ascending order, descending order and no sort.

To return to the hierarchical view, click on the sort icon in the first (Label) column

At this time, only single column sorting is available and we will review this limitation in light of customer feedback.

New Dashboards

In addition to the overhaul of all 2.20 Dashboards, the 2.22 release introduces 2 new dashboards: Summary Statistics and Numerical Analysis. Detailed blog articles will follow on each, but a screenshot of each is given below:

Summary Statistics

Here the Summary Statistics dashboard indicates a data error in the Age records of node in Grade 5.

Numerical Analysis

Here the Numerical Analysis dashboard shows Grade 6 is dominated with older employees. This feature is well represented in the Summary Statistics above, but is more visually pleasing in the stacked barchart.

Span of Control property

We have introduced a new calculated property, Span of Control to help with common span of control calculations. This property is the cousin of Outgoing Count and offers a more useful measure when wanting to calculate average spans. Rather than having a value of 0 when a node has no children (as is the case with Outgoing Count), Span of Control is blank and can therefore be safely averaged.

Further, unlike Outgoing Count, Span of Control will update with filters.

This avoids the need to create an evaluated property with an expression such as below when working with Spans and Layers:

node.c.count > 0 ? node.c.count : null

Adding, moving and cloning nodes in Tree view

When updating a tree in the Tree View in 2.20 it was common for the tree to redraw so that the newly added or moved node was lost. This is disorienting and leads to a poor user experience. We have invested much effort in 2.22 to address this usability flaw. When adding or moving nodes, we now make every effort to ensure that active nodes remain visible even if it means they fall outside the current filter.

Below, John Herbert has been added as a child of Tyler Swift. Even though John Herbert is at Depth 3, and a filter has been applied to Depth 1 and 2, John Herbert still appears in view. Reapplying the filter will remove John Herbert from view.


Dataset lookups are now included within the searchable data in the Search Pane. Here we search for Male by using the ^ symbol to search for 'beginning with' - a common support question.

Tip: the search strings are regular expressions. Use $ at the end for 'ends with'.


As seen above, an icon can be associated with lookup values by adding a property with the key 'icon' to the lookup dataset. The icons are provided by FontAwesome, and can be viewed here. This is similar to the way colors can be mapped to lookup values with the 'color' property.

Sort order

By default, the sort order of a lookup is derived from the order of the nodes within the lookup dataset. This can now be overridden by checking the 'Sort alphabetically' checkbox in the property configuration.

Extending the value of the Expression Pane

Increasing the width of the side pane

It is not uncommon when writing expressions to find the Expression Pane is not wide enough to clearly read the entered expression. By dragging the expand / collapse arrow on the left margin of the side panel it is now possible to increase the width of the panel and therefore the size of Expression Pane.

This equally proves useful when the property names are long and cannot be easily recognised in the property pickers with view panels.

Displaying charts and chart data

It has been a common request to be able to view Bar Charts alongside Org Charts and the Worksheet within OrgVue. The view.chart() expression embeds the currently active chart into the Expression Pane so that this can be achieved in any view within OrgVue. Similarly, view.chartdata() will display a table of the data behind the chart.

This becomes significantly more powerful than simply making the chart visible in more than one view. Because charts are fully interactive within OrgVue, nodes can be dragged in and out of the bars to enable painting with data between the active view and the Expression Pane. Further, the chart can be applied to any collection of nodes. Here, the currently selected node's children are charted.

Many data cleansing and modeling techniques may be facilitated with this single feature and we look forward to hearing ways in which you find to put this to use.

Displaying cards

In a similar manner to displaying charts within the Expression Pane, the currently configured card may also be displayed, here giving a quick view of the children of a selected node.

(Orphans) bucket in Descendants

The Descendants dimension is commonly used in combination with pagination in order to export a view of the organisation under every manager within the organisation or group. However, because the Descendants dimension in 2.20 does not hold a reference to any Orphan node, these nodes are excluded from the data even when the paging is set to (All). Release 2.22 adds an (Orphans) bucket to the Descendants dimension, avoiding these nodes from being masked.

Have more questions? Submit a request