Derived Hierarchies (Master Data Services)

A derived hierarchy is derived from the domain-based attribute relationships that already exist between entities in a model.

You can create a derived hierarchy to highlight any of the existing domain-based attribute relationships in the model.

In the following example, leaf members of the Product entity are grouped by leaf members of the Subcategory entity, which are then grouped by leaf members of the Category entity. This hierarchy is possible because the Product entity has a domain-based attribute named Subcategory, and the Subcategory entity has a domain-based attribute named Category.

Derived hierarchies

Another domain-based attribute relationship exists between the Product and Color entities. A derived hierarchy can highlight this relationship.

Derived hierarchy

In a derived hierarchy, the entity with the most members is grouped by an entity with fewer members. A derived hierarchy is based on the relationship between multiple entities. An explicit hierarchy, in contrast, is based on members from a single entity only.

You can change the structure of a derived hierarchy without affecting the underlying data. As long as the relationships still exist in the model, deleting a derived hierarchy has no effect on your master data.


In the following example, each product member has a domain-based attribute called Subcategory. Each Subcategory member has a domain-based attribute called Category.

The model structure shows each entity with its domain-based attribute underneath. The hierarchy structure shows how the members are grouped. The entity with the most members is at the bottom.

Derived hierarchy structure

In a derived hierarchy, you can highlight the relationship between Product and Subcategory, and then between Subcategory and Category. When you view the members in this hierarchy, each level in the tree contains members from the same entity.

Derived hierarchy example

This type of hierarchy prevents you from moving a member to a level that is not valid. For example, you can move the Road-650 bike from one subcategory, Road Bikes, to another, Mountain Bikes. You cannot move Road-650 directly under a category, like 1 {Bikes}. Each time you move a member in the hierarchy tree, the member's domain-based attribute value changes to reflect the move.


All members in a derived hierarchy tree are sorted by code. You cannot change the sort order.


If a member's domain-based attribute is blank and the attribute is used for a derived hierarchy, the member is not displayed in the hierarchy. Create business rules to require attributes to be populated. For more information, see How to: Require Attribute Values (Master Data Services).