When your model inventory grows, free-text fields become a liability. Every user describes things differently, which makes it difficult to filter, report on, or audit consistently. A dropdown field solves this by enforcing a standardized set of values — every model is classified the same way, and that data becomes immediately useful in inventory views and reports. This post walks through how to add a new dropdown field called
x_model_purpose to the Model page in SAS MRM, end-to-end.
Before you can register a dropdown field, the following loaders must already be in place in your SAS MRM environment:
- SourceSystems — Defines the source system codes used to identify where configuration data originates. You will need to define a custom source system code for your Named List in this loader.
- Registrations — Registers the object types in SAS MRM, such as Model, Finding, or Document. The registration.id value referenced in your RegistrationFieldDefinitions sheet must correspond to an existing registration.
If any of these are missing, your data load will return errors during the preview step. Resolve prerequisite loaders first.
Before building anything, decide on the values your dropdown will offer. For x_model_purpose, the goal is to standardize how model intent is captured across the inventory. For this walkthrough, the dropdown options are:
| Option Code | User-Facing Label |
|---|---|
X_PURPOSE_CREDIT_RISK |
Credit risk assessment / scorecard |
X_PURPOSE_CECL |
Loss estimation / allowance (CECL, ECL) |
X_PURPOSE_STRESS_TESTING |
Stress testing / capital planning |
X_PURPOSE_FRAUD |
Fraud detection |
X_PURPOSE_DEMO |
Demonstration / prototype / training |
Naming convention: Option codes must start with X_. This is a required naming convention for custom options.
Create a new Excel workbook — for example, mrm_model_purpose_dropdown_loader.xlsx and add the following five worksheets, named exactly as shown (case-sensitive):
SourceSystemsRegistrationFieldDefinitionsNamedListsNamedListOptionsNamedListTranslationsEach sheet is covered below.
A custom source system code is required when creating a new Named List. It must be no more than thirty alphanumeric characters and cannot use reserved words or special characters.
| Column | Value |
|---|---|
sourceSystem.sourceSystemCd |
XMRM |
sourceSystem.name |
|
This source system code (XMRM) will be referenced in theNamedListssheet. If your organization already uses a custom source system code, use that instead.
This is where you register x_model_purpose with a new field type. Because the field definition already exists as string, this loader will update the type to optionCd and link it to the Named List you are about to create.
| Column | Value | Notes |
|---|---|---|
registration.sourceSystemCd |
RCC |
References the source system for the Model object registration |
registration.id |
Model |
The object this field belongs to |
registrationFieldDefinitions.name |
x_model_purpose |
Must begin with x_ |
registrationFieldDefinitions.type |
optionCd |
Required for dropdown fields |
registrationFieldDefinitions.multiValued |
FALSE |
FALSE = single select dropdown. TRUE = multi-select. |
registrationFieldDefinitions.listName |
x_modelPurpose |
References the Named List defined in the next sheet. Required when type is optionCd. |
registrationFieldDefinitions.maxLength |
(leave blank) | Optional |
registrationFieldDefinitions.globalSearchEnabled |
(leave blank) | Only valid for string and html types |
registrationFieldDefinitions.description |
Primary Model Purpose |
Optional. Not currently surfaced in the product UI. |
This sheet creates the Named List container that the dropdown will draw its options from.
| Column | Value | Notes |
|---|---|---|
namedList.sourceSystemCd |
XRM |
Must match the source system defined in the SourceSystems sheet |
namedList.id |
x_primary_model_purpose |
|
namedList.listName |
x_modelPurpose |
Referenced by registrationFieldDefinitions.listName |
namedList.sortMode |
options |
Controls how dropdown options are ordered. options = order as defined in the list. labels = alphabetical by label. Defaults to labels if left blank. |
This sheet defines the selectable values for the dropdown. Add one row per option.
namedList.listName |
namedList.optionCd |
|---|---|
x_modelPurpose |
X_PURPOSE_CREDIT_RISK |
x_modelPurpose |
X_PURPOSE_CECL |
x_modelPurpose |
X_PURPOSE_STRESS_TESTING |
x_modelPurpose |
X_PURPOSE_FRAUD |
x_modelPurpose |
X_PURPOSE_DEMO |
This sheet provides the user-facing labels for each option code, per language. For a single-language environment, use en.
namedList.listName |
namedList.optionCd |
namedListTranslations.languageCd |
namedListTranslations.label |
|---|---|---|---|
x_modelPurpose |
X_PURPOSE_CREDIT_RISK |
en |
Credit risk assessment / scorecard |
x_modelPurpose |
X_PURPOSE_CECL |
en |
Loss estimation / allowance (CECL, ECL) |
x_modelPurpose |
X_PURPOSE_STRESS_TESTING |
en |
Stress testing / capital planning |
x_modelPurpose |
X_PURPOSE_FRAUD |
en |
Fraud detection |
x_modelPurpose |
X_PURPOSE_DEMO |
en |
Demonstration / prototype / training |
With your workbook complete, navigate to Settings → Data Load in SAS MRM.
With the data loaded, you now need to add the field definition in SAS Risk Cirrus Builder to reflect the new dropdown type and wire it to the Named List.
x_model_purposex_model_purposePrimary Model Purpose| Label | Value |
|---|---|
| Credit risk assessment / scorecard | X_PURPOSE_CREDIT_RISK |
| Loss estimation / allowance (CECL, ECL) | X_PURPOSE_CECL |
| Stress testing / capital planning | X_PURPOSE_STRESS_TESTING |
| Fraud detection | X_PURPOSE_FRAUD |
| Demonstration / prototype / training | X_PURPOSE_DEMO |
With x_model_purpose now a standardized dropdown, the values being entered across your model inventory are consistent and reportable. The next step is surfacing this field in your SAS Visual Analytics dashboard, so model purpose becomes visible where governance decisions actually happen.
Before the new field can appear in a dashboard report, it needs to be loaded into the CAS in-memory data tables that reporting draws from.
purpose (the field will not appear)The CAS data tables are populated by ETL scripts. Until the relevant script is run, new field data is not available for reporting.
The Load Live Data script populates the data used by the board (live) report. The Load Historical Data script populates the trend report. For this walkthrough, run Load Live Data.
You can also run this script from SAS Studio if preferred.
purposetr_ prefix) are now presentpurpose and locate the Primary Model Purpose translated columnOnce saved, return to SAS MRM, refresh the dashboard, and the Primary Model Purpose field will be visible in the report.
Adding a custom dropdown field to SAS MRM involves three distinct layers working together. You built the data loader workbook by defining the source system, registering the field, creating the Named List, and loading the options and labels. You then registered the field in SAS Risk Cirrus Builder, wired it to the Named List, and placed it on the Model page. Finally, you confirmed the dropdown is visible on individual model records, available as a column in the Models inventory, and surfaced in the dashboard report.
The result is a standardized x_model_purpose field that every user interacts with the same way — making your model inventory cleaner, more consistent, and ready for reporting.
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →The rapid growth of AI technologies is driving an AI skills gap and demand for AI talent. Ready to grow your AI literacy? SAS offers free ways to get started for beginners, business leaders, and analytics professionals of all skill levels. Your future self will thank you.