Some documentation refers to Outgoing Count as being synonymous with Span of Control however in practice they have different applications.
In short, the difference between the two properties within Orgvue is defined by how filters and leaf nodes are intended to impact the desired result.
In Orgvue there are calculated properties for both Outgoing Count and Span of Control (calculated properties are italicised in the Properties pop-up, also in Filtered view):
- For a node, the outgoing count property is the total count of children regardless of active filter and pagination. In particular, leaf nodes, which are the nodes that have 0 children when there is no active filter or pagination, have an outgoing count of 0.
- For a node, the span of control property is the total count of children subject to active filters and pagination. However, when a node has no children in the active filter and pagination, the span of control for that node is blank rather than 0.
The consequence of having blanks as opposed to zeroes is that blanks do not contribute towards the distribution when looking at e.g. averages. So if I want to know the average number of reports amongst the manager population, average span_of_control will do this.
The consequence of enforcing that the number of reports for a node obeys the filter is that I can now find the total number of reports when looking at specific cuts of data. So I could find the average number of reports within the sales department using filters and span_of_control.
... is calculated when the tree is built, and is not dependent upon filters. Where there are no child nodes, the outgoing_count is 0.
Where averages are calculated within organisational groups, which is a typical use case, the outgoing_count property may not be an appropriate descriptor for Span of Control, requiring Orgvue practitioners to use an expression such as:
node.outgoing_count == 0 ? "" : node.outgoing_count // if outgoing count is zero, set cell value to null // otherwise set as calculated value at tree build time
... on the other hand is dynamic. It is calculated based on the filtered state of the data, and is updated on filtering.
Further, when the number of children is 0, span_of_control is null. This avoids expressions of the form:
var soc = node.c.count.value // set soc to the value of the count of all the present node's children soc == 0 ? "0" : soc // set soc to zero if the calculated value is zero, // otherwise use soc value
The choice of outgoing_count vs. span_of_control therefore depends upon desired outcome.
impact on average values
- outgoing_count property includes the leaves, which dramatically reduces the average given all leaf nodes have a Span of Control of 0.
- span_of control property excludes the leaf node Outgoing Count number.
impact of filtering
- When looking at the span_of_control (generated outgoing count) property from the manager perspective, nodes must be within the scope of the active filter (including pagination)
- When looking at outgoing_count (i.e the direct report perspective) nodes ignore the scope of the filter (including pagination).