Dimensions
Understand the types of dimensions and how to create them.
Overview
Dimensions organize unique values of an attribute into a list or a hierarchical structure for use as a filter or group by in your solution. They help you to break down information for analysis and see which parts of your business are experiencing success or challenges.
You can populate a dimension with data from a property in Visier or, if it's a leveled dimension, from one or more columns in your data file. For example, let's say you want to create a range dimension that organizes employees into age groups. In your data file, you don't have an "Age Group" column, but you do have a "Birth Date" column. You can use the Birth Date column to calculate employee ages in a property, such as Age in Months. You can then use the Age in Months property to organize employees into age groups in the Age Ranges dimension. For a leveled dimension example, let's say you want to create a dimension that organizes your employees by their location. In your data file, you must have location columns like Region, Country, State, and City to use in the leveled dimension.
Tip: To learn more, take the Visier University eLearning courses: Understanding Visier's data architecture and Creating dimensions.
Leveled dimensions
A leveled dimension organizes your data by levels. Leveled dimension have a fixed depth for every branch in the hierarchy, meaning each branch must have the same number of levels. In the following diagram, the Location dimension has three levels (country, province/state, city). Because leveled dimensions have a fixed depth for every branch in the hierarchy, each branch in the hierarchy must have a country, state, and city.
Although leveled dimensions often have multiple levels, you may create a leveled dimension with only one level. For example, Gender is a single-level leveled dimension. The only level is "Gender" that consists of multiple dimension members like Man, Woman, Decline to Answer, and N/A.
A leveled dimension may be shared among multiple analytic objects. For example, the Location dimension is shared by the subjects Employee and Candidate because they both have data for the subject members' locations.
Leveled dimensions have the following characteristics in Visier:
- Provide one or more levels of detail to an analytic object. For example, the Location dimension provides many levels of details to the Employee subject, including Region, Country, Province, and City.
- Available as a group by in visualizations. For example, you can group Headcount by the Location dimension.
- Can be used in other objects, including metrics, calculated properties, custom dimensions, and concepts. For example, the Critical Employee selection concept uses the Critical Employee Status dimension to create a population of critical employees.
- Can optionally be applicable to more than one analytic object. For example, you can share the Location dimension with the Employee subject and Candidate subject.
To configure a new or existing leveled dimension, see Modify a Leveled Dimension.
Parent-child dimensions
A parent-child dimension is a hierarchical dimension in which a member of the hierarchy is directly associated with another member in the hierarchy. For example, in a Supervisory hierarchy, the top-level parent is the CEO. The CEO branches down into their direct reports. Each direct report will have their own direct reports, and so on. At every branch, the number of reports will not be uniform and the depth of the tree may be different depending on the path. This creates an unbalanced hierarchy.
A parent-child dimension may be shared among multiple analytic objects. For example, the Organization dimension is shared by the subjects Employee and Requisition because they both have data for the subject members' organization hierarchies.
Parent-child dimensions have the following characteristics in Visier:
- Define a hierarchical relationship between members. For example, the Supervisory Hierarchy dimension defines the hierarchical relationship between the CEO and their direct reports, or between line managers and their direct reports.
- Available as a group by in visualizations. For example, you can group Headcount by the Organization dimension.
- Can optionally be applicable to more than one analytic object. For example, you can share the Organization dimension with the Employee subject and Requisition subject.
To configure a new or existing parent-child dimension, see Modify a Parent-Child Dimension.
Range dimensions
A range dimension organizes numeric values into distinct groups for better visualization and filtering. For example, to group Headcount by Budgeted Direct Compensation, a range dimension is used to group the user-defined compensation ranges to visualize the number of employees at each compensation range, such as $50,000–$75,000.
Ranges are inclusive of the lower bound and exclusive of the upper bound. In a range of $50,000-$75,000, $50,000 is included in the range and $75,000 is excluded, meaning the range includes values from $50,000 up to $74,999.
Users can create, manage, and share their own ranges using the Range Set Manager if the default ranges don't meet their needs. For more information, see Range Sets.
Range dimensions have the following characteristics in Visier:
- Group numerical data in an analytic object. For example, the Age Range dimension groups employees by their ages (such as 20 to 25 or 45 to 50).
- Available as a group by in visualizations. For example, you can group Headcount by the Age Range dimension.
- Can be used in custom dimensions.
- Require an associated numeric property to provide data for the ranges. For example, the Age Range dimension uses the Age in Months calculated property to group employees into age ranges.
To configure a new or existing range dimension, see Modify a Range Dimension.
Custom dimensions
A custom dimension is built manually to act as a standard for other dimensions to map into. For example, to map employee performance levels, a custom dimension references the Performance Rating dimension. This custom dimension has the groups High Performer, Mid Performer, Low Performer, and No Performance Rating.
Custom dimensions have the following characteristics in Visier:
- Define groups based on other dimensions' members. For example, the COVID-19 Vaccination Status Group custom dimension uses the COVID-19 Vaccination Status dimension to define custom groups such as Booster Shot, Fully Vaccinated, and Opted Out.
- Available as a group by in visualizations. For example, you can group Headcount by the COVID-19 Vaccination Status Group dimension.
To configure a new or existing custom dimension, see Modify a Custom Dimension.
Member maps
A member map is a special object in Visier that unifies dimension members that exist in multiple analytic objects. For example, multiple source systems may use different names to describe the same location, such as USA and U.S.A. The members should be linked to help analysis. Member mapping is applicable to data cleansing members on the same dimension, such as mapping dimension member M to Male. With member mapping, these values become a single member of a dimension. This allows the user to define equivalents across source system dimensions to prevent duplicate members that mean the same thing in Visier.
You can create a member map in the Dimensions room in Visier. In the member map, you select the associated analytic objects and then link the dimensions that you want to map. For more information, see Modify a Member Map.
Note: If you have mismatched dimension members, such as M in one source system and Male in a different source system, we recommend that you normalize the data with a transformation in an ETL pipeline prior to loading data in Visier. You can use extraction rules to ensure your member values align across multiple analytic objects. This allows you to contain all dimension members in a shared dimension, such as the Gender dimension shared with the Employee and Candidate subjects, rather than using a member map to normalize members after data loading.
If a shared dimension based on values normalized before data loading is not an option, we suggest using member maps, however, you must refresh the member map each time there are new member values.
Should I create a dimension?
Tip: Before creating a new dimension, check whether your Visier solution already contains the dimension you want. To find all dimensions in your solution, do any of the following:
- In a project, on the navigation bar, click Model > Dimensions. You can then filter the list of objects by dimension type and review the list.
- Download the Application Definition and refer to the Dimension sheet. For more information, see Download the Application Definition.
- Use Visier APIs to retrieve all dimensions. For more information, see Data Model API.
If you're creating new attributes for an analytic object, you might wonder when to create a dimension as opposed to a property or concept. If your attribute meets any of the following guidelines, a dimension is probably the right object for your data.
- The attribute groups data. For example, the Age Range dimension groups employees into specific age ranges based on the Age in Months property.
- The attribute will be used as a filter or group by in visualizations.
- The attribute can be used in other objects, like concepts or custom dimensions.
In addition to these criteria, review each dimension's characteristics to decide which type of dimension to create.
After you determine that you want to create a new dimension, you can create the dimension in a project in Model > Dimensions or Model > Analytic Objects. For more information, see Create a dimension.
Create a dimension
You might want to create a new dimension when you have new data to analyze in Visier. For example, if your organization started collecting employee data about hair color, you might want to create a new Hair Color dimension in Visier to analyze employee hair color.
You can create a dimension in two places in a project: Model > Dimensions or Model > Analytic Objects. Both approaches have the same outcome, however, the steps are slightly different.
You can create a dimension in the Dimensions room or by selecting a specific analytic object on which to create the dimension.
Model > Dimensions steps
In this workflow, start by selecting the dimension type to create and then select its associated analytic object.
- In a project, on the navigation bar, click Model > Dimensions.
- Click Create Dimension.
- Select a dimension type and then click Next.
Note: If you are a Visier Cloud Administrator creating a leveled dimension, there are additional steps. For more information, see Create a leveled dimension.
- Select an analytic object and then click Next.
This is the object associated with the dimension; for example, if you're creating a dimension for your employees' hair color, the analytic object is Employee.
- Type a display name and description.
- When finished, click Create.
Result: The dimension is created and can now be configured and customized. For more information about configuration and customization, see Modify a Custom Dimension, Modify a Leveled Dimension, Modify a Member Map, Modify a Parent-Child Dimension, or Modify a Range Dimension.
Model > Analytic Object steps
In this workflow, start by selecting the analytic object and then select the dimension type to create.
- In a project, on the navigation bar, click Model > Analytic Objects.
- Select an analytic object.
- In the Attributes tab, click Add Attribute > Dimension.
- Select a dimension type and then click Next.
Note: If you are a Visier Cloud Administrator creating a leveled dimension, there are additional steps. For more information, see Create a leveled dimension.
- Type a display name and description.
- When finished, click Create.
Result: The dimension is created and can now be configured and customized. For more information about configuration and customization, see Modify a Custom Dimension, Modify a Leveled Dimension, Modify a Member Map, Modify a Parent-Child Dimension, or Modify a Range Dimension.
Create a leveled dimension
You can create a leveled dimension if you want to group and filter the column values from your data files. This is useful for augmenting existing data, for example, if you have a new column in your data and want to create a dimension so that users can group and filter by the new column.
Prerequisites: You must have aggregate access to all data. For more information, see Data Security for a Permission.
Tip: Watch this video to learn how to create a leveled dimension.
Step One: Select the dimension type and analytic object
-
In a project, on the navigation bar, click Model > Dimensions.
Note: If you already know the analytic object you want to create a dimension for, you can alternatively select the object in Model > Analytic Objects and then click Add Attribute > Dimension.
- In the New dimension dialog, select Leveled.
Recommended: Select Make dimension shared. This allows you to optionally associate the dimension with multiple data objects, such as both Employee and Applicant.
- Click Next.
- Select an analytic object. If the dimension is shared, you can select additional analytic objects after you create the dimension.
This is the object associated with the dimension; for example, if you're creating a dimension for open requisitions, the analytic object is Requisition.
Note: If you started from Model > Analytic Objects, this step is skipped.
- Click Next.
Step Two: Connect data to the dimension
You have three options to connect data to your new dimension. The following diagram illustrates each option with the example of connecting data to Employee.
Option 1: Use existing data (connected to the analytic object)
- In the Select data source dialog, click Select Source.
- Select a source from the list.
- Select a source column. This is the column in your data file to associate with the dimension.
- Click Next.
Option 2: Use existing data (not connected to the analytic object)
- In the Select data source dialog, click Select Other Source.
- In the Select other source dialog, click Select a source.
-
Select a source from the list.
Note:
- The platform creates a new mapping for the dimension's analytic object with the selected source. Because there's a new mapping, future data files for the source must be a full history restatement. With administrator-created leveled dimensions, if a new source or mapping is created, Visier overrides all previously-uploaded files after a new file is loaded to allow you to easily add, remove, and update records across all time.
- This list only displays sources that aren't connected to any analytic objects. If you want to use a source that's connected to a different analytic object, try uploading a new data file with a unique filename. For more information, see Option 3: Upload new data.
- Optional: If there are unconnected properties, in the Connect data dialog, select the correct column for each unconnected property.
- Click Next.
Option 3: Upload new data
Note:
- If the data creates a new source, the file must:
- Meet Visier's requirements. For more information, see Data File Guidelines.
- Be temporal. For more information, see Using Temporal or Transactional Data Types to Show Changes in Your Data.
- Contain SubjectID and EventDate columns. These columns must contain values.
- After the initial data upload, you can send data in your regularly scheduled data loads or upload files manually in the Configure tab. For more information about manual data uploads, see Configure a leveled dimension.
- Future data files for the source must be a full history restatement. With administrator-created leveled dimensions, if a new source is created, Visier overrides all previously-uploaded files after a new file is loaded to allow you to easily add, remove, and update records across all time.
- In the Select data source dialog, click Use Other Source.
- In the Use Other Source dialog, click Select a file > Upload Data.
-
After you select a file, click Upload File.
Note: If the new data matches an existing source, the data is connected to the existing source. If the new data doesn't match an existing source, a new source is created. For more information about sources, see Sources.
- Optional: If there are unconnected properties, in the Connect data dialog, select the correct column for each unconnected property.
- When finished, click Done.
Step Three: Create the dimension
- Type a display name and description.
- Click Create.
Result: The dimension is created and can now be configured and customized. For more information, see Modify a Leveled Dimension.
Note: To make the dimension visible to users:
- When finished configuring and customizing the dimension, publish the project to production. For more information, see Publish Project Changes.
- If you added new data, run a data version in production. For more information, see Data Versions.
Errors
The following table lists possible errors and how to resolve them during dimension creation.
Error | Description | Resolution |
---|---|---|
Can't connect data to analytic object | After you select an analytic object for the dimension and try to connect data (Step Two, Option 2 or 3), Visier can't connect data to the analytic object. | The analytic object doesn't have an existing regular mapping, likely because there is no data for the analytic object. The analytic object must have existing data and mappings to create a new leveled dimension. Contact Visier Technical Support to load data for the analytic object. |
No sources available | While selecting a source (Step Two, Option 1), you can't find a specific source that you're looking for in the list even though you know it exists in your Visier solution. | The source may have multiple mappings, so the platform doesn't know which mapping to surface. Contact Visier Technical Support to fix the source configuration. |
The source already exists and is connected to a different analytic object | After you upload a data file (Step Two, Option 3), Visier finds a matching source for the file that already has a mapping to a different analytic object. | The data file matches the regex of an existing source, but that source is connected to a different analytic object than the one you selected for the dimension. Change the name of your data file so that it doesn't match the regex of the existing source. |
In this section