[go: up one dir, main page]

0% found this document useful (0 votes)
135 views243 pages

Barra PortfolioManager Developers Toolkit Reference Guide

Uploaded by

ziyanghe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
135 views243 pages

Barra PortfolioManager Developers Toolkit Reference Guide

Uploaded by

ziyanghe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 243

Barra PortfolioManager

Developer’s Toolkit
Reference Guide
January 2025

© 2025 MSCI Inc. All rights reserved. MSCI.COM


BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Introduction ...............................................................................................................7
Web Service Overview .............................................................................................................. 7
Supported Operations .............................................................................................................. 7
Development Environment.................................................................................... 10
Client Side ............................................................................................................................... 10
Server Side .............................................................................................................................. 10
WSDL and XMLBeans Primer................................................................................................. 11
Getting Started ....................................................................................................... 19
Assumptions ........................................................................................................................... 19
Data Conventions ................................................................................................................... 19
Create the Build Environment ................................................................................................ 20
Create BDT XMLBeans Classes ............................................................................................. 21
Request Object........................................................................................................................ 21
Send Request .......................................................................................................................... 23
Compile ................................................................................................................................... 23
Run .......................................................................................................................................... 23
Timeout Values and File Sizes ............................................................................................... 23
Workgroup Permissioning...................................................................................................... 23
SubmitImportJob................................................................................................... 24
SubmitImportJobRequest ...................................................................................................... 24
SubmitImportJobResponse ................................................................................................... 81
ListImportJobs ...................................................................................................... 82
ListImportJobsRequest .......................................................................................................... 82
ListImportJobsResponse ....................................................................................................... 84
GetImportJobStatus .............................................................................................. 85
GetImportJobStatusRequest ................................................................................................. 85
GetImportJobStatusResponse .............................................................................................. 86

© 2024 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetImportJobLog .................................................................................................. 87
GetImportJobLogRequest ...................................................................................................... 87
GetImportJobLogResponse ................................................................................................... 90
CreateAttributes .................................................................................................... 93
CreateAttributesRequest ........................................................................................................ 93
CreateAttributesResponse ..................................................................................................... 96
DeleteAttribute ....................................................................................................... 97
DeleteAttributeRequest .......................................................................................................... 97
DeleteAttributeResponse ....................................................................................................... 98
SubmitRebalanceJob ............................................................................................ 99
SubmitRebalanceJobRequest ............................................................................................... 99
SubmitRebalanceJobResponse ........................................................................................... 112
GetRebalanceSummaryReport ........................................................................... 113
GetRebalanceSummaryReportRequest ............................................................................... 113
GetRebalanceSummaryReportResponse ............................................................................ 114
ListRebalanceJobs .............................................................................................. 115
ListRebalanceJobsRequest ................................................................................................. 115
ListRebalanceJobsResponse .............................................................................................. 117
DeleteRebalanceJob ........................................................................................... 118
DeleteRebalanceJobRequest ............................................................................................... 118
DeleteRebalanceJobResponse ............................................................................................ 119
GetRebalanceStatistics ....................................................................................... 120
GetRebalanceStatisticsRequest .......................................................................................... 120
GetRebalanceStatisticsResponse ....................................................................................... 121
GetRebalanceTradeList....................................................................................... 123
GetRebalanceTradeListRequest .......................................................................................... 123
GetRebalanceTradeListResponse ....................................................................................... 124
GetRebalanceJobStatus ..................................................................................... 126

© 2024 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceJobStatusRequest ......................................................................................... 126


GetRebalanceJobStatusResponse ...................................................................................... 127
GetRebalanceOptimalWeights ........................................................................... 128
GetRebalanceOptimalWeightsRequest ............................................................................... 128
GetRebalanceOptimalWeightsResponse ............................................................................ 129
GetRebalanceStatusAndOptimalWeights .......................................................... 130
GetRebalanceStatusAndOptimalWeightsRequest .............................................................. 130
GetRebalanceStatusAndOptimalWeightsResponse ........................................................... 131
GetRebalanceInputFiles ...................................................................................... 132
GetRebalanceInputFilesRequest.......................................................................................... 132
GetRebalanceInputFilesResponse ....................................................................................... 133
ListSupportedReports ......................................................................................... 134
ListSupportedReportsRequest ............................................................................................. 134
ListSupportedReportsResponse .......................................................................................... 135
GetReportParameters ......................................................................................... 136
GetReportParametersRequest ............................................................................................. 136
GetReportParametersResponse .......................................................................................... 137
SubmitReportJob................................................................................................. 139
SubmitReportJobRequest .................................................................................................... 139
SubmitReportJobResponse ................................................................................................. 141
GetReportJobStatus ............................................................................................ 143
GetReportJobStatusRequest ............................................................................................... 143
GetReportJobStatusResponse ............................................................................................ 144
RetrieveReports ................................................................................................... 145
RetrieveReportsRequest ....................................................................................................... 145
RetrieveReportsResponse .................................................................................................... 151
RetrieveTemplateReports ................................................................................... 152
RetrieveTemplateReportsRequest ....................................................................................... 152
RetrieveTemplateReportsResponse .................................................................................... 155

© 2024 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitExtendCFAJob ......................................................................................... 156


SubmitExtendCFAJobRequest............................................................................................. 156
SubmitExtendCFAJobResponse .......................................................................................... 157
CreateTimeSeriesSettings .................................................................................. 158
CreateTimeSeriesSettingsRequest ...................................................................................... 158
CreateTimeSeriesSettingsResponse ................................................................................... 168
DeleteTimeSeriesSettings .................................................................................. 169
DeleteTimeSeriesSettingsRequest ...................................................................................... 169
DeleteTimeSeriesSettingsResponse ................................................................................... 170
CreateAnalysisSetting ......................................................................................... 171
CreateAnalysisSettingRequest ............................................................................................ 171
CreateAnalysisSettingResponse ......................................................................................... 182
DeleteAnalysisSetting ......................................................................................... 183
DeleteAnalysisSettingRequest ............................................................................................. 183
DeleteAnalysisSettingResponse .......................................................................................... 184
SubmitHVRJob .................................................................................................... 185
SubmitHVRJobRequest........................................................................................................ 185
SubmitHVRJobResponse ..................................................................................................... 189
GetLatestHVRJobId............................................................................................. 190
GetLatestHVRJobIdRequest ................................................................................................ 190
GetLatestHVRJobIdResponse ............................................................................................. 191
GetHvrReports ..................................................................................................... 192
GetHvrReportsRequest......................................................................................................... 192
GetHvrReportsResponse ...................................................................................................... 194
CreateHVRJobDef ............................................................................................... 195
CreateHVRJobDefRequest ................................................................................................... 195
CreateHVRJobDefResponse ................................................................................................ 202
DeleteHVRJobDef ................................................................................................ 203

© 2024 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteHVRJobDefRequest ................................................................................................... 203


DeleteHVRJobDefResponse ................................................................................................ 204
UpdateHVRJobDef .............................................................................................. 205
UpdateHVRJobDefRequest .................................................................................................. 205
UpdateHVRJobDefResponse ............................................................................................... 207
Appendix A: Error Codes ..................................................................................... 208

© 2024 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Introduction
The Barra PortfolioManager Developer’s Toolkit (BDT) is a Web service API that enables client developers
to automate a batch interaction with Barra PortfolioManager. A developer can programmatically upload
user assets, portfolios, attributes, set user settings, submit rebalance jobs and generate import logs from
Barra PortfolioManager.
This Web service is intended to meet the needs of our larger clients who want direct programmatic
access to Barra PortfolioManager.

Web Service Overview


A Web service is a software system designed according to W3C standards that supports interoperable
computer interaction over a network, often an application programming interface (API) that can be
accessed over the Internet and executed on a remote system hosting the requested services.
Most Web services, including the Barra PortfolioManager Web service, use SOAP-formatted XML
envelopes and have their interfaces described by WSDL. SOAP is an XML-based, extensible message
envelope format, with bindings to underlying protocols, such as HTTP. WSDL is an XML format that
enables service interfaces to be described, along with the details of their bindings to specific protocols.
WSDL technology is the basis for generating the client code that will interact with the Web service and it
frees the developer from writing much of the application code.
Developers will employ the Barra PortfolioManager Web service by developing a custom client application
that communicates via SOAP with the Barra PortfolioManager Web service.
The Web service enables a client application to:
• Import client data
• Check the status of an import job
A typical client application will:
• Gather daily portfolio data from an in-house system (with the optional inclusion of supporting
user assets, asset attributes, etc.)
• Convert this data into a SOAP request format (usually via development tools, such as Axis2)
• Invoke the Web service’s Import operation
• Periodically invoke the Import Status operation

Supported Operations
The Barra PortfolioManager Web service API currently supports the following operations:
• SubmitImportJob – The SubmitImportJob operation enables a client to send new data elements
to Barra PortfolioManager. For details, see SubmitImportJob.
• ListImportJobs – The ListImportJobs operation enables a client to list all import jobs in Barra
PortfolioManager. For details. For details, see ListImportJobs.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 7 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

• GetImportJobStatus – The GetImportJobStatus operation enables a client to check the status of


an import job. For details, see GetImportJobStatus.
• GetImportJobLog – The GetImportJobLog operation enables a client to retrieve the import logs
generated during an import process. These logs contain summary and detail information about
each import job. For details, see GetImportJobLog.
• CreateAttributes – The CreateAttributes operation enables a client to create new attributes in
Barra PortfolioManager, and the operation returns Name/StatusValue pairs. For details, see
CreateAttributes.
• DeleteAttributes – The DeleteAttributes operation enables a client to delete attributes in Barra
PortfolioManager, and the operation returns a StatusValue. For details, see DeleteAttributes.
• SubmitRebalanceJob – The SubmitRebalanceJob operation enables a client to submit a
rebalance job in Barra PortfolioManager. For details, see SubmitRebalanceJob.
• GetRebalanceSummaryReport – The GetRebalanceSummaryReport operations enables a client
to retrieve a summary report for a rebalanced portfolio. For details, see
GetRebalanceSummaryReport.
• ListRebalanceJobs – The ListRebalanceJobs operation enables a client to list all rebalance jobs
currently held in Barra PortfolioManager. For details, see ListRebalanceJobs.
• DeleteRebalanceJob – The DeleteRebalanceJob operation enables a client to delete rebalance
jobs in Barra PortfolioManager. For details, see DeleteRebalanceJob.
• GetRebalanceStatistics – The GetRebalanceStatistics operation enables a client to retrieve
statistics of a rebalance job in Barra PortfolioManager. For details, see GetRebalanceStatistics.
• GetRebalanceTradeList – The GetRebalanceTradeList operation enables a client to retrieve the
trade list information for a rebalance job in Barra PortfolioManager. For details, see
GetRebalanceTradeList.
• GetRebalanceJobStatus – The GetRebalanceJobStatus operation enables a client to retrieve the
status of a rebalance job. For details, see GetRebalanceJobStatus.
• GetRebalanceOptimalWeights – The GetRebalanceOptimalWeights operation enables a client to
retrieve the weights of the optimized portfolio. For details, see GetRebalanceOptimalWeights.
• GetRebalanceStatusAndOptimalWeights – The GetRebalanceStatusAndOptimalWeights
operation enables a client to retrieve the rebalance job status and the weights of the optimized
portfolio. For details, see GetRebalanceStatusAndOptimalWeights.
• GetRebalanceInputFiles – The GetRebalanceInputFiles operation enables a client to retrieve a
debug info file that contains the rebalance job input details. For details, see RebalanceInputFiles.
• ListSupportedReports – The ListSupportedReports operation enables a client to determine the
reports that can be submitted or retrieved programmatically. For details, see
ListSupportedReports.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 8 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

• GetReportParameters – The GetReportParameters operation enables a client to retrieve the


report parameters that will be used to run the reports. For details, see GetReportParameters.
• SubmitReportJob – The SubmitReportJob operation enables a client to submit a report job. For
details, see SubmitReportJob.
• GetReportJobStatus – The GetReportJobStatus operation enables a client to retrieve the report
job status. For details, see GetReportJobStatus.
• RetrieveReports – The RetrieveReports operation enables a client to retrieve reports for jobs that
were successfully completed. For details, see RetrieveReports.
• RetrieveTemplateReports – Similar to the RetrieveReports operation, the
RetrieveTemplateReports operation enables a client to retrieve reports including time series risk
reports. For details, see RetrieveTemplateReports.
• SubmitExtendCFAJob – The SubmitExtendCFAJob operation enables a client to extend a custom
model. For details, see SubmitExtendCFAJob.
• CreateTimeSeriesSettings – The CreateTimeSeriesSettings operation enables a client to create
time series settings. For details, see CreateTimeSeriesSettings.
• DeleteTimeSeriesSettings – The DeleteTimeSeriesSettings operations enables a client to delete
a previously-created time series setting. For details, see DeleteTimeSeriesSettings.
• CreateAnalysisSetting – The CreateAnalysisSetting operation enables a client to create a
Analysis Setting. For details, see CreateAnalysisSetting.
• DeleteAnalysisSetting – The DeleteAnalysisSetting operation enables a client to delete a
previously-created time series setting. For details, see DeleteAnalysisSetting.
• SubmitHVRJob – The SubmitHVRJob operation enables a client to submit a high-volume
reporting job in Barra PortfolioManager. For details, see SubmitHVRJob.
• GetLatestHVRJobId – The GetLatestHVRJobId operation enables a client to retrieve the job ID of
a running high-volume reporting job. For details, see GetLatestHVRJobId.
• GetHvrReports – The GetHvrReports operation enables a client to download reports from
completed high-volume reporting jobs automatically. For details, see GetHvrReports.
• CreateHVRJobDef – The CreateHVRJobDef operation enables a client to create a high-volume
reporting job definition. For details, see CreateHVRJobDef.
• DeleteHVRJobDef – The DeleteHVRJobDef operation enables a client to delete a previously-
created high-volume reporting job definition. For details, see DeleteHVRJobDef.
• UpdateHVRJobDef – The UpdateHVRJobDef operation enables a client to update an existing
high-volume reporting job definition. For details, see UpdateHVRJobDef.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 9 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Development Environment
Client Side
Various tool vendors provide software to facilitate the development of Web service clients. Barra has
used and tested two such environments:
• Axis2 from the Apache Software Foundation (http://axis.apache.org/axis2/java/core/). Our Web
service is built on this platform. It is our primary recommendation.
• Microsoft’s .NET development environment.

Code Generation
Although it is certainly possible to refer the SOAP schema for each BDT operation and directly code the
XML output, a significantly less error-prone approach is to use a tool that generates code from the WSDL.
Microsoft’s .NET environment provides this functionality directly.
In the Java environment, Barra uses Axis with XMLBeans to generate the data binding. The
https://axis.apache.org/ website has a tutorial that is useful for becoming familiar with the product. This
library comes packaged with the Axis2 distribution.

Server Side
Developers will probably want to set up a test environment for their client application. A simple Web
service can be developed quite easily. The ingredients are:
• A basic Web Server configuration. Barra uses Tomcat (version 5.5) from the Apache Software
Foundation (http://tomcat.apache.org).
• Axis2 deployed as a servlet (see above).
These two applications can be downloaded from the URLs shown. Complete installation instructions
come with each package. In broad terms, the client will:
1. Deploy Tomcat using a simple configuration.
2. Edit $TOMCAT_HOME/conf/server.xml and add a “servlet context” within the <host> element,
such as:
<Context reloadable="false" path="/axis"
docBase="D:/tomcat/webapps/axis2"
debug="0" privileged="true" />

where:
path defines the URL that identifies an Axis request
docBase specifies the directory where Axis data files are stored
3. Drop the axis2.war file into the $TOMCAT/webapps directory.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 10 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

4. Start Tomcat and confirm access to the Axis2 servlet home page, e.g., http://localhost:8000/axis.
5. After developing the testbed web service, the client will create a .jar file that contains class files
and a web service configuration file named META-INF/services.xml. (See the Axis documentation
for details.)
6. Change the extension of this file from .jar to .aar and copy it into the
$TOMCAT/webapps/axis2/WEB-INF/services directory (i.e., <docBase> as defined in the servlet
context in server.xml). The .jar file name will be used by Axis as the name of the Web service
(even though it may have been specified in the services.xml file, as well).

WSDL and XMLBeans Primer


One of the primary benefits of Web service technology is the ability to generate data binding classes and
RMI-like function stubs from a WSDL. The WSDL is an XML schema document that defines the operations
that can be performed on the Web service and describes the request and response values for those
operations.
Notes: The examples in this document use the following conventions:
• any text beginning with “my,” such as “myJob,” “myDoc,” etc., represent user variables that can be
named as the user desires, so long as each variable is unique within the file
• lines of code that begin with “//” (i.e., code comments) generally represent attributes that are
either optional or conditional
Axis2 provides the WSDL2Java application in its distribution to generate this source code. Follow these
steps to use this application under Windows:
set JAVA_HOME=<your-JDK-root-here>
set AXIS2_HOME=<your-Axis2-distribution-root-here>
cd %AXIS2_HOME%\bin
wsdl2java.bat –uri <bdt-wsdl-location> -d xmlbeans -ss -g -p
com.barra.cp.bdtbeans -o <output-directory>

As shown, the source will be written to .\src\com\barra\cp\bdtbeans. For details, refer the Getting
Started section.
In .NET, follow this step to create a BDTService.cs file that will be used in coding the user
application:
wsdl.exe <bdt-wsdl-location>

To see the relationship of the WSDL to the generated source code, it is helpful to inspect the WSDL. We
will illustrate using a real BDT operation. The BDT Web service enables clients to send up a portfolio that
will be stored in the Barra PortfolioManager database. This facility is provided by the SubmitImportJob
operation.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 11 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

The operation definitions can be found near the end of the WSDL:
<wsdl:operation name="SubmitImportJob">
<wsdl:input message="bdt:SubmitImportJobInput"/>
<wsdl:output message="bdt:SubmitImportJobOutput"/>
</wsdl:operation>

The operation is SubmitImportJob, and its input is identified as a SubmitImportJobInput, which is defined
as:
<wsdl:message name="SubmitImportJobInput">
<wsdl:part name="parameters" element="bdt:SubmitImportJobRequest"/>
</wsdl:message>

This defines the parameter type as a SubmitImportJobRequest, which is defined as:


<xsd:element name="SubmitImportJobRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="User" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="Client" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="Password" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="JobName" type="bdt:String64Length"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="UserAssets" type="bdt:UserAssets"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Portfolio" type="bdt:Portfolio"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="AssetAttribute" type="bdt:AssetAttribute"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="CurveAttribute" type="bdt:CurveAttribute"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="PortfolioManagerCases" type="bdt:
PortfolioManagerCases minOccurs="0" maxOccurs="1"/>
<xsd:element name="ImpliedVolAttribute"
type="bdt:ImpliedVolAttribute" minOccurs="0" maxOccurs="unbounded"/>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 12 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

<xsd:element name="PortfolioAttribute"
type="bdt:PortfolioAttribute" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

The SubmitImportJobRequest contains a number of data elements. The data binding source generated
by WSDL2Java provides classes (using XMLBeans as the code generator) that parallel this structure. A
snippet of Java code that fills in some of this request could look like this:
myJob.setUser("JessicaG");
myJob.setClient("yxsrkk29ey");
myJob.setPassword("My Password");
myJob.setJobName("My Import Job"); // optional

In .NET, no request objects are required.


These parameters with simple types (i.e., xsd:string) have setters with obvious names. There are a couple
of options when setting a user-defined type in Java, such as the portfolio element (bdt:Portfolio); either:
Portfolio myPf = Portfolio.Factory.newInstance();
myJob.setPortfolio(myPf);

- or -
Portfolio myPf = myJob.addNewPortfolio();

The first approach shows that user-defined types are generally created by using a factory’s newInstance()
method. The second approach hides the details, creating an instance of the Portfolio class, adding it to
the request, and returning a reference so the contents of the Portfolio instance can be initialized.
In .NET, a user-defined type can be set as follows (no factories are used):
Portfolio myPf = new Portfolio();

Returning to the WSDL, we see that a Portfolio can contain a number of different elements:
<xsd:complexType name="Portfolio">
<xsd:sequence>
<xsd:element name="Positions" type="bdt:Positions" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="PortfolioName" type="xsd:string"
use="required"/>
<xsd:attribute name="EffectiveStartDate" type="xsd:date"
use="required"/>
<xsd:attribute name="Owner" type="xsd:string" use="required"/>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 13 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

<xsd:attribute name="PortfolioImportType"
type="bdt:PortfolioImportType"
use="required"/>
</xsd:complexType>

The basic portfolio information can be set in the Java client code, for example:
myPf.setPortfolioName("My Portfolio");
myPf.setEffectiveStartDate(new GregorianCalendar(2006, 11, 26));
myPf.setOwner("myUser1");
myPf.setPortfolioImportType(PortfolioImportType.BY_HOLDINGS);

In .NET:
myPf.PortfolioName = "My Portfolio";
myPf.EffectiveStartDate = new DateTime(2006, 11, 26);
myPf.Owner = "myUser1";
myPf.PortfolioImportType = PortfolioImportType.BY_HOLDINGS;

Note that the EffectiveStartDate is defined as xsd:date in the WSDL. As a result, the
setEffectiveStartDate() method takes a Calendar. Also note the PortfolioImportType is defined in the
WSDL as follows:
<xsd:simpleType name="PortfolioImportType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BY_HOLDINGS"/>
<xsd:enumeration value="BY_NOTIONAL"/>
<xsd:enumeration value="BY_WEIGHT"/>
<xsd:enumeration value="BY_VALUE"/>
<xsd:enumeration value="BY_VALUE_AND_HOLDINGS"/>
<xsd:enumeration value="BY_HOLDINGS_UPDATE_ABSOLUTE"/>
<xsd:enumeration value="BY_HOLDINGS_UPDATE_DELTA"/>
<xsd:enumeration value="DELETE"/>
<xsd:enumeration value="BY_NOTIONAL_AND_HOLDINGS"/>
<xsd:enumeration value="BY_VALUE_HOLDINGS_AND_NOTIONAL"/>
</xsd:restriction>
</xsd:simpleType>

The XMLBeans implementation of the enumeration is not a true Java 1.5 implementation, but it can be
used in a similar fashion as shown in the sample code above.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 14 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

The next thing to do is to add the portfolio holdings. As seen above, the WSDL defines a bdt:Positions
type. This is a container for multiple bdt:Position types. Each Position defines an asset and shares. Barra
PortfolioManager supports the notion of multiple asset IDs for an asset in a portfolio. This is supported in
the WSDL as well. The structure has been simplified for this example:
<xsd:complexType name="Position">
<xsd:sequence>
<xsd:element name="MID" type="bdt:MID" maxOccurs="unbounded"/>
<xsd:element name="PosAttribute" type="bdt:PositionAttributeTYPE"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="Holdings" type="xsd:double" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MID">
<xsd:attribute name="ID" type="xsd:string" use="required"/>
<xsd:attribute name="IDType" type="xsd:string" use="optional"/>
<xsd:attribute name="Priority" type="xsd:int" use="optional"
default="1"/>
</xsd:complexType>
<xsd:complexType name="PositionAttributeTYPE">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>

The client application can create and initialize positions:


Sample .NET code:
PositionAttributeTYPE myPositionAttributeTYPE1 = new
PositionAttributeTYPE();
myPositionAttributeTYPE1.name = attributeName;
myPositionAttributeTYPE1.value = "2020-05-01";
PositionAttributeTYPE myPositionAttributeTYPE2 = new
PositionAttributeTYPE();
myPositionAttributeTYPE2.name = attributeName;
myPositionAttributeTYPE2.value = "2020-05-02";
Position myPosition1 = new BDT.Position();
myPosition1.Holdings = 1000;
myPosition1.HoldingsSpecified = true;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 15 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myPosition1.MID = new MID[] { myMID1 };


myPosition1.PosAttribute = new PositionAttributeTYPE[] {
myPositionAttributeTYPE1 };
Position myPosition2 = new BDT.Position();
myPosition2.Holdings = 1000;
myPosition2.HoldingsSpecified = true;
myPosition2.MID = new MID[] { myMID2 };
myPosition2.PosAttribute = new PositionAttributeTYPE[] {
myPositionAttributeTYPE2 };

Instantiation of the request object is handled differently than other objects in XMLBeans. Every highest-
level class, which is to say every operation’s request and response, is housed in a specialized document
class. For example, the SubmitImportJobRequest is created as follows:
SubmitImportJobRequestDocument myDoc =
SubmitImportJobRequestDocument.Factory.newInstance();
SubmitImportJobRequestDocument.SubmitImportJobRequest request =
myDoc.addNewSubmitImportJobRequest();

The SubmitImportJobRequestDocument is a container for the request. It is this container that is sent to
the Web service.
In .NET, no factories or documents are used.
The WSDL2Java application also generates the Web service stub. This class, named BDTServiceStub.java
may also be found with the XMLBeans classes. It should be instantiated with the BDT Web Service URL
as an input:
BDTServiceStub myStub = new
BDTServiceStub("https://www.barraone.com/axis2/services/BDTService");

In .NET, the service stub is created as follows:


BDTService myStub = new BDTService();
myStub.Url = “https://www.barraone.com/axis2/services/BDTService";

Note: In the UAT environment, the stub should be set to


“https://uat.barraone.com/axis2/services/BDTService".
The WSDL references the production environment URL. If the URL is not explicitly set in the client stub
code, this production URL is used:
<wsdl:service name="BDTService">
<documentation>Barra PortfolioManager Developers Toolkit Web
Service</documentation>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 16 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

<wsdl:port name="BDTPortType" binding="bdt:BDTBinding">


<soap:address location="https://www.barraone.com/axis2/services/
BDTService"/>
</wsdl:port>
</wsdl:service>

The stub class contains a method that takes the SubmitImportJobRequestDocument as input and returns
a SubmitImportJobResponseDocument. Referring to the WSDL shows that the
SubmitImportJobResponse has the following structure (remember that the container document is
defined on top of the response by XMLBeans):
<xsd:element name="SubmitImportJobResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="JobID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

We can therefore write the following code to import our portfolio and to retrieve a Job ID:
SubmitImportJobResponseDocument myRespDoc =
myStub.SubmitImportJob(myDoc);
SubmitImportJobResponseDocument.SubmitImportJobResponse myResp =
myRespDoc.getSubmitImportJobResponse();
System.out.println(myResp.getJobID());

In .NET, the following code will import a portfolio and retrieve a Job ID:
// credentials;
string user="User1";
string client="Client1";
string password="Password1";
// Call SubmitImportJob
// Parameters : user, client, password, jobName, UserAssets[],
Portfolio[],
// PortfolioTree[], AssetAttribute[], CurveAttribute[],
// Barra PortfolioManagerOverrides[], Barra PortfolioManagerCases[],
ImpliedVolAttribute[],
// SwaptionImpliedVolAttribute[], PortfolioAttribute[],
// MarketScenario[], MarketConditions[], PortfolioTransactions[],

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 17 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

// DeletePortfolioTransactions[]
// Return value: jobID
string JobID=null;
try
{
JobID=myStub.SubmitImportJob(user, client, password, "My Job Name",
null,new Portfolio[] {myPf}, null, null, null, null, null, null,
null, null, null, null, null, null);
// write the JobID
Console.WriteLine("Job ID: "+JobID);
}
catch(System.Web.Services.Protocols.SoapException ex)
{
// e.g., Invalid Credentials etc.)
Console.WriteLine(ex.Message);
}
catch(System.Net.WebException ex)
{
// e.g., ConnectFailure
Console.WriteLine(ex.Message);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Note: The following fields are not supported by Barra PortfolioManager; therefore they should be
mandatorily passed as NULL.
PortfolioTree[]
Barra PortfolioManagerOverrides[]
Barra PortfolioManagerCases[]
SwaptionImpliedVolAttribute[]
MarketScenario[]
MarketConditions[]
PortfolioTransactions[]
DeletePortfolioTransactions[]

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 18 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Getting Started
This section provides a description of the steps that are required to perform the various functions
supported by the Barra PortfolioManager Developer’s Toolkit, plus sample code fragments. For additional
information on the required inputs, refer the subsequent sections.

Assumptions
These instructions assume that the following statements are true:
• The client has a Barra PortfolioManager license
• The client has a Barra PortfolioManager Developer’s Toolkit license
• The user has an access level of Client Admin or Workgroup Admin
• The user has obtained the BDT WSDL from MSCI, available on the client support site:
https://support.msci.com/support/barra-portfoliomanager/barra-portfoliomanager/0731311193
• The user has installed one of the following development environments:
− Java SDK 1.8 from Sun Microsystems and Axis 2 from Apache
− Visual Studio 2003 or 2005 from Microsoft

Data Conventions
String data types must be entered within quotation marks (" "). All other data types are entered without
the quotation marks.

Date Format
The user must create a calendar object to be invoked when setting a date value.
Note: All times passed to BDT must be expressed in GMT. Likewise, all dates returned by BDT should be
interpreted in terms of GMT. The following code will create today’s date to be used when invoked with
myCal:
Calendar myCal = Calendar.getInstance();
In .NET:
DateTime myDate = new DateTime.Now;

To set an attribute to a date value, invoke the value, as illustrated in the following example, which will set
the effective start date for a portfolio to today:
myPf.setEffectiveStartDate(myCal);
In .NET:
myPf.EffectiveStartDate = myDate;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 19 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Enum Format
The enumeration format requires the user to append the name of the attribute to the enumeration value.
The following example sets the value of the AggregationType attribute of a portfolio node to
“ASSIGNED_WEIGHT”:
myPfnode.setAggregationType(AggregationType.ASSIGNED_WEIGHT);
In .NET:
myPfnode.AggregationType = AggregationType.ASSIGNED_WEIGHT;
Note: In .NET, if an attribute for an enumerated field is not specified in the request, the first attribute in the
enumerated list is sent automatically. (A default attribute cannot be designated in the wsdl.) Thus, if an
enumerated attribute for a required field is not selected, the job will not fail; however, the user should not
depend upon this behavior, and the value should be set explicitly.

Optional Fields in .NET


If you are programming in a .NET environment, all entries for optional fields (except for string datatype)
require an additional entry to indicate that a value has been sent for the field, unless that field has a
default value specified in the WSDL. The format for this entry is as follows:
<FieldName>Specified = true;

For instance, to set the value of the EffectiveStartDate field for a user asset, the following two entries are
required:
myAsset.EffectiveStartDate = myDate;
myAsset.EffectiveStartDateSpecified = true;

Create the Build Environment


To create the build environment for Java, follow these steps:
1. Download the WSDL and sample code from the website to /tmp, for example.
2. Create a root directory, e.g., /BDT.
3. Create the subdirectory src under /BDT.
4. Copy the sample code to the src directory.
5. Copy the axis2 distribution from the Apache axis2 site, and install.
6. Confirm that Java and Ant are properly configured.
7. Set AXIS2_HOME=<axis2-directory>.
8. Generate the BDT source by running the following command:
%AXIS2_HOME%/bin/wsdl2java.bat -uri /tmp/bdt.wsdl -d xmlbeans -ss -g
–p com.barra.cp.bdtbeans -o /BDT

9. Change to the /BDT directory.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 20 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Run the ant command. This will compile the source and generate jar files in the directory
/BDT/build/lib.
10. To run SimplePortfolioImport, for example, you can change to /BDT/source and run the following
command, which will reference your Axis2 installation and the certificate registered in Step 1:
java -cp
.;/BDT/build/lib/BDTService.aar;/BDT/build/lib/XBeanspackaged.
jar -Djavax.net.ssl.trustStore=[pathToYourKeystore] -
Djavax.net.ssl.trustStorePassword=[keyStorePassword] -
Djava.ext.dirs=[%AXIS2_HOME%/lib] SimplePortfolioImport

Create BDT XMLBeans Classes


This is a one-time step required to perform any BDT function. In a Java environment, the client will use
WSDL2JAVA (a tool bundled with Axis 2) to create the BDT XMLBeans classes.

Java File
The following steps are required of any Java file, regardless of the BDT function.
1. Create a Java file using any editor (IntelliJ or Eclipse, for example).
2. In the Java file, create an import statement to import the BDT XMLBeans classes:
import com.barra.cp.bdtbeans.*;

3. Create a public class in the Java file. For example:


public class SendPortfolio;

.NET File
The following steps are required of any .NET file, regardless of the BDT function.
1. Create a file using any editor (VisualStudio.NET, for example).
2. In the file, create a using statement to include the BDTService.cs file.
3. Create a public class in the file. For example:

public class SendPortfolio;

Request Object
The following steps are required to be performed in any Java BDT request object.
SubmitImportJobRequest is used in these examples:
1. All request objects must contain a request document. Create a request document with a
declaration and instantiation. For example:
SubmitImportJobRequestDocument myDoc;
myDoc = SubmitImportJobRequestDocument.Factory.newInstance();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 21 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

2. Create an import job with a declaration and instantiation. For example:


SubmitImportJobRequestDocument.SubmitImportJobRequest myJob;
myJob = myDoc.addNewSubmitImportJobRequest();

3. Set the request attributes (refer “SubmitImportJobRequest”). For example:


myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");
myJob.setJobName("My Import Job"); // optional

In .NET, send the following:


string myJobID = bdtWS.SubmitImportJob("myUser", "myClient",
"myPassword",
"myJobName", <UserAssets[] UserAssets>, <Portfolio[] Portfolio>,
<PortfolioTree[] PortfolioTree>, <AssetAttribute[] AssetAttribute>,
<CurveAttribute[] CurveAttribute>, <Barra PortfolioManagerOverrides[]
Barra PortfolioManagerOverrides>, <Barra PortfolioManagerCases[]
Barra PortfolioManagerCases>,
<ImpliedVolAttribute[] ImpliedVolAttribute>, <SwaptionImpliedVol[]
SwaptionImpliedVolAttribute>, <PortfolioAttribute[]
PortfolioAttribute>,
<MarketScenario[] MarketScenario>, <MarketConditions[]
MarketConditions>,
<PortfolioTransactions[] PortfolioTransactions>,
<DeletePortfolioTransactions[] DeletePortfolioTransactions>);

Note: The following fields are not supported by Barra PortfolioManager; therefore they should be
mandatorily passed as NULL.
PortfolioTree[]
Barra PortfolioManagerOverrides[]
Barra PortfolioManagerCases[]
SwaptionImpliedVolAttribute[]
MarketScenario[]
MarketConditions[]
PortfolioTransactions[]
DeletePortfolioTransactions[]

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 22 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Send Request
For Java, it is finally necessary to send the request. For example:
BDTServiceStub myStub = new BDTServiceStub();
SubmitImportJobResponseDocument myResp = myStub.SubmitImportJob
(myDoc);
String myJobid = myResp.getSubmitImportJobResponse().getJobID();

The JobID will be returned as a string. This string can then be used programmatically in other request
elements.
Note: The WSDL2JAVA tool generates the BDTServiceStub class. This class contains the functions that
send requests to and receive responses from the web service operations.
In .NET, no request objects are required.

Compile
Compile the Java application using javac. Be sure to set the class path to include the location of the
generated XMLBeans and BDTServiceStub.

Run
Run the Java file using Java.

Timeout Values and File Sizes


The timeout value of BDT may have to be adjusted, depending upon your network environment. The
timeout value may be adjusted with the following command:
BDTService myJob = new BDTService();
Options myOptions = new Options();
myOptions.setTimeOutInMilliSeconds(500000);

In .NET (where the timeout is expressed in milliseconds):


BDT.BDTService myJob = new BDT.BDTService();
myJob.timeout = 500000;
Files sizes of up to 100MB have been tested successfully with the Barra PortfolioManager Developer’s
Toolkit. If you require file sizes larger than 100MB, it is recommended that you break up the files into
smaller segments.

Workgroup Permissioning
Your access to various portfolios, benchmarks, reports, and the like is controlled by the Barra
PortfolioManager workgroup permissioning mechanism. Refer the Barra PortfolioManager Help system
for details about workgroup permissioning.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 23 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitImportJob
The SubmitImportJob operation consists of the SubmitImportJobRequest element and the
SubmitImportJobResponse element.

SubmitImportJobRequest
The SubmitImportJobRequest element, a child element of the SubmitImportJob operation, is the parent
element of all import jobs (user assets, portfolios and positions, asset attributes and portfolio attributes).
It will return the JobID as a string in the SubmitImportJobResponse document (refer
SubmitImportJobResponse). This string can then be used programmatically in other request elements,
such as GetImportJobStatus, GetImportJobLog, and ListImportJobs.

Table 1. SubmitImportJobRequest

Attribute Required? Data Type (Length) Description

User Y string Use this attribute to provide your user Id

Client Y string Use this attribute to provide the client ID for your firm
or organization

Password Y string Use this attribute to provide your password

JobName N String64Length(64) Use this attribute to provide a name (up to 64


characters at most) for the import job

To create the SubmitImportJobRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
SubmitImportJobRequestDocument myDoc;
myDoc = SubmitImportJobRequestDocument.Factory.newInstance();

2. Create an import job with a declaration and instantiation. For example:


SubmitImportJobRequestDocument.SubmitImportJobRequest myJob;
myJob = myDoc.addNewSubmitImportJobRequest();

3. Set the request attributes (refer Table 1). For example:


myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");
myJob.setJobName("My Import Job"); // optional

In .NET, send the following:


string myJobID = bdtWS.SubmitImportJob("myUser", "myClient",
"myPassword",

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 24 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

"myJobName", <UserAssets[] UserAssets>, <Portfolio[] Portfolio>,


<PortfolioTree[] PortfolioTree>, <AssetAttribute[] AssetAttribute>,
<CurveAttribute[] CurveAttribute>, <Barra PortfolioManagerOverrides[]
Barra PortfolioManagerOverrides>, <Barra PortfolioManagerCases[]
Barra PortfolioManagerCases>,
<ImpliedVolAttribute[] ImpliedVolAttribute>, <SwaptionImpliedVol[]
SwaptionImpliedVolAttribute>, <PortfolioAttribute[]
PortfolioAttribute>,
<MarketScenario[] MarketScenario>, <MarketConditions[]
MarketConditions>,
<DeletePortfolioTransactions[] DeletePortfolioTransactions>,
<PortfolioTransactions[] PortfolioTransactions>);

Note: The following fields are not supported by Barra PortfolioManager; therefore they should be
mandatorily passed as NULL.
PortfolioTree[]
Barra PortfolioManagerOverrides[]
Barra PortfolioManagerCases[]
SwaptionImpliedVolAttribute[]
MarketScenario[]
MarketConditions[]
DeletePortfolioTransactions[]
PortfolioTransactions[]

The elements of a SubmitImportJobRequest, when imported using separate request documents, should
generally be imported in the order in which they are presented in this document:
• User Assets
• Asset Attributes
• Portfolios
• Portfolio Attributes
This ordering is not necessary within an individual SubmitImportJobRequest. The application will
correctly order the elements.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 25 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

UserAssets

Adding Your Own Assets to Barra PortfolioManager


To fix assets rejected during importing and to ensure complete coverage of your portfolios, you can add
your own assets to the Barra PortfolioManager database. Importing your own assets makes them
available to all users in your firm, thus creating a shared universe of securities. You also have the
flexibility, when importing an asset, to control which definition of the asset (yours or Barra’s) will be used
for analysis, should Barra later add coverage for that asset.

Defining Your Assets


These are the ways you can define your own assets so that Barra PortfolioManager can determine their
factor exposures and risk characteristics:
• Terms and conditions—Mostly applicable for fixed income assets. You supply all necessary data
to enable Barra PortfolioManager to carry out asset valuation and pricing.
• Link proxy—Applicable in any case where the asset can be fairly represented by an asset in Barra
PortfolioManager’s existing coverage. You identify an asset in the Barra PortfolioManager
database with attributes similar to your security and specify that as a proxy for your asset.
Notes:
• Proxying provides an approximate representation of an asset, not an exact replica of its
characteristics or risk.
• You can use link proxies for any instrument type that Barra PortfolioManager currently covers;
however, the asset to which you link is restricted to equities, currencies/cash, and cash bonds —
that is, composites, ETFs, derivatives, and other link proxies cannot be used as underliers to a link
proxy. For a list of asset types that you can import, see User Assets Types.
• Proxying provides an approximate representation of an asset, not an exact replica of its
characteristics or risk. While a link proxy is the mechanism you would use to add your own equity
security to Barra PortfolioManager (linking to a comparable asset in the Barra PortfolioManager
database that can serve as a proxy), the use of link proxies is not limited to equities. You can also
use link proxies for any instrument type that Barra PortfolioManager currently covers; however,
the asset to which you link is restricted to equities, currencies/cash, and cash bonds — that is,
composites, ETFs, derivatives, and other link proxies cannot be used as underliers to a link proxy.

Matching IDs Exactly: A Critical Step


When you initially create a user asset, you can assign it one or more identifiers, such as CUSIP, ISIN,
SEDOL, and so on. When you reimport a user asset, you must explicitly supply the same combination of
IDs as when it was created. If the IDs do not match exactly, Barra PortfolioManager cannot update the
existing asset and will treat the new information as belonging to a new asset.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 26 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Importing Your Files in the Correct Order


Because some asset types depend on the existence of other assets (for example, a bond option requires
an underlying bond), you must import your user asset files in a specific order to avoid unnecessary
corrections. Whether you create the files in one import job or across multiple import jobs, you should
order them like this (data within a single SubmitImportJobRequest will be processed in the correct order
by Barra PortfolioManager):
1. Deletions (see Actions)
2. Composites (see Composites)
3. Equity Options (see EquityOptions)
4. Link Proxies (see LinkProxies)
After importing your user assets, you can run a separate import job to import portfolio positions (refer
Positions) and asset data (your own prices, scores, and so on — refer AssetAttribute). The UserAssets
attributes in the following table are required for every asset action or user asset imported with BDT.

Table 2. UserAssets

Attribute Required? Data Type (Length) Description

Owner Y string Enter the user ID of the asset owner

EffectiveStartDate N date Effective start date for the user asset. If not
specified, the value defaults to today’s date.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

To import terms and conditions for user assets, the following steps are required:
1. Import the basic user asset attributes. For example:
UserAssets myAsset = myJob.addNewUserAssets();
myAsset.setOwner("myUser2");
myAsset.setEffectiveStartDate(myCal); // optional

In .NET:
UserAssets myAsset = new UserAssets();
myAsset.Owner = "myUser2";
myAsset.EffectiveStartDate = myDate; // optional

2. Create the attributes for the asset type (Equity Future in this example—refer EquityFutures). For
example:
EquityFuture myEquityFuture = myAsset.addNewquityFuture();
myEquityFuture.setID(“12345678”);
myEquityFuture.setIDType(“CUSIP”);

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 27 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

my EquityFuture. setPriceCurrency(“USD”);
myEquityFuture.setName(“My Equity Future”);
myEquityFuture.setUnderlierID(“654321”);
myEquityFuture.setUnderlierIDtype(“ISIN”);
myEquityFuture.setDeliveryDate(“myCal”);
myEquityFuture.set InstrumentType(“Equity Future”);
loasUserAssets(myAsset”);

In .NET:
EquityFutures myEquityFutures = new EquityFutures();
myEquityFutures.ID = "12345678";
myEquityFutures.IDType = "CUSIP";
myEquityFutures.Name = "My Bond Option";
myBondOption.Priority = AssetPriority.BARRA;
myEquityFutures.UnderlierID = "654321";
myEquityFutures.UnderlierIDType = "ISIN";
myBondOption.PriceCurrency = "USD"; // optional
myEquityFutures.DeliveryDate = myDate;
myEquityFutures.InstrumentType="Equity Future"

Actions
The Actions element is a child element of the UserAssets element that enables you to import asset
actions (e.g., to delete a user asset) for user assets.
To import asset actions, the following steps are required:
1. Import the basic user asset attributes. For example:
UserAssets myAsset = myJob.addNewUserAssets();
myAsset.setOwner("myUser");
myAsset.setEffectiveStartDate(myCal); // optional

In .NET:
UserAssets myAsset = new UserAssets();
myAsset.Owner = "myUser";
myAsset.EffectiveStartDate = myDate; // optional
myAsset.EffectiveStartDateSpecified = true; // required if
EffectiveStartDate is specified

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 28 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

2. Import the asset action (refer AssetAction). For example, to delete an asset with a CUSIP of
12345678:
Actions myActions = myAsset.addNewActions();
AssetAction myAction = myActions.addNewAssetAction();
myAction.setActionType(ActionType.DELETE);
myAction.setID("12345678");
myAction.setIDType("CUSIP");
loadUserAssets(myAsset);

In .NET:
Actions myActions = new Actions();
AssetAction myAction = new AssetAction();
myAction.ActionType = ActionType.DELETE;
myAction.ID = "12345678";
myAction.IDType = "CUSIP";
myAction.Items = new AssetAction[] {myAction};

AssetAction
The AssetAction element is the sole child element of Actions.

Table 3. AssetAction

Attribute Required? Data Type (Length) Description

ActionType Y enum Enter the type of action for the asset.


Acceptable values:
• ActionType.DELETE

ID Y string Specify the Asset ID to be associated with the action


type. You can specify multiple IDs and let Barra
PortfolioManager search.
Barra PortfolioManager automatically adjusts CUSIPs
and SEDOLs, whether you enter them with or without a
check digit. Thus, Barra PortfolioManager automatically
supports 6- or 7-digit SEDOLs and 8- or 9-digit CUSIPs.

IDType Y string Enter the ID Type for the position ID.


If you omit the ID type or leave it blank, Barra
PortfolioManager will search across all ID types in its
database according to your ID priority. (For information
about your ID priority, see Source Priorities.)
For a list of supported ID types, refer Asset ID Types.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 29 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Composites
The Composites element is a child element of the UserAssets element that enables you to import terms
and conditions for composite assets.

Composite
The Composite element is the sole child element of the Composites element.

Table 4. Composite

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the composite. This can be either a


market identifier or your own custom ID. It does not
need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the composite asset.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

PortfolioName Y string Enter the name of the portfolio on which the composite
is based. The portfolio must already exist in Barra
PortfolioManager.

Owner Y string Enter the owner of the underlying portfolio. If the


portfolio is a Barra- supplied index portfolio, enter
SYSTEM.

DefaultPriceCurrency N string (3) Enter the ISO code for the currency in which you want
the price defined.
Default = USD.
For a list of currency codes, refer Country and Currency
Codes.

PriceType N enum Indicate how the application should determine the


market value of the composite.
Acceptable values:
• CompositePriceType.IMPORTED (default)
• CompositePriceType.PORTFOLIO_VALUE
Notes:
• If PriceType set to “PORTFOLIO_VALUE,” then
DefaultContractSize for the position is ignored and
set to 1.
• A composite with a PriceType of

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 30 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


“PORTFOLIO_VALUE” cannot be included in a
portfolio with a Storage Type of “Market Value.”

DefaultPrice N double Enter the price you want for the composite.
Default = 100.

DefaultContractSize N double Enter the contract size of the composite. Barra


PortfolioManager calculates the market value of each
position as price x holdings x contract size.
Default = 1.
Note: If PriceType set to “PORTFOLIO_VALUE,” then
DefaultContractSize for the position is ignored and set
to 1.

Hedge N boolean Indicates if the composite is to be currency hedged. If


set to “true,” and if both HedgeCurrency and
HedgePercentage are not specified, then the composite
will inherit the hedging of the underlying portfolio.
Acceptable values:
• true
• false (default)

HedgeCurrency N string If this is a currency-hedged position, enter the ISO code


for the currency in which you want the hedging defined.
If Hedge is set to “true,” and if both HedgeCurrency and
HedgePercentage are not specified, then the composite
will inherit the hedging of the underlying portfolio.
For a list of currency codes, refer Country and Currency
Codes.

HedgePercentage N double If this is a currency-hedged position, enter the


percentage of the currency position to be hedged. If set
to 0, and if HedgeCurrency is specified and Hedge is
“true,” then Barra PortfolioManager will unhedge any
previous hedge. If Hedge is set to “true,” and if both
HedgeCurrency and HedgePercentage are not specified,
then the composite will inherit the hedging of the
underlying portfolio. If Hedge is “true” and
HedgeCurrency is specified, then the composite will be
rejected unless Hedge Percentage is specified.
For .NET, refer Optional Fields in .NET.

EquityOptions
The EquityOptions element is a child element of the UserAssets element that enables you to import terms
and conditions for equity options. In addition to EquityOption data, you may be required to import
ExerciseSchedule and ImpliedVolatilitySchedule data. For a European-style barrier option, you must also
import EquityBarrierOptionAttributes data. For European-style Asian options, you must also import
AsianOptionAttributes data and possibly AsianOptionPricePool data.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 31 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

EquityOption
The EquityOption element is a child element of the EquityOptions element that enables you to import
basic information about an equity option.

Table 5. EquityOption

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity option. This can be


either a market identifier or your own custom ID. It does
not need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the equity option.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

UnderlierID Y string Enter the ID of the underlying equity.

UnderlierIDType Y string Enter the ID type of the underlying equity.

PriceCurrency N string (3) Enter the ISO code for the currency in which you want
the price defined.
Default = USD
For a list of currency codes, refer Country and Currency
Codes.

OptionType Y enum Acceptable values:


• OptionType.CALL
• OptionType.PUT

OptionStyle Y enum Acceptable values:


• OptionStyle.AMERICAN
• OptionStyle.EUROPEAN
• OptionStyle.BERMUDAN
Notes:
• For Bermudan-style options, you must also enter
ExerciseSchedule data (refer “ExerciseSchedule”).
• For European-style Asian options, you must also
import “AsianOptionAttributes” data and possibly
“AsianOptionPricePool” data.

StrikePrice Y double Enter the strike price in the same currency as the
underlying equity. [Must match Price in the Exercise

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 32 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


Schedule for Bermudan options.]

ExpirationDate Y date Contract expiration date. Refer Date Format.


[For Bermudan options (which require you to also enter
ExerciseSchedule data (refer “ExerciseSchedule”), the
expiration date is ignored.]

ContractSize N double Enter the contract size of the equity option.


Default = 100.

DividendYield N double Enter as a percentage (where 3 = 3%).


For .NET, refer Optional Fields in .NET.

ImpliedVolatility N double Enter the implied volatility of the underlying equity.


(Enter the percent volatility as a decimal, where .03 =
3%). Cannot exceed 2.0. If you specify a value, you may
also enter ImpliedVolatilitySchedule data (refer
“ImpliedVolatilitySchedule”).
For .NET, refer Optional Fields in .NET.

IVExposure N boolean Indicates if an equity index option is exposed to an


implied volatility factor. Acceptable values:
• true
• false (default)
Equity index options are now exposed to VIX factors
only when they have one of the following underliers:

Index BARRAID

EURO STOXX 50 STXE50D

S & P 500 SAP500D

S & P/ASX 200 SAP200D

Swiss Market Mid SMID


Caps Index (SMIM)

DAX DAXD

MINI IBEX-35 IBEX35D

FTSE 100 FT100D

HANG SENG HSHSI

NIKKEI 225 NK225D

KOSPI 200 INDEXKO SP200D

Hang Seng China HSCINDXD


Enterprises

NASDAQ-100 NASD100

Russell 2000 FRR2CPF

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 33 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

You may set this column to “true” only if the equity


index option has one of the above underliers. Barra
PortfolioManager will then compute the exposure to the
Equity Implied Volatility factor.
For the US market, exposures are based on the SAP500
index. For the UK market, exposures are based on the
EURO STOXX index. If the underlying index is not one of
the above, no matter what value “IV Exposure” has, it
will not have EVX exposure.
Also, if the “*_PRC”, “*_NET” and “*_GRS” underlier
versions of a supported index are used, the IV exposure
is not computed.
If set to “false”, Barra PortfolioManager will not
compute the IV exposure.

ExerciseSchedule
The ExerciseSchedule element is a child element of the EquityOptions element that enables you to import
exercise schedules for Bermudan equity options.

Table 6. ExerciseSchedule

Attribute Required? Data Type (Length) Description

StartDate Y date The exercise date on which the Bermudan option can
be called. (Exercise schedules are used only with
“Bermudan” equity options.)
Refer Date Format.

Price Y double The strike price of the option.


[Must match the StrikePrice of the Equity Option.]

ID Y string Enter the asset ID of the equity option.

IDType Y string Enter the ID Type of the equity option.

ImpliedVolatilitySchedule
The ImpliedVolatilitySchedule element is a child element of the EquityOptions, EquityIndexFutureOptions,
FXOptions, FXFutureOptions, EuroDollarFutureOptions, and CommodityFutureOptions elements that
enables you to import an implied volatility schedule for the underlying instrument of the option.

Table 7. ImpliedVolatilitySchedule

Attribute Required? Data Type (Length) Description

StartDate Y date The start date of the implied volatility.


Refer Date Format.

ImpliedVolatility Y double Enter the percent implied volatility of the underlying

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 34 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


instrument as a decimal (where .03 = 3%). Cannot
exceed 2.0.

ID Y string Enter the asset ID of the equity option.

IDType Y string Enter the ID Type of the equity option.


For acceptable types, see Asset ID Types.

AsianOptionAttributes
The AsianOptionAttributes element is a child element of the EquityOptions, EquityIndexFutureOptions,
FXOptions, EuroDollarFutureOptions, and CommodityFutureOptions elements that enables you to import
Asian option attributes for European-style options (other than barrier options).

Table 8. AsianOptionAttributes

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity option.

IDType Y string Enter the ID Type of the equity option.


For acceptable types, see Asset ID Types.

AverageType Y enum Type of Asian option.


Acceptable values:
• AverageType.PRICE
• AverageType.STRIKE

AverageStart N date The date on which the price averaging begins. It


must be before the option expires. It must be
specified when price pool dates are not specified.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

AverageEnd N date The date on which the price averaging ends.


Refer Date Format.
For .NET, refer Optional Fields in .NET.

NumberOfSamplingPoints N int The number of equally spaced sampling points used


during the price averaging period. It must be greater
than or equal to 1, and less than the number of
business days between the AverageStart and
AverageEnd dates.
Notes:
• This must be specified when price pool dates
are not specified.
• If price pool dates are specified, this value is
ignored.
For .NET, refer Optional Fields in .NET.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 35 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

AsianOptionPricePool
The AsianOptionPricePool element is a child element of the EquityOptions, EquityIndexFutureOptions,
FXOptions, EuroDollarFutureOptions, and CommodityFutureOptions elements, and enables you to specify
Asian option price pool dates, when an averaging period is not specified using the AsianOptionAttributes
element.

Table 9. AsianOptionPricePool

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity option.

IDType Y string Enter the ID Type of the equity option. For acceptable
types, see Asset ID Types.

PriceDate Y date The date of a price in the Asian option price pool. It
must be greater than or equal to the option start date,
and less than or equal to the option end date.
Refer Date Format.

EquityBarrierOptionAttributes
The EquityBarrierOptionAttributes element is a child element of the EquityOptions element that enables
you to import barrier attributes for European-style equity options.

Table 10. EquityBarrierOptionAttributes

Attribute Required? Data Type (Length) Description

BarrierType Y enum Type of barrier option. Acceptable values:


• BarrierType.UP_AND_IN
• BarrierType.DOWN_AND_IN
• BarrierType.UP_AND_OUT
• BarrierType.DOWN_AND_OUT

BarrierLevel Y double Enter the barrier of the option.

BarrierStartDate Y date The date on which the barrier option begins.


Refer Date Format.

BarrierEndDate Y date The date on which the barrier option ends.


Refer Date Format.

HitDate N date The date on which the option hit its barrier.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

Rebate Y double Enter the rebate amount, if applicable.

RebateAtEnd Y boolean Indicates if the option pays a rebate if the barrier is not
hit.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 36 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


Acceptable values:
• true
• false

ID Y string Enter the asset ID of the barrier option.

IDType Y string Enter the ID type of the barrier option.

EquityFutures
The EquityFutures element is a child element of the UserAssets element that enables you to import terms
and conditions for equity futures, equity index futures, and commodity index futures.
Note: You are required to import your own prices to model futures (or options on futures) in Barra
PortfolioManager.

EquityFuture
The EquityFuture element is the sole child element of the EquityFutures element.

Table 11. EquityFuture

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity future, equity index


future (see EIFs in Barra PortfolioManager), or
commodity index future. This can be either a market
identifier or your own custom ID. It does not need to
conform to the ID type’s usual format.

IDType Y string Enter the ID Type. For acceptable types, see Asset ID
Types.

Name Y string (64) Specify the name of the equity future, equity index
future, or commodity index future.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

DeliveryDate Y date Final settlement date of the contract.


Refer Date Format.

ContractSize N double Enter the contract size of the equity future, equity index
future, or commodity index future.
Default = 100.

UnderlierID Y string Enter the ID of the underlying equity, equity index, or


commodity index. The equity underlier can be an equity

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 37 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


security, ADR, GDR, or link proxy to equity.

UnderlierIDType Y string Enter the ID type of the underlying equity, equity index,
or commodity index.

PriceCurrency Y string (3) Enter the ISO code for the currency in which you want
the price defined.
For a list of currency codes, refer Country and Currency
Codes.

InstrumentType Y string Acceptable values:


• Equity Future
• Equity Index Future
• Commodity Index Future

StartDate N date Start date for the equity future, equity index future, or
commodity index future contract.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

FXFutures
The FXFutures element is a child element of the UserAssets element that enables you to import terms
and conditions for foreign exchange futures.

FXFuture
The FXFuture element is the sole child element of the FXFutures element.

Table 12. FXFuture

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the FX future. This can be either a


market identifier or your own custom ID. It does not
need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the FX future.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use. Acceptable
values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

DeliveryDate Y date Enter the delivery date for the future.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 38 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


Refer Date Format.

ContractSize N double Enter the contract size of the FX future. This is the
receive amount of the future specified in receive
currency.
Default = 100.

StartDate N date The start date of the future contract.


Refer Date Format. For .NET, refer Optional Fields in
.NET.

QuoteCurrency Y string (3) Enter the ISO code for the currency to be paid.
Currencies without any current or historical LIBOR rates
are rejected during import.
For a list of currency codes, refer Country and Currency
Codes.

Currency Y string (3) Enter the ISO code for the currency to be received.
Currencies without any current or historical LIBOR rates
are rejected during import.
For a list of currency codes, refer Country and Currency
Codes.

Country N string (3) Enter the ISO code of the country (for grouping
purposes).
For a list of country codes, refer Country and Currency
Codes.

FXForwards
The FXForwards element is a child element of the UserAssets element that enables you to import terms
and conditions for foreign exchange forwards.

FXForward
The FXForward element is the sole child element of the FXForwards element.

Table 13. FXForward

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the FX forward. This can be either


a market identifier or your own custom ID. It does not
need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the FX forward.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 39 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


PortfolioManager which definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

DeliveryDate Y date Enter the delivery date for the forward.


Refer Date Format.

ContractSize N double Enter the contract size of the FX forward. This is the
receive amount of the forward specified in receive
currency.
Default = 100.

StartDate N date The start date of the forward contract.


Refer Date Format. For .NET, refer Optional Fields in
.NET.

ExchangeRate Y double Enter the contract exchange rate. This is the future
price of the receive currency in terms of the pay
currency.

QuoteCurrency Y string (3) Enter the ISO code for the currency to be paid.
Currencies without any current or historical LIBOR rates
are rejected during import.
For a list of currency codes, refer Country and Currency
Codes.

Currency Y string (3) Enter the ISO code for the currency to be received.
Currencies without any current or historical LIBOR rates
are rejected during import.
For a list of currency codes, refer Country and Currency
Codes.

Country N string (3) Enter the ISO code of the country (for grouping
purposes).
For a list of country codes, refer Country and Currency
Codes.

FXOptions
The FXOptions element is a child element of the UserAssets element that enables you to import terms
and conditions for foreign exchange options.

FXOption
The FXOption element is a child element of the FXOptions element that enables you to import terms and
conditions for foreign exchange options. For a European-style barrier option, you must also import
FXBarrierOptionAttributes data. For Bermudan options, you must also import FXOptionExerciseSchedule
data. To import an implied volatility schedule for the underlying FX forward, you must use

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 40 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ImpliedVolatilitySchedule. For European-style Asian options, you must also import AsianOptionAttributes
data and possibly AsianOptionPricePool data.

Table 14. FXOption

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the FX option. This can be


either a market identifier or your own custom ID. It
does not need to conform to the ID type’s usual
format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the FX option.

AssetPriority N enum If a position corresponds to both a user-defined


asset and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use.
Acceptable value:
• AssetPriority.BARRA (default)

QuoteCurrency Y string (3) Enter the ISO code for the currency to be paid.
Currencies without any current or historical LIBOR
rates are rejected during import.
For a list of currency codes, refer Country and
Currency Codes.

Currency Y string (3) Enter the ISO code for the currency to be received.
Currencies without any current or historical LIBOR
rates are rejected during import.
For a list of currency codes, refer Country and
Currency Codes.

StartDate N date The start date of the option contract. Required for
import, but not used by Barra PortfolioManager.)
Refer Date Format.

ExpirationDate Y date Contract expiration date. Refer Date Format. For


Bermudan options that require you to also enter
FXOptionExerciseSchedule data (refer
“FXOptionExerciseSchedule”), the expiration date is
ignored.

ContractSize Y double Enter the notional amount of the FX option,


expressed in the currency to be received (call) or
paid (put).

StrikePrice Y double Enter the strike in terms of units of QuoteCurrency


per one unit of Currency.

ImpliedVolatility Y double Enter the implied volatility of the underlying FX


forward. (Enter the percent volatility as a decimal,
where .03 = 3%). Cannot exceed 2.0. If you specify a
value, you may also enter ImpliedVolatilitySchedule

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 41 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


data (refer “ImpliedVolatilitySchedule”).

For .NET, refer Optional Fields in .NET.

OptionType N double Acceptable values:


• OptionType.CALL
• OptionType.PUT
• OptionType.P
• OptionType.C

OptionStyle Y enum Acceptable values:


• OptionStyle.AMERICAN
• OptionStyle.EUROPEAN
• OptionStyle.BERMUDAN
Notes:
• For Bermudan-style options, you must assails
enter FXOptionExerciseSchedule data (refer
“FXOptionExerciseSchedule”).
• For European-style Asian options, you must
also import “AsianOptionAttributes” data and
possibly “AsianOptionPricePool” data.

FXBarrierOptionAttributes
The FXBarrierOptionAttributes element is a child element of the FXOptions element that enables you to
import barrier attributes for European-style foreign exchange options.

Table 15. FXBarrierOptionAttributes

Attribute Required? Data Type (Length) Description

BarrierType Y enum Type of barrier option. Acceptable values:


• BarrierType.UP_AND_IN
• BarrierType.DOWN_AND_IN
• BarrierType.UP_AND_OUT
• BarrierType.DOWN_AND_OUT

BarrierLevel Y double Enter the barrier of the option, expressed in units of pay
currency per unit of receive currency.

HitDate N date The date on which the barrier was hit.


Refer Date Format.
For .NET, refer Optional Fields in .NET.

BarrierStartDate Y date The date on which the barrier option begins.


Refer Date Format.
For .NET, refer Optional Fields in .NET.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 42 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

BarrierEndDate Y date The date on which the barrier option ends.


Refer Date Format.
For .NET, refer Optional Fields in .NET.

Rebate Y double Enter the rebate amount in receive currency, if


applicable.

RebateAtEnd Y boolean Indicates if the option pays a rebate if the barrier is not
hit.
Acceptable values:
• true
• false

ID Y string Enter the asset ID of the barrier option.

IDType Y string Enter the ID Type of the barrier option.

FXOptionExerciseSchedule
The FXExerciseSchedule element is a child element of the FXOptions element that enables you to import
exercise schedules for Bermudan FX options.

Table 16. FXOptionExerciseSchedule

Attribute Required? Data Type (Length) Description

StartDate Y date The exercise date on which the Bermudan option can
be called. (FX exercise schedules are used only with
“Bermudan” FX options.)
Refer Date Format.

Price Y double Enter the strike price on the specified exercise date
(StartDate).

ID Y string Enter the asset ID of the barrier option.

IDType Y string Enter the ID Type of the barrier option.

FXFutureOptions
The FXFutureOptions element is a child element of the UserAssets element that enables you to import
terms and conditions for foreign exchange future options.

FXFutureOption
The FXFutureOption element is a child element of the FXFutureOptions element that enables you to
import terms and conditions for foreign exchange future options. To import an implied volatility schedule
for the underlying FX future, you must use ImpliedVolatilitySchedule.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 43 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 17. FXFutureOption

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the FX future option. This can be


either a market identifier or your own custom ID. It
does not need to conform to the ID type’s usual
format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the FX future option.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use. Acceptable
value:
• AssetPriority.BARRA (default)

QuoteCurrency Y string (3) Enter the ISO code for the currency to be paid.
Currencies without any current or historical LIBOR
rates are rejected during import.
For a list of currency codes, refer Country and
Currency Codes.

Currency Y string (3) Enter the ISO code for the currency to be received.
Currencies without any current or historical LIBOR
rates are rejected during import.
For a list of currency codes, refer Country and
Currency Codes.

StartDate N date The start date of the option contract. (Required for
import, but not used by Barra PortfolioManager.)
Refer Date Format.

ExpirationDate Y date Contract expiration date.


Refer Date Format.

DeliveryDate Y date The delivery date or last trade date of the FX future
option. (Required for import, but not used by Barra
PortfolioManager.)
Refer Date Format.

ContractSize Y double Enter the notional amount of the FX future option,


expressed in the currency to be received (call) or paid
(put).

StrikePrice Y double Enter the strike in terms of units of QuoteCurrency


per one unit of Currency.

ImpliedVolatility Y double Enter the implied volatility of the underlying FX future.


(Enter the percent volatility as a decimal, where .03 =
3%). Cannot exceed 2.0. If you specify a value, you
may also enter ImpliedVolatilitySchedule data (refer
“ImpliedVolatilitySchedule”).

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 44 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

For .NET, refer Optional Fields in .NET.

OptionType N double Acceptable values:


• OptionType.CALL
• OptionType.PUT

OptionStyle Y enum Acceptable values:


• OptionStyle.AMERICAN
• OptionStyle.EUROPEAN

LinkProxies
The LinkProxies element is a child element of the UserAssets element that enables you to import terms
and conditions for link proxies, including TBA mortgage-backed securities.
Note: The asset to which you link is restricted to equities, currencies/cash, and cash bonds — that is,
composites, ETFs, derivatives, and other link proxies cannot be used as underliers to a link proxy. For
currencies, the Underlying ID is an ISO currency code. Term deposits use a special Underlying ID. A
special Underlying ID is also used for TBA MBS.

LinkProxy
The LinkProxy element is the sole child element of the LinkProxies element.

Table 18. LinkProxy

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the asset to be proxied. This can


be either a market identifier or your own custom ID. It
does not need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the asset to be proxied.

AssetPriority N enum If a position in the asset to be proxied corresponds to


both a user-defined asset and a Barra asset, the
AssetPriority tells Barra PortfolioManager which
definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

UnderlierID Y string Enter the ID of the underlying proxy asset in the Barra
PortfolioManager database you are linking to as a
proxy. The asset to which you link is restricted to
equities, currencies/cash, and cash bonds — that is,

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 45 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


composites, ETFs, derivatives, and other link proxies
cannot be used as underliers to a link proxy.
Notes:
• Enter the 3-letter ISO code of the currency in the
Barra PortfolioManager database you are linking to
as a proxy. Codes are listed in Country and
Currency Codes.
• Term Deposit Asset IDs in Barra PortfolioManager:
The term deposits to which you link use synthetic
asset IDs (assigned by the user who initially added
the assets) that have these parts, so Barra
PortfolioManager can value the term deposit and
calculate its exposure:
− @ sign (tells Barra PortfolioManager that
it is a term deposit)

− 3-letter ISO currency code. Refer Country


and Currency Codes. (Note: For term
deposits using the real instead of nominal
term structure, Barra PortfolioManager
supports only AUD, BRL, CAD, EUR, GBP,
JPY, NZD, SEK, USD, ZAR — for nominal
term structures, any supported currency
may be used.)

− Explicit (E) or implicit (I) currency


exposure

− Static Maturity Date (in yyyymmdd


format); or Rolling Maturity Date, specified
in numbers of months (1-11) or years (1 or
greater), such as 10M for ten months or
7Y for seven years
For example:
• @EUREC20040930 is term deposit (@) in euros
(EUR) with an explicit exposure (E) valued using the
Treasury+Swap curve (C) maturing on September
30, 2004 (20040930).
• @CADIG6M is rolling six-month term deposit in
Canadian dollars with an implicit currency
exposure valued using the Treasury curve.
• @GBPER1Y is a rolling one-year term deposit in
British pounds with an explicit currency exposure
valued using the real term structure.

UnderlierIDType Y string Enter the ID type of the underlying proxy asset.

PriceCurrency Y string (3) Enter the ISO code for the currency in which you want
the price defined. [Ignore for Term Deposits].
Default: USD

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 46 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


For a list of currency codes, refer Country and Currency
Codes.

ContractsForDifference
The ContractsForDifference element is a child element of the UserAssets element that enables you to
import terms and conditions for contracts for difference.

ContractForDifference
The ContractForDifference element is the sole child element of the ContractsForDifference element.

Table 19. ContractForDifference

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the contract for difference. This


can be either a market identifier or your own custom ID.
It does not need to conform to the ID type’s usual
format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the contract for difference.

AssetPriority N enum If a position in the contract for difference corresponds


to both a user-defined asset and a Barra asset, the
AssetPriority tells Barra PortfolioManager which
definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

UnderlierID Y string Enter the ID of the underlying asset for the contract for
difference.

UnderlierIDType Y string Enter the ID type of the underlying asset for the contract
for difference.

PriceCurrency N string (3) Enter the ISO code for the currency in which you want
the price defined.
Default = USD
For a list of currency codes, refer Country and Currency
Codes.

StartDate N date The start date of the contract for difference. Refer Date
Format.
For .NET, refer Optional Fields in .NET.

EndDate N date The end date of the contract for difference. Refer Date
Format.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 47 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


For .NET, refer Optional Fields in .NET.

ContractSize N double Enter the contract size of the contract for difference,
expressed in terms of the number of shares of the
underlying.
Default = 1.

EquityIndexFutureOptions
The EquityIndexFutureOptions element is a child element of the UserAssets element that enables you to
import terms and conditions for equity index future options.
Note: You are required to import your own prices to model futures (or options on futures) in Barra
PortfolioManager.

EquityIndexFutureOption
The EquityIndexFutureOption element is a child element of the EquityIndexFutureOptions element that
enables you to import information about an equity index future option. To import an implied volatility
schedule for the underlying equity future or equity index future, you must use ImpliedVolatilitySchedule.
For European-style Asian options, you must also import AsianOptionAttributes data and possibly
AsianOptionPricePool data.

Table 20. EquityIndexFutureOption

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity index future option. This
can be either a market identifier or your own custom ID.
It does not need to conform to the ID type’s usual
format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the equity index future option.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use.
Acceptable values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

UnderlierID Y string Enter the ID of the underlying equity future or equity


index future. See https://support.msci.com/barra-
portfoliomanager/eifs.

UnderlierIDType Y string Enter the ID type of the underlying equity future or


equity index future.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 48 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

ExpirationDate Y date Contract expiration date.


Refer Date Format.

OptionType Y string Acceptable values:


• OptionType.CALL
• OptionType.PUT

OptionStyle Y string Acceptable values:


• OptionStyle.AMERICAN
• OptionStyle.EUROPEAN
Note: For European-style Asian options, you must also
import AsianOptionAttributes data and possibly
AsianOptionPricePool data.

StrikePrice Y double Enter the strike price in the same currency as the
underlying equity index future.

ExpirationDate Y date Contract expiration date.


Refer Date Format.

ContractSize N double Enter the contract size of the equity index future option.
Default = 100.

ImpliedVolatility Y double Enter the implied volatility of the underlying equity index
future. (Enter the percent volatility as a decimal, where
.03 = 3%). Cannot exceed 2.0.
For .NET, refer Optional Fields in .NET.

StartDate N date Contract start date.


Refer Date Format.
For .NET, refer Optional Fields in .NET.

Country N string (3) Enter the ISO code of the country in which the equity
index future option was issued.
For a list of country codes, refer Country and Currency
Codes.

EquityClaims
The EquityClaims element is a child element of the UserAssets element that enables you to import terms
and conditions for equity claims.

EquityClaim
The EquityClaim element is the sole child element of the EquityClaims element that enables you to import
information about an equity claim.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 49 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 21. EquityClaim

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity claim. This can be either
a market identifier or your own custom ID. It does not
need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the equity claim.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use. Acceptable
values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

UnderlierID Y string Enter the ID of the underlying equity. The underlying can
be only an equity or link proxy for an equity. Composite
assets are not permitted, even if they hold only equity
assets.

UnderlierIDType Y string Enter the ID type of the underlying equity.

RedemptionPrice Y double The price at which the equity can be claimed.

RedemptionDate Y date Expiration date of the equity claim.


Refer Date Format.

ExRightDate Y date The date from which the equity trades without the
claim. The equity price is the diluted price from this
date forward.
Refer Date Format.

ConversionRatio N double Conversion ratio.


For .NET, refer Optional Fields in .NET.

EquityRuleBasedProxies
The EquityRuleBasedProxies element is a child element of the UserAssets element that enables you to
import terms and conditions for equity proxies.
Note: Equity asset exposures are subject to an aging rule in Barra PortfolioManager and will expire after
sixty (60) days. The user must reload equity proxy rules more frequently than this interval in order to
refresh their exposures; otherwise, the system cannot evaluate these assets.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 50 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

EquityRuleBasedProxy
The EquityRuleBasedProxy element is a child element of the EquityRuleBasedProxies element that
enables you to import basic information about an equity proxy. The user will also need to import data for
EquityProxyMarketDataSchedule as well as data for EquityProxyModelIndustry.

Table 22. EquityRuleBasedProxy

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity rule-based proxy. This


can be either a market identifier or your own custom ID.
It does not need to conform to the ID type’s usual
format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the equity rule-based proxy.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use. Acceptable
values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

GICSCode N string Enter the full, 8-digit code for the GICS® (Global
Industry Classification System) to which the equity rule-
based proxy belongs. The S&P/MSCI Barra GICS
scheme uses an 8-digit code in which each of the four
2-digit pairs represent Sector, Industry Group, Industry,
and Sub-Industry, from left to right respectively. For
more information on GICS, see
https://www.msci.com/gics.

Currency Y string (3) Enter the ISO code for the currency to which the equity
rule-based proxy is exposed.
For a list of currency codes, refer Country and Currency
Codes.

Country Y string (3) Enter the ISO code of the country in which the equity
rule-based proxy was issued.
For a list of country codes, refer Country and Currency
Codes.

Industry N string Not used

Traded Y boolean Indicate if the equity rule-based proxy is traded.


Acceptable values:
• true (publicly traded security that is not covered by
Barra PortfolioManager)
• false (private equity holding that is not traded)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 51 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

EquityProxyMarketDataSchedule
The EquityProxyMarketDataSchedule element is a child element of the EquityRuleBasedProxies element
that enables you to import a schedule of market data for an equity rule-based proxy.
Note: There is no direct valuation of equity rule-based proxies. Therefore, the user must also import the
asset price using AssetAttribute.

Table 23. EquityProxyMarketDataSchedule

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity rule-based proxy.

IDType Y string Enter the ID Type of the equity rule-based proxy.

StartDate Y date Enter the data date for which rules-based proxy
exposure will be computed. Barra
PortfolioManager uses the risk model data
available in the system as of this analysis date.
Refer Date Format.

MarketCapitalization Y double Enter the market capitalization or market value of


the equity asset being modeled, specified in the
currency of the equity rule-based proxy.

SpecificRiskMultiplier N double Enter the specific risk multiplier for the equity rule-
based proxy. This value is used as scalar of the
cap-weighted average of the specific risk
exposures of all assets covered by the risk model
that are not in the estimation universe and that
share the same industry classification.
If both the SpecificRiskLevel and
SpecificRiskMultiplier are provided, Barra
PortfolioManager applies the multiplier to the
provided specific risk level.
Acceptable values: 0-100. If not specified, Barra
PortfolioManager sets the value to 1.
For .NET, refer Optional Fields in .NET.

SpecificRiskLevel N double Enter the specific risk level for the equity rule-
based proxy. This value is the absolution specific
risk level in terms of standard deviation.
If both the SpecificRiskLevel and
SpecificRiskMultiplier are provided, Barra
PortfolioManager applies the multiplier to the
provided specific risk level.
Acceptable values: 0-100. If not specified, Barra
PortfolioManager sets the value to the cap-
weighted average of the specific risk exposures of
all assets covered by the risk model that are not in
the estimation universe and that share the same
industry classification.
For .NET, refer Optional Fields in .NET.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 52 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

ExposureScalar N double Barra provides an exposure level, but users may


enter their own exposure scalar for the holding to
scale (multiply) the Barra-provided value for
exposure. Acceptable values: 0-100. If not
specified, Barra PortfolioManager sets value to 1.
For .NET, refer Optional Fields in .NET.

EquityProxyModelIndustry
The EquityProxyModelIndustry element is a child element of the EquityRuleBasedProxies element that
enables users to import an industry designation for an equity rule-based proxy.

Table 24. EquityProxyModelIndustry

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the equity rule-based proxy.

IDType Y string Enter the ID Type of the equity rule-based proxy.

ModelClass* Y string Enter the model name of the industry used for the
equity rule-based proxy.

Industry* Y string Enter the industry to which the equity rule-based proxy
belongs. For industries in an equity model, refer the
model datasheet.

* Barra PortfolioManager determines which model class and industry is specified and which risk model is
selected in the user’s analysis.

Certificates
The Certificates element is a child element of the UserAssets element that enables you to import terms
and conditions for certificates and trackers.

Certificate
The Certificate element is a child element of the Certificates element that enables you to import basic
information about a certificate or tracker. The user must also import data for
CerificateUnderlyingInstruments. Additionally, unless CertificateType is “STANDARD,” the user must also
import data for either ReverseCertificate, BonusCertificate, ReverseBonusCertificate, TwinWinCertificate,
OutperformanceCertificate, AirbagCertificate, DiscountCertificate, CapitalProtectedCertificate,
ReverseConvertibleCertificate, or BarrierRangeReverseConvertibleCertificate.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 53 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 25. Certificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. This can


be either a market identifier or your own custom ID. It
does not need to conform to the ID type’s usual format.

IDType Y string Enter the ID Type.


For acceptable types, see Asset ID Types.

Name Y string (64) Specify the name of the certificate or tracker.

AssetPriority N enum If a position corresponds to both a user-defined asset


and a Barra asset, the AssetPriority tells Barra
PortfolioManager which definition to use. Acceptable
values:
• AssetPriority.BARRA (default)
• AssetPriority.USER

StartDate Y date Certificate or tracker start date.


Refer Date Format.

ExpirationDate Y date Certificate or tracker expiration date.


Refer Date Format.

ContractSize Y double The notional amount of the certificate or tracker.

Currency Y string (3) Enter the ISO code for the currency to which the equity
rule-based proxy is exposed.
For a list of currency codes, refer Country and Currency
Codes.

CertificateType Y enum Certificate type. Acceptable values:


• CertificateType.STANDARD
• CertificateType.REVERSE
• CertificateType.OUTPERFORMANCE
• CertificateType.DISCOUNT
• CertificateType.BONUS
• CertificateType.REVERSE_BONUS
• CertificateType.TWIN_WIN
• CertificateType.AIRBAG
• CertificateType.CAPITAL_PROTECTION
• CertificateType.REVERSE_CONVERT
• CertificateType.BARRIER_RANGE_REVERSE_CONV
ERT
Note: This selection will determine if the user must also
enter data for the specific certificate type, as described
on the following pages.

ConversionRatio N double Conversion ratio.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 54 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


For .NET, refer Optional Fields in .NET.

ReturnType Y enum Determines whether the payoff is defined in terms of


the price or the return of the underlying over the term of
the certificate. Also determines the interpretation of
each certificate parameter (see tables below for
details). Based upon the terms and conditions of the
certificate, it may be convenient to represent the
instrument with one return type or the other.
Acceptable values:
• ReturnType.NO_RETURN — the certificate payoff is
expressed in terms of weighted prices of the
underlying, i.e., Additional certificate parameters
(e.g., bonus level, barrier, cap) are defined on an
absolute price scale.
𝑁𝑁 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎

𝑆𝑆 = � 𝑤𝑤𝑖𝑖 𝑆𝑆𝑖𝑖
𝑖𝑖=1

• ReturnType.WEIGHTED_RETURN — certificate
payoff is expressed in terms of a basket of returns
of the individual underlying, i.e., Additional
certificate parameters are defined as multiples of
RS0, i.e., the weighted return at the start date of the
certificate.
𝑁𝑁 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎
𝑆𝑆𝑖𝑖
𝑅𝑅𝑅𝑅 = � 𝑤𝑤𝑖𝑖
𝑆𝑆𝑖𝑖.0
𝑖𝑖=1

• ReturnType.BASKET_RETURN — certificate payoff


is expressed in terms of the return of a basket, with
the basket defined as the weighted sum of prices
of the underlying, i.e., Additional certificate
parameters are defined as multiples of RS0, i.e., the
weighted return at the start date of the certificate.
∑𝑁𝑁 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎
𝑖𝑖=1 𝑤𝑤𝑖𝑖 𝑆𝑆𝑖𝑖
𝑅𝑅𝑅𝑅 = 𝑁𝑁 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎
∑𝑖𝑖=1 𝑤𝑤𝑖𝑖 𝑆𝑆𝑖𝑖.0
Note: In the case of a single underlier, Weighted Return
and Basket Return are equivalent.

CerificateUnderlyingInstruments
The CerificateUnderlyingInstruments element is a child element of the Certificates element that enables
you to import information about the underlying instruments of a certificate or tracker.

Table 26. CerificateUnderlyingInstruments

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 55 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

UnderlierID Y string Enter the ID of the underlying instrument.

UnderlierIDType Y string Enter the ID type of the underlying instrument.

Weight Y double The weights of all underlying instruments must sum to


100%.

InitialSharePrice N double Price of the underlying at the certificate Start Date. The
input is used if Start Date is in the past in the following
cases:
• Any certificate type, when the ReturnType is not
equal to “ReturnType.NO_RETURN” (to determine
the return)
• Capital Protection Certificate (to determine the
price level at which protection becomes active)
• Reverse Certificate (only when StrikePrice is not
specified explicitly) In the above cases, if not
provided by the user, the InitialSharePrice will be
computed by Barra PortfolioManager as the
internally available price of the underlying on
StartDate.
For .NET, refer Optional Fields in .NET.

ImpliedVolatility N double The annualized volatility of the underlying used to value


the certificate. Enter in decimal form, e.g., enter 0.2 for
20%.
For .NET, refer Optional Fields in .NET.

ReverseCertificate
The ReverseCertificate element is a child element of the Certificates element that enables you to import
the strike price of a reverse certificate (for use when CertificateType is “REVERSE”).

Table 27. ReverseCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

StrikePrice N double The strike price of the reverse certificate is a positive


number.
• If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency
units; otherwise, it should be specified as a
percentage of RS0.
• If omitted, and if ReturnType equals
ReturnType.NO_RETURN,” then the initial price of
the asset (S0) is used internally to define

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 56 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


StrikePrice as 2*S0.
• If omitted, and if the certificate is return based,
then StrikePrice is internally set equal to 200%.
For .NET, refer Optional Fields in .NET.

BonusCertificate
The BonusCertificate element is a child element of the Certificates element that enables you to import
detailed information for a bonus certificate (for use when CertificateType is “BONUS”).

Table 28. BonusCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

BonusLevel Y double A positive number that expresses the bonus level.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

BarrierLevel Y double Number that specifies the barrier level. Must be lower
than the BonusLevel.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

HitDate N date The date on which the barrier was hit; leave blank if the
barrier has not been hit. If a HitDate is specified, the
BonusLevel is not guaranteed.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

Cap N double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

Participation N double A number, expressed as a percentage, which specifies


the participation rate for the bonus certificate for price
levels above the BonusLevel. If not specified, defaults
to 100.
For .NET, refer Optional Fields in .NET.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 57 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ReverseBonusCertificate
The ReverseBonusCertificate element is a child element of the Certificates element that enables you to
import detailed information for a bonus certificate (for use when CertificateType is “REVERSE_BONUS”).

Table 29. ReverseBonusCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

BonusLevel Y double A positive number that expresses the bonus level.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.

BarrierLevel Y double Number that specifies the barrier level. Must be


greater than the BonusLevel.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.

HitDate N date The date on which the barrier was hit; leave blank if
the barrier has not been hit. If a HitDate is specified,
the BonusLevel is not guaranteed.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

Cap N double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

TwinWinCertificate
The TwinWinCertificate element is a child element of the Certificates element that enables you to import
detailed information for a twin win certificate (for use when CertificateType is “TWIN_WIN”).

Table 30. TwinWinCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 58 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

IDType Y string Enter the ID Type.

StrikePrice Y double The strike price is a positive number.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

BarrierLevel Y double Number that specifies the barrier level. Must be lower
than the StrikePrice.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

HitDate N date The date on which the barrier was hit; leave blank if the
barrier has not been hit. If a HitDate is specified, the
BonusLevel is not guaranteed.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

ParticipationUp N double A number, expressed as a percentage, which specifies


the participation rate for the twin win certificate for
price levels above the strike price. If not specified,
defaults to 100.
For .NET, refer Optional Fields in .NET.

ParticipationDown N double A number, expressed as a percentage, which specifies


the extra participation rate in the bonus payment for
price levels below the strike price. If not specified,
defaults to 0.
For .NET, refer Optional Fields in .NET.

Cap N double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

OutperformanceCertificate
The OutperformanceCertificate element is a child element of the Certificates element that enables you to
import detailed information for an outperformance certificate (for use when CertificateType is
“OUTPERFORMANCE”).

Table 31. OutperformanceCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker.


Must match the ID of the parent Certificate

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 59 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


element.

IDType Y string Enter the ID Type.

StrikePrice Y double The strike price is a positive number.


If ReturnType = “ReturnType.NO_RETURN,”
then it should be specified in the certificate’s
currency units; otherwise, it should be
specified as a percentage of RS0.

Participation Y double A number, expressed as a percentage, which


specifies the upward participation rate for the
outperformance certificate.
For .NET, refer Optional Fields in .NET.

Cap N double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,”
then it should be specified in the certificate’s
currency units; otherwise, it should be
specified as a percentage of RS0.
If not specified, the certificate payoff is not
capped.
For .NET, refer Optional Fields in .NET.

AirbagCertificate
The AirbagCertificate element is a child element of the Certificates element that enables you to import
detailed information for an airbag certificate (for use when CertificateType is “AIRBAG”).

Table 32. AirbagCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

StrikePrice Y double The strike price of the airbag certificate. It is a positive


number. If not specified, defaults to initial price of
asset.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

Protection Y double A number that specifies the protection level for the
airbag certificate. Must be less than the strike price.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 60 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

Participation N double A number, expressed as a percentage, which specifies


the participation rate for the airbag certificate for price
levels above the Strike Price. If not specified, it will
default to 100 in the Barra PortfolioManager
application.
For .NET, refer Optional Fields in .NET.

Cap N double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

DiscountCertificate
The DiscountCertificate element is a child element of the Certificates element that enables you to import
detailed information for a discount certificate (for use when CertificateType is “DISCOUNT”).

Table 33. DiscountCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

Cap Y double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

BarrierLevel N double Number that specifies the barrier level. Must be lower
than the Cap. If BarrierLevel is specified, then the
certificate has extra protection if the price (or return) of
the underlier stays between the BarrierLevel and the
Cap from BarrierStartDate to BarrierEndDate.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of RS0.

HitDate N date The date on which the barrier was hit; leave blank if the
barrier has not been hit. If a HitDate is specified, the
discount certificate turns into a (capped) tracker
certificate.
Refer Date Format.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 61 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


For .NET, refer Optional Fields in .NET.

BarrierStartDate N date Date when monitoring of the barrier level starts. If


omitted and BarrierLevel is specified, it, defaults to the
start date of the certificate. If BarrierLevel is not
specified, this input is not used.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

BarrierEndDate N date Date when monitoring of the barrier level ends. If


omitted and BarrierLevel is specified, it, defaults to the
maturity date of the certificate. If BarrierLevel is not
specified, this input is not used.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

CapitalProtectedCertificate
The CapitalProtectedCertificate element is a child element of the Certificates element that enables you to
import detailed information for a capital-protected certificate (for use when CertificateType is
“CAPITAL_PROTECTION”).

Table 34. CapitalProtectedCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

Protection Y double A number that specifies the protection level for the
capital-protected certificate.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.

Cap Y double The maximum payoff of the certificate.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency units;
otherwise, it should be specified as a percentage of
RS0.
If not specified, the certificate payoff is not capped.
For .NET, refer Optional Fields in .NET.

Participation N double A number, expressed as a percentage, which


specifies the participation rate for the capital-
protected certificate for price levels above the initial
price. If not specified, default value is 100 in the Barra
PortfolioManager application.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 62 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


For .NET, refer Optional Fields in .NET.

ReverseConvertibleCertificate
The ReverseConvertibleCertificate element is a child element of the Certificates element that enables you
to import detailed information for a reverse convertible certificate (for use when CertificateType is
“REVERSE_CONVERT”).

Table 35. ReverseConvertibleCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker. Must


match the ID of the parent Certificate element.

IDType Y string Enter the ID Type.

Coupon N double The coupon rate paid on the reverse convertible


certificate. Enter the coupon in percent (where 3 =
3%).
For .NET, refer Optional Fields in .NET.

FirstPaymentDate N date The date that specifies the first coupon payment. If
not specified, defaults to the maturity date of the
certificate (a single payment at maturity).
Refer Date Format.
For .NET, refer Optional Fields in .NET.

PaymentFrequency N string The coupon payment frequency per year.


Acceptable values:
• 0 (a single payment of the entire coupon at
maturity)
• 1
• 2
• 4

StrikePrice Y double The strike price is a positive number.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency
units; otherwise, it should be specified as a
percentage of RS0.

BarrierLevel Y double Number that specifies the barrier level. Must be


lower than the StrikePrice. If BarrierLevel is
specified, then the certificate has extra protection
if the price (or return) of the underlier stays
between the BarrierLevel and the StrikePrice.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency
units; otherwise, it should be specified as a

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 63 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


percentage of RS0.
If omitted, then the certificate has no extra
protection and is fully exposed to the downside if
the final price (or return) is below the StrikePrice.
For .NET, refer Optional Fields in .NET.

HitDate N date The date on which the barrier was hit; leave blank if
the barrier has not been hit. If a HitDate is
specified, the BonusLevel is not guaranteed.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

BarrierRangeReverseConvertibleCertificate
The BarrierRangeReverseConvertibleCertificate element is a child element of the Certificates element that
enables you to import detailed information for a reverse convertible certificate with a barrier range (for
use when CertificateType is “BARRIER_RANGE_REVERSE_CONVERT”).

Table 36. BarrierRangeReverseConvertibleCertificate

Attribute Required? Data Type (Length) Description

ID Y string Enter the asset ID of the certificate or tracker.


Must match the ID of the parent Certificate
element.

IDType Y string Enter the ID Type.

Coupon N double The coupon rate paid on the reverse convertible


certificate. Enter the coupon in percent (where 3 =
3%).
For .NET, refer Optional Fields in .NET.

FirstPaymentDate N date The date that specifies the first coupon payment.
If not specified, defaults to the maturity date of
the certificate (a single payment at maturity).
Refer Date Format.
For .NET, refer Optional Fields in .NET.

PaymentFrequency N string The coupon payment frequency per year.


Acceptable values:
• 0 (a single payment of the entire coupon at
maturity)
• 1
• 2
• 4

StrikePrice Y double The strike price is a positive number.


If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 64 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


units; otherwise, it should be specified as a
percentage of RS0.

BarrierUp Y double Number that specifies the upper barrier level.


Must be greater than the StrikePrice.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency
units; otherwise, it should be specified as a
percentage of RS0.

BarrierDown Y double Number that specifies the lower barrier level.


Must be lower than the StrikePrice.
If ReturnType = “ReturnType.NO_RETURN,” then it
should be specified in the certificate’s currency
units; otherwise, it should be specified as a
percentage of RS0.

HitDate N date The date on which the barrier was hit; leave blank
if the barrier has not been hit.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

Portfolio
The portfolio element is a child element of the SubmitImportJobRequest element that enables you to
define the basic attributes of your portfolios in Barra PortfolioManager or to delete the specified portfolio.
To import a portfolio, the following steps are required:
1. Import the portfolio attribute. For example:
Portfolio myPf = myJob.addNewPortfolio();
myPf.setPortfolioName("My Portfolio");
myPf.setDescription("My Portfolio Description"); // optional
myPf.setEffectiveStartDate(myCal);
myPf.setOwner("myUser");
myPf.setPortfolioImportType(PortfolioImportType.BY_HOLDINGS);
// myPf.setPortfolioValue(100); // optional
// myPf.setPortfolioCurrency("USD"); // optional
// myPf.setValidate(true); // optional
// myPf.setValidationModel("MAC.L"); // optional
// myPf.setStoreByValue(false); // optional

In .NET:
Portfolio myPf = new Portfolio();
myPf.PortfolioName = "My Portfolio";

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 65 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

// myPf.Description = "My Portfolio Description"; // optional


myPf.EffectiveStartDate = myDate;
myPf.Owner = "myUser";
myPf.PortfolioImportType = PortfolioImportType.BY_HOLDINGS;
// myPf.PortfolioValue = 100; // optional
// myPf.PortfolioValueSpecified = true; // required if PortfolioValue
// is specified
// myPf.PortfolioCurrency = "USD"; // optional
// myPf.Validate = true; // optional
// myPf.ValidateSpecified = true; // required if Validate
// is specified
// myPf.ValidationModel = “MAC.L”; // optional
// myPf.StoreByValue = false; // optional
// myPf.StoreByValueSpecified = true; // required if StoreByValue
// is specified

2. Create the portfolio positions (refer Positions). The following example will load a position in the
asset with a CUSIP of 12345678. Note that the example also references an asset with an ISIN of
123456. The asset priority determines the priority of the asset ID for which a search is conducted.
If an asset that matches the CUSIP does not exist in Barra PortfolioManager, the system will look
for an asset that matches the ISIN.
Positions myPositions = myPf.addNewPositions();
Position myPos = myPositions.addNewPosition();
myPos.setHoldings(100);
// myPos.setWeight(100); // optional
// myPos.setValue(100); // optional

In .NET:
Positions myPositions = new Positions();
Position myPos = new Position();
myPos.Holdings = 100;
myPos.HoldingsSpecified = true;
// myPos.Weight = 100; // optional
// myPos.WeightSpecified = true; // optional
// myPos.Value = 100; // optional
// myPos.ValueSpecified = true; // optional

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 66 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 37. Portfolio

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the short name of your portfolio. The full list of
prohibited characters in portfolio names is as follows:
{ } [ ] ~ ` ‘ # + = : ; <> " / \ | ? * TAB
The following non-alphanumeric characters are
allowed:
. , - _ $ % @ ^ ( ) & SPACE.

Date Y date Enter the effective holdings date. Refer Date Format.

PortfolioOwner Y string Enter the User ID of the portfolio owner.

PortfolioImportType Y enum Acceptable values:


• PortfolioImportType.BY_HOLDINGS
• PortfolioImportType.BY_NOTIONAL
• PortfolioImportType.BY_WEIGHT
• PortfolioImportType.BY_VALUE
• PortfolioImportType.BY_VALUE_AND_HOLDINGS
• PortfolioImportType.BY_VALUE_HOLDINGS_AND_
NOTIONAL
• PortfolioImportType.DELETE (deletes the
specified portfolio)

PortfolioValue N double When you import positions by weight, Barra


PortfolioManager uses a default portfolio value of
100,000,000,000 USD. If you want to specify your own
value, you specify the portfolio value and the currency
for valuation.
For .NET, refer Optional Fields in .NET.

PortfolioCurrency N string (3) When you import positions by weight, Barra


PortfolioManager uses a default portfolio value of
100,000,000,000 USD. If you want to specify your own
value, you specify the portfolio value and the currency
for valuation.
When you import positions by holdings (or value and
holdings), enter the currency perspective you want to
use with this portfolio. For a list of currency codes,
refer Country and Currency Codes.

Validate N boolean Enables users to import holdings either with or without


validation, for the current analysis date plus 1
business day, regardless of whether the portfolio is
imported by shares, market value, or weight. If not
specified, validation is performed.
Acceptable values:
true (recommended setting — performs check during
import to validate the portfolio holdings and
settings)—default setting

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 67 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


false (for faster import — skips portfolio holdings and
settings validation at the time of import)

ValidationModel N string Enter the name of the model to use for the validation.

StoreByValue N boolean Determines the methodology used by Barra


PortfolioManager to store portfolio holdings.
If this value is absent or set to false, then holdings will
be converted (if necessary) and stored as shares. If
present and set to “Yes” then Barra PortfolioManager
will convert from weight (if necessary) and store the
holdings as market value.
Acceptable values:
• true (stores portfolio holdings using market value
— applicable only if the portfolio is imported either
by value or by weight)
• false (stores portfolio holdings by shares)—
default value
Note: A portfolio cannot alternate between storage by
shares and storage by market value. Once the first
import or manual edit of the portfolio is made, the
portfolio must persist using the current holdings
storage methodology.

Description N string Enter a long name description for the link or node.

Portfolio snapshot behavior


If an incremental position update (either type) is provided for an existing portfolio snapshot date:
• the change is applied to that portfolio snapshot date only
• the change is not applied to snapshots already imported for prior or future dates
For example, if there are existing portfolio snapshots for June 26, 2007 and June 27, 2007, then an
incremental position update applied to the June 26, 2007 snapshot will not be applied to the June 27
snapshot. If the June 27, 2007 snapshot did not exist, then the June 26, 2007 positions change would
“roll forward” as per current positions snapshot behavior.
If an incremental position update is provided for a portfolio snapshot date that does not exist, the change
plus the most recent portfolio snapshot is saved for the new effective date.
If an incremental position update is provided for a portfolio that does not exist, a new portfolio is created.

Positions
The Positions element is a child element of the Portfolio element that enables you to define the positions
in your portfolio. You may import a position by holdings, weight, or value.
Note: Submitting a portfolio with no positions will clear the holdings in the portfolio for the date specified.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 68 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Position
The Position element is the sole child element of the Positions element.

Table 38. Position

Attribute Required? Data Type (Length) Description

MID ID Y string Enter an ID for the position in your portfolio,


including leading zeros. You can specify multiple
IDs and let Barra PortfolioManager search.
Barra PortfolioManager automatically adjusts
CUSIPs and SEDOLs, whether you enter them with
or without a check digit. Thus, Barra
PortfolioManager automatically supports 6- or 7-
digit SEDOLs and 8- or 9-digit CUSIPs.

IDType N string Enter the ID Type for the position ID.


If you omit the ID type or leave it blank, Barra
PortfolioManager will search across all ID types in
its database according to your ID priority. (To view
your ID priority, go to the Asset ID attribute under
the Data Admin tab of Barra PortfolioManager.)
An asset will be rejected if the user specifies one or
more asset ID Types for which the user does not
have licensed permission.
For a list of supported ID types, refer Asset ID
Types.

Priority N int The asset priority determines the priority of the


asset type and ID for which a search is conducted
when more than one ID and IDType is specified. If
an asset with the first priority ID does not exist in
Barra PortfolioManager, the system will look for an
asset that matches the ID with the second priority,
etc.
An asset will be rejected if the user specifies one or
more asset ID Types for which the user does not
have licensed permission.
Default = 1.

PosAttribute name Y string Enter the name of the position-level attribute. Asset
attributes may be associated to the position (i.e., a
Portfolio/Benchmark + Asset ID combination). This
enables users to have different attribute values for
an asset depending on where it resides.
This is intended only for descriptive, grouping
attributes, and not for valuation.

value Y string Enter the value of the position-level attribute.

Holdings N double When you import a position by holdings (or value


and holdings), enter the number of shares for each
position.
Barra PortfolioManager will calculate the market

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 69 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


value of position = price * shares * contract size.
For some asset types, you may need to adjust
shares according to differences in contract size
between Barra PortfolioManager and your back
office system.
When you specify both value and holdings, the
system will read import by value as the higher
priority.
For .NET, refer Optional Fields in .NET.

Weight N double When you import a position by weight, enter the


weight for each position.
Barra PortfolioManager will store the portfolio by
shares based on weight * portfolio base value =
price * shares * contract size.
Barra PortfolioManager will readjust the weights to
sum to 100 if rejects or the values you enter do not
sum to 100.
For .NET, refer Optional Fields in .NET.

Value N double When you import a position by value (or value and
holdings), enter the market value for each position.
Barra PortfolioManager will store the portfolio by
shares based on market value = dirty price * shares
* contract size.
For Bonds, the market value should include
accrued interest.
For some asset types, you may need to account for
differences in contract size between Barra
PortfolioManager and your back office system.
When you specify both value and holdings, the
system will read import by value as the higher
priority.
For .NET, refer Optional Fields in .NET.

Notional N double When you import a position by notional value, enter


the notional value for each position. Barra
PortfolioManager converts this value into a
holdings amount.
For .NET, refer Optional Fields in .NET.

Currency N* string (3) Enter the ISO currency code of the currency
perspective you want to use with this portfolio.
*Currency is required if PortfolioImportType is set
to PortfolioImportType.BY_VALUE.
This setting will override the currency setting read
from the Base Strategy.
For a list of currency codes, refer Country and
Currency Codes.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 70 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

AssetAttribute
The AssetAttribute element is a child element of the SubmitImportJobRequest element that enables you
to import (or delete) user-defined attributes (such as prices) for assets. Note that deletions are supported
only for user-defined attributes with an association of “Miscellaneous” or “Price.”
To import asset attributes, the following steps are required:
1. Import the attribute properties. For example:
AssetAttribute myAttribute = myJob.addNewAssetAttribute();
myAttribute.setName("My Attribute");
myAttribute.setEffectiveStartDate(myCal);
myAttribute.setOwner("myUser");
myAttribute.setClearData("NULL"); // optional

In .NET:
AssetAttribute myAttribute = new AssetAttribute();
myAttribute.Name = "My Attribute";
myAttribute.EffectiveStartDate = myDate;
myAttribute.Owner = "myUser";
myAttribute.ClearData = "NULL"; // optional

2. Create the attribute values (refer “AttrValues”). For example:


AttrValues myAttrvalues = myAttribute.addNewAttrValues();
AttrValues.AttrValue myAttrvalue = myAttrvalues.addNewAttrValue();
myAttrvalue.setValue(100);
myAttrvalue.setCurrency("USD"); // optional
MID myMid = myAttrvalue.addNewMID();
myMid.setID("87654321");
myMid.setIDType("SEDOL"); // optional
myMid.setPriority(1); // optional
loadAssetAttribute(myAttribute);

In .NET:
AttrValues myAttrvalues = new AttrValues();
AttrValue myAttrvalue = new AttrValue();
myAttrvalue.Value = 100;
myAttrvalue.Currency = "USD"; // optional
myAttrvalue.MID myMid = new MID();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 71 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myMid.ID = "87654321";
myMid.IDType = "SEDOL"; // optional
myMid.Priority = 1; // optional

Table 39. AssetAttribute

Attribute Required? Data Type (Length) Description

Name Y string Enter the attribute name. (The attribute must first be
created using either “AttributeDefinition” or the
Barra PortfolioManager graphical user interface.)

EffectiveStartDate Y date Enter the effective attribute date.


Refer Date Format.

Owner Y string Enter the User ID of the attribute owner.

ClearData N string Enter the string that will be used in the Value field of
an attribute (in the AttrValue definition) in order to
delete that attribute value. Note that deletions are
supported only for user-defined attributes with an
association of “Miscellaneous” or “Price.”

AttrValues
The AttrValues element is a child element of the AssetAttribute element that enables you to define the
specific values for your imported asset attributes.

AttrValue
The AttrValue element is the sole child element of the AttrValues element.

Table 40. AttrValue

Attribute Required? Data Type (Length) Description

MID (1- ID Y string Specify the Asset ID to be associated with the


n) attribute. You can specify multiple IDs and let Barra
PortfolioManager search.
Barra PortfolioManager automatically adjusts
CUSIPs and SEDOLs, whether you enter them with or
without a check digit. Thus, Barra PortfolioManager
automatically supports 6- or 7-digit SEDOLs and 8-
or 9-digit CUSIPs.

IDType N string Enter the ID Type for the position ID.


If you omit the ID type or leave it blank, Barra
PortfolioManager will search across all ID types in
its database according to your ID priority. (To view
your ID priority, go to the Asset ID attribute under the
Data Admin tab of Barra PortfolioManager.)
An asset will be rejected if the user specifies one or

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 72 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


more asset ID Types for which the user does not
have licensed permission.
For a list of supported ID types, refer Asset ID Types.

Priority N int The asset priority determines the priority of the


asset type and ID for which a search is conducted
when more than one ID and IDType is specified. If an
asset with the first priority ID does not exist in Barra
PortfolioManager, the system will look for an asset
that matches the ID with the second priority, etc.
An asset will be rejected if the user specifies one or
more asset ID Types for which the user does not
have licensed permission.
Default = 1.

Value N double Enter the value of the specified attribute for the
asset.
To delete the data point, enter either “NULL” or the
value specified for ClearData in the AssetAttribute
definition.

Currency N* string (3) When you import prices, Barra PortfolioManager


interprets them in the currency associated with the
asset. For example, if you import a price of 1000 for
a Japanese asset, Barra PortfolioManager interprets
that as 1000 JPY.
If you want to state the price in a different currency,
you can specify the ISO currency code for the asset.
To see an asset’s price currency in Barra
PortfolioManager, view the asset in the Positions
Report, and customize the report to display the Price
Currency column. (Barra-supplied prices are shown
in the base currency.)
For a list of currency codes, refer Country and
Currency Codes.

PortfolioAttribute
The PortfolioAttribute element is a child element of the SubmitImportJobRequest element that enables
you to import user-defined portfolio attributes and time series of portfolio attribute values.
To import portfolio attributes, the following steps are required:
1. Import the portfolio attribute properties. For example:
PortfolioAttribute myPortAttribute =
request.addNewPortfolioAttribute();
myPortAttribute.setName("My Portfolio Attribute");
myPortAttribute.setEffectiveStartDate(myCal);
myPortAttribute.setOwner("myUser");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 73 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myPortAttribute.setAssociation(PortfolioAttributeType.ASSIGNED_BASE_V
ALUE.
toString());
myPortAttribute.setType(PPfTimeSeriesType.REAL_NUMBER.toString());

In .NET:
PortfolioAttribute myPortAttribute = new PortfolioAttribute();
myPortAttribute.Name = "My Portfolio Attribute";
myPortAttribute.EffectiveStartDate = myDate;
myPortAttribute.Owner = "myUser";
myPortAttribute.Association =
PortfolioAttributeType.ASSIGNED_BASE_VALUE;
myPortAttribute.Type = PfTimeSeriesType.REAL_NUMBER;
myPortAttribute.EffectiveStartDate = new DateTime(2011, 9, 17);
myPortAttribute.MaxAge = 1;
2. Create and load the portfolio attribute data (refer “NumericWithCurrencyPortfolioTimeSeries”).
For example:
NumericWithCurrencyPortfolioTimeSeries myNWCPTS =
myPortAttribute.addNewNumericWithCurrencyPortfolioTimeSeries();
NumericWithCurrencyPortfolioTimeSeries.NumericWithCurrencyTimeSeries
myNWCTS = myNWCPTS.addNewNumericWithCurrencyTimeSeries();
myNWCTS.setPortfolio("My Portfolio");
myNWCTS.setPortfolioOwner("myUser");
NumericWithCurrencyTimeSeriesData myNWCTSD =
myNWCTS.addNewNumericWithCurrencyTimeSeriesData();
myNWCTSD.setEffectiveStartDate(myCal);
myNWCTSD.setValue(125);
myNWCTSD.setCurrency("USD");

In .NET:
NumericWithCurrencyPortfolioTimeSeries myNWCPTS = new
NumericWithCurrencyPortfolioTimeSeries ();
NumericWithCurrencyPortfolioTimeSeriesNumericWithCurrencyTimeSeries
myNWCTS = new
NumericWithCurrencyPortfolioTimeSeriesNumericWithCurrencyTimeSeries()
;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 74 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

NumericWithCurrencyTimeSeriesData myNWCTSD = new


NumericWithCurrencyTimeSeriesData();
myNWCTSD.Currency = "USD"; myNWCTSD.Value = 125;
myNWCTSD.EffectiveStartDate = new DateTime(2011, 9, 17);
myNWCTS.NumericWithCurrencyTimeSeriesData = new
NumericWithCurrencyTimeSeriesData[]{myNWCTSD};
myNWCTS.Portfolio = "My Portfolio"; myNWCTS.PortfolioOwner =
"myUser"; myNWCPTS.NumericWithCurrencyTimeSeries = new
NumericWithCurrencyPortfolioTimeSeriesNumericWithCurrencyTimeSeries[]
{
myNWCTS };
myPortAttribute.Items = new NumericWithCurrencyPortfolioTimeSeries[]
{ myNWCPTS };
String retJobId = bdt.SubmitImportJob(aUser, aClient, aPassword,
"myUser", null, null, null, null, null, null, null, new
PortfolioAttribute[]{myPortAttribute}, null, null);

Table 41. PortfolioAttribute

Attribute Required? Data Type (Length) Description

Name Y string Enter the portfolio attribute name.

EffectiveStartDate Y date Enter the portfolio attribute effective start date.


Refer Date Format.

Owner Y string Enter the User ID of the portfolio attribute owner.

ClearData N string [Not used]

MaxAge N int Enter the number of calendar days until the attribute
data should expire, with a range of 1-365.
• Roll to next data point = −1 [Not used]
• None = 0 [Not used]
• Default = 1
Note: Portfolio Return is given a MaxAge of 1,
regardless of the user entry.

Association Y enum Enter the association of portfolio attribute. This choice


determines which of the child elements must be used
to specify the attribute data values.
Acceptable values:
• PortfolioAttributeType.ASSIGNED_BASE_VALUE
• PortfolioAttributeType.PORTFOLIO_RETURN
• PortfolioAttributeType.CASH_IN_OUTFLOW [Not
used]
• PortfolioAttributeType.MISCELLANEOUS (also

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 75 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


enter the Type below) [Not used]
Note: All Associations other than MISCELLANEOUS
require the use of the element NumericTimeSeries or
NumericWithCurrencyTimeSeries.

Type Y enum Enter the type of portfolio attribute. This choice


determines which of the child elements must be used
to specify the attribute data values.
Note: All Association types other than
MISCELLANEOUS use REAL_NUMBER.
Acceptable values:
• PfTimeSeriesType.TEXT (use TextTimeSeries)
• PfTimeSeriesType.REAL_NUMBER (use
NumericTimeSeries or
NumericWithCurrencyTimeSeries )
• PfTimeSeriesType.PORTFOLIO_REFERENCE (use
ReferenceTimeSeries)
• PfTimeSeriesType.CURRENCY (use
CurrencyTimeSeries)

Description N string Enter an alphanumeric description (max 64) of the


portfolio attribute.

PortfolioAttributeProperties
The PortfolioAttributeProperties element is a child element of the PortfolioAttribute element that enables
you to define the specific data values for your imported portfolio attributes.
Note: This is a legacy element that is retained solely for backward compatibility for importing
PORTFOLIO_RETURN or ASSIGNED_BASE_VALUE Association types. Use
NumericWithCurrencyPortfolioTimeSeries instead.

PortfolioAttributeProperty
The PortfolioAttributeProperty element is a child element of the PortfolioAttributeProperties element.

Table 42. PortfolioAttributeProperty

Attribute Required? Data Type (Length) Description

PortfolioAttributeT Y enum Enter the type of portfolio attribute. Acceptable values:


ype • PortfolioAttributeType.ASSIGNED_BASE_VALUE
• PortfolioAttributeType.PORTFOLIO_RETURN
• PortfolioAttributeType.CASH_IN_OUTFLOW [Not
used]
• PortfolioAttributeType.MISCELLANEOUS [Not
used]

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 76 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

PortfolioName N string Enter the name of the portfolio with which the portfolio
attribute should be associated.

PortfolioOwner N string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

Currency N string Enter the ISO code of the currency in which the portfolio
attribute is denominated.
For a list of currency codes, refer Country and Currency
Codes.

TimeSeriesData
The TimeSeriesData element is the sole child element of the PortfolioAttributeProperty element. It
enables you to assign dated data values as a time series to the portfolio attribute.

Table 43. TimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate N date Enter the date at which the value of the portfolio
attribute is effective.
Refer Date Format.
For .NET, refer Optional Fields in .NET.

Value N double Enter the value of the portfolio attribute as of the


effective start date.

Currency N string Enter the ISO code of the currency in which the portfolio
attribute value is denominated.
For a list of currency codes, refer Country and Currency
Codes.

TextPortfolioTimeSeries
The TextPortfolioTimeSeries element is a child element of the PortfolioAttribute element that enables you
to define the specific data values for your imported portfolio attributes. It is used only for portfolio
attributes with a MISCELLANEOUS Association and a TEXT Type. Refer PortfolioAttribute.
Note: This element is reserved for future use; it serves no current function in Barra PortfolioManager.

TextTimeSeries
The TextTimeSeries element is the sole child element of the TextPortfolioTimeSeries element.

Table 44. TextTimeSeries

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the name of the portfolio with which the

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 77 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


portfolio attribute should be associated.

PortfolioOwner Y string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

TextTimeSeriesData
The TextTimeSeriesData element is the sole child element of the TextTimeSeries element. It enables you
to assign dated data values as a time series to the portfolio attribute.

Table 45. TextTimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate Y date Enter the date at which the value of the portfolio
attribute is effective. Refer Date Format.

Value Y string Enter the value of the portfolio attribute as of the


effective start date.

NumericPortfolioTimeSeries
The NumericPortfolioTimeSeries element is a child element of the PortfolioAttribute element that enables
you to define the specific data values for your imported portfolio attributes. It is used only for portfolio
attributes with a MISCELLANEOUS Association and a REAL_NUMBER Type. Refer PortfolioAttribute.
Note: This element is reserved for future use; it serves no current function in Barra PortfolioManager.

NumericTimeSeries
The NumericTimeSeries element is the sole child element of the NumericPortfolioTimeSeries element.

Table 46. NumericTimeSeries

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the name of the portfolio with which the
portfolio attribute should be associated.

PortfolioOwner Y string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 78 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

NumericTimeSeriesData
The NumericTimeSeriesData element is the sole child element of the NumericTimeSeries element. It
enables you to assign dated data values as a time series to the portfolio attribute.

Table 47. NumericTimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate Y date Enter the date at which the value of the portfolio
attribute is effective. Refer Date Format.

Value Y string Enter the value of the portfolio attribute as of the


effective start date.

ReferencePortfolioTimeSeries
The ReferencePortfolioTimeSeries element is a child element of the PortfolioAttribute element that
enables you to define the specific data values for your imported portfolio attributes. It is used only for
portfolio attributes with a MISCELLANEOUS Association and a REFERENCE_PORTFOLIO Type. Refer
PortfolioAttribute.
Note: This element is reserved for future use; it serves no current function in Barra PortfolioManager.

ReferenceTimeSeries
The ReferenceTimeSeries element is the sole child element of the ReferencePortfolioTimeSeries element.

Table 48. ReferenceTimeSeries

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the name of the portfolio with which the
portfolio attribute should be associated.

PortfolioOwner Y string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

ReferenceTimeSeriesData
The ReferenceTimeSeriesData element is the sole child element of the ReferenceTimeSeries element. It
enables you to assign dated data values as a time series to the portfolio attribute.

Table 49. ReferenceTimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate Y date Enter the date at which the value of the portfolio
attribute is effective. Refer Date Format.

ReferencePortfolio Y string Enter the name of the reference portfolio

ReferencePortfolioOwn Y string Enter the User ID of the owner of the reference

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 79 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


er portfolio with which the portfolio attribute should
be associated.

CurrencyPortfolioTimeSeries
The CurrencyPortfolioTimeSeries element is a child element of the PortfolioAttribute element that
enables you to define the specific data values for your imported portfolio attributes. It is used only for
portfolio attributes with a MISCELLANEOUS Association and a CURRENCY Type. Refer PortfolioAttribute.
Note: This element is reserved for future use; it serves no current function in Barra PortfolioManager.

CurrencyTimeSeries
The CurrencyTimeSeries element is the sole child element of the CurrencyPortfolioTimeSeries element.

Table 50. CurrencyTimeSeries

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the name of the portfolio with which the
portfolio attribute should be associated.

PortfolioOwner Y string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

CurrencyTimeSeriesData
The CurrencyTimeSeriesData element is the sole child element of the CurrencyTimeSeries element. It
enables you to assign dated data values as a time series to the portfolio attribute.

Table 51. CurrencyTimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate Y date Enter the date at which the value of the portfolio
attribute is effective. Refer Date Format.

Currency Y string Enter the ISO code of the currency in which the
portfolio attribute value is denominated.
For a list of currency codes, refer Country and
Currency Codes.

NumericWithCurrencyPortfolioTimeSeries
The NumericWithCurrencyPortfolioTimeSeries element is a child element of the PortfolioAttribute
element that enables you to define the specific data values for your imported portfolio attributes. It is
used only for portfolio attributes with an ASSIGNED_BASE_VALUE, PORTFOLIO_RETURN, or
CASH_IN_OUTFLOW Association (and a REAL_NUMBER Type). Refer PortfolioAttribute.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 80 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

NumericWithCurrencyTimeSeries
The NumericWithCurrencyTimeSeries element is the sole child element of the
NumericWithCurrencyPortfolioTimeSeries element.

Table 52. NumericWithCurrencyTimeSeries

Attribute Required? Data Type (Length) Description

Portfolio Y string Enter the name of the portfolio with which the
portfolio attribute should be associated.

PortfolioOwner Y string Enter the User ID of the owner of the portfolio with
which the portfolio attribute should be associated.

NumericWithCurrencyTimeSeriesData
The NumericWithCurrencyTimeSeriesData element is the sole child element of the
NumericWithCurrencyTimeSeries element. It enables you to assign dated data values as a time series to
the portfolio attribute.

Table 53. NumericWithCurrencyTimeSeriesData

Attribute Required? Data Type (Length) Description

EffectiveStartDate Y date Enter the date at which the value of the portfolio
attribute is effective. Refer Date Format.

Value Y double Enter the value of the portfolio attribute as of the


effective start date.

Currency Y string Enter the ISO code of the currency in which the
portfolio attribute value is denominated.
For a list of currency codes, refer Country and
Currency Codes.

SubmitImportJobResponse
The SubmitImportJobResponse element, a child element of the SubmitImportJob operation, contains the
JobID as a string in the SubmitImportJobResponse document that is returned as the response to the
SubmitImportJobRequest element (refer SubmitImportJobRequest). This string can then be used
programmatically in other request elements, such as GetImportJobStatus, GetImportJobLog, and
ListImportJobs.

Table 54. SubmitImportJobResponse

Attribute Required? Data Type (Length) Description

JobID Y string The import Job ID assigned


programmatically to the import job in the
SubmitImportJobRequest document.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 81 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ListImportJobs
The ListImportJobs operation consists of the ListImportJobsRequest element and the
ListImportJobsResponse element.

ListImportJobsRequest
The ListImportJobsRequest element, a child element of the ListImportJobs operation, will return the
attributes of the ImportJobRecords element contained in the ListImportJobsResponse document (refer
ListImportJobsResponse).

Table 55. ListImportJobsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

Filter N enum Indicate whether you want to list all export jobs or
only BDT-initiated export jobs.
Acceptable values:
• ListJobFilter.BDT_JOBS_ONLY (default)
• ListJobFilter.ALL
• ListJobFilter. BPM_UI_JOBS
• ListJobFilter. BPM_BDT_JOBS

To create the ListImportJobsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
ListImportJobsRequestDocument myDoc;
myDoc = ListImportJobsRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


ListImportJobsRequestDocument.ListImportJobsRequest myJob; myJob =
myDoc.addNewListImportJobsRequest();

3. Set the request attributes (refer Table 55). For example:


myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");
myJob.setFilter(ListJobFilter.ALL)

4. Send the request. For example:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 82 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

BDTServiceStub myStub = new BDTServiceStub();


ListImportJobsResponseDocument myResp = myStub.ListImportJobs
(myDoc);
ImportJobRecord[] myJobRecords =
myResp.getListImportJobsResponse().getListImportJobs().
getImportJobRecordArray();
for (ImportJobRecord myRecord: myRecords) {
System.out.println("Job ID: "+myRecord.getJobID());
System.out.println("Job ID: "+myRecord.getJobName());
System.out.println("Job ID: "+myRecord.getOwner());
System.out.println("Job ID: "+myRecord.getStartTime());
System.out.println("Job ID: "+myRecord.getCompletionTime());
System.out.println("Job ID: "+myRecord.getImportJobStatus());
}

Note: The WSDL2JAVA tool generates the BDTServiceStub class. This class contains the functions that
send requests to and receive responses from the web service operations.
For .NET:
ImportJobRecords myJobRecords = bdtWS.ListImportJobs("myUser",
"myClient",
"myPassword", ListJobFilter.ALL);
foreach(ImportJobRecord myRecord in myJobRecords)
{
Console.WriteLine("Job ID: "+myRecord.JobID);
Console.WriteLine("Job Name: "+myRecord.JobName);
Console.WriteLine("Owner: "+myRecord.Owner);
Console.WriteLine("Start Time: "+myRecord.StartTime);
Console.WriteLine("Completion Time: "+myRecord.CompletionTime);
Console.WriteLine("Job Status: "+myRecord.ImportJobStatus);
}

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 83 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ListImportJobsResponse
The ListImportJobsResponse element, a child element of the ListImportJobs operation, contains the
attributes of the ImportJobRecord element contained in the ListImportJobsResponse document that is
returned as the response to the ListImportJobsRequest element (refer ListImportJobs).

ImportJobRecords
The ImportJobRecords element is a child element of the ListImportJobsResponse element.

ImportJobRecord
The ImportJobRecord element is a child element of the ImportJobRecords element.

Table 56. ImportJobRecord (0-n)

Attribute Required? Data Type (Length) Description

JobID Y string The import Job ID assigned programmatically to the


import job in the SubmitImportJobResponse
document.

JobName Y String64Length (64) The import Job Name assigned to the import job in
the SubmitImportJobRequest document.

Owner Y string The owner assigned to the import job in the


SubmitImportJobRequest document.

StartTime Y dateTime The date and time at which the import job began.

CompletionTime Y dateTime The date and time at which the import job ended.

ImportJobStatus Y enum Acceptable values:


• ImportJobStatus.PENDING
• ImportJobStatus.COMPLETED
• ImportJobStatus.FAILED

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 84 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetImportJobStatus
The GetImportJobStatus operation consists of the GetImportJobStatusRequest element and the
GetImportJobStatusResponse element.

GetImportJobStatusRequest
The GetImportJobStatusRequest element, a child element of the GetImportJobStatus operation, will
return the StatusValue as an integer in the GetImportJobStatusResponse document (refer
GetImportJobStatusResponse). This integer can then be used programmatically in other request
elements.

Table 57. GetImportJobStatusRequest

Attribute Required? Data Type (Length) Description

User Y string Use this attribute to provide your user Id

Client Y string Use this attribute to provide the client ID for your
firm or organization

Password Y string Use this attribute to provide your password

JobID Y string Use this attribute to provide the import Job ID


returned in the SubmitImportJobResponse
document.

To create the GetImportJobStatusRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetImportJobStatusRequestDocument myDoc;
myDoc = GetImportJobStatusRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetImportJobStatusRequestDocument.GetImportJobStatusRequest myJob;
myJob = myDoc.addNewGetImportJobStatusRequest();

3. Set the request attributes (refer Table 57). For example:


myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");
myJob.setJobID("12345678");

4. Send the request. For example:


BDTServiceStub myStub = new BDTServiceStub();
GetImportJobStatusResponseDocument myResp = myStub.GetImportJobStatus

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 85 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

(myDoc);
int myStatusValue =
myResp.getGetImportJobStatusResponse().getImportJobStatus();

Note: The WSDL2JAVA tool generates the BDTServiceStub class. This class contains the functions that
send requests to and receive responses from the web service operations.
In .NET, send the following:
int myStatusValue = bdtWS.GetImportJobStatus("myUser", "myClient",
"myPassword", "myJobID");

GetImportJobStatusResponse
The GetImportJobStatusResponse element, a child element of the GetImportJobStatus operation,
contains the StatusValue as an integer in the GetImportJobStatusResponse document that is returned as
the response to the GetImportJobStatusRequest element (refer GetImportJobStatusResponse). This
integer can then be used programmatically in other request elements. The GetImportJobStatusResponse
operation is normally invoked in a polling loop. The client should wait at least one minute between calls to
avoid excessive network traffic.

Table 58. GetImportJobStatusResponse

Attribute Required? Data Type (Length) Description

StatusValue Y int Returned values:


• =0: Import completed successfully (i.e., one or
more of the elements imported successfully)
• <0: Import failed with the error status code
indicated. Refer Error Codes.
• >0: Import is pending with the suggested wait
indicated in seconds

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 86 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetImportJobLog
The GetImportJobLog operation consists of the GetImportJobLogRequest element and the
GetImportJobLogResponse element.
Note: The user should insert a pause between a GetImportJobStatus and GetImportJobLog request,
especially for short-running import jobs. For example:
getImportJobStatus();
Thread.sleep(5000);
getImportJobLog();

GetImportJobLogRequest
The GetImportJobLogRequest element, a child element of the GetImportJobLog operation, will return the
attributes of the ImportLog element contained in the GetImportJobLogResponse document (refer
GetImportJobLogResponse).

Table 59. GetImportJobLogRequest

Attribute Required? Data Type (Length) Description

User Y string Use this attribute to provide your user Id

Client Y string Use this attribute to provide the client ID for your
firm or organization

Password Y string Use this attribute to provide your password

JobID Y string Use this attribute to provide the import Job ID


returned in the SubmitImportJobResponse
document.

To create the GetImportJobLogRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetImportJobLogRequestDocument myDoc;
myDoc = GetImportJobLogRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetImportJobLogRequestDocument.GetImportJobLogRequest myJob;
myJob = myDoc.addNewGetImportJobLogRequest();

3. Set the request attributes (refer Table 59). For example:


myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 87 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myJob.setJobID("12345678");

4. Send the request. For example:


BDTServiceStub myStub = new BDTServiceStub();
GetImportJobLogResponseDocument myResp = myStub.GetImportJobLog
(myDoc);
ImportLog myImportLog =
myResp.getGetImportJobLogResponse().getImportJobLog();
for (ImportLogGroup myGroup: log) {
System.out.println("Portfolio/Attribute/Tree/UserAsset: " +
myGroup.getName());
System.out.println("Owner: " + myGroup.getOwner() +
" Effective Date: " + myGroup.getEffectiveDate());
System.out.println("Total: " + myGroup.getTotal() +
" Rejects: " + myGroup.getRejected() +
" Duplicates: " + myGroup.getDuplicate() +
" Blanks: " + myGroup.getBlank());
System.out.println("Summary Message: " + myGroup.getResultMsg());
ImportLogDetails myDetails = myGroup.getDetails();
if (myDetails != null && myDetails.sizeOfImportLogDetailArray() > 0)
{
System.out.println("Details:");
for (ImportLogDetail myDetail: myDetails.getImportLogDetailArray()) {
System.out.println("ID/Agg.Node: " + myDetail.getDetail1() +
" Type/Pf.Node/Owner: " + myDetail.getDetail2() +
" Message: " + myDetail.getResultMsg() +
" Status: " + myDetail.getResultCode());
}
}
System.out.println();
}

Note: The WSDL2JAVA tool generates the BDTServiceStub class. This class contains the functions that
send requests to and receive responses from the web service operations.
For .NET:
ImportLog myImportLog = bdtWS.GetImportJobLog("myUser", "myClient",

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 88 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

"myPassword", "myJobID");
// Console.WriteLine("Import Job Name: "+myImportLog.JobName);
foreach(ImportLogGroup myGroup in myImportLog.LogGroups)
{
Console.WriteLine("Group EffectiveDate: "+myGroup.EffectiveDate); //
// optional
Console.WriteLine("Group Name: "+myGroup.Name);
Console.WriteLine("Group Owner: "+myGroup.Owner);
Console.WriteLine("Group Total: "+myGroup.Total); // optional
Console.WriteLine("Group Rejected: "+myGroup.Rejected); // optional
Console.WriteLine("Group Blank: "+myGroup.Blank); // optional
Console.WriteLine("Group Duplicate: "+myGroup.Duplicate); // optional
Console.WriteLine("Group Result Message: "+myGroup.ResultMsg); //
optional
Console.WriteLine("Group Result Code: "+myGroup.ResultCode); //
optional
if(myGroup.Details!=null) {
foreach(ImportLogDetail myDetail in myGroup.Details)
{
Console.WriteLine("Detail Result Message: "+myDetail.ResultMsg); //
// optional
Console.WriteLine("Detail Result Code: "+myDetail.ResultCode); //
// optional
Console.WriteLine("Detail Message 1: "+myDetail.Detail1);
Console.WriteLine("Detail Message 2: "+myDetail.Detail2); // optional
Console.WriteLine("Detail Message 3: "+myDetail.Detail3); // optional
Console.WriteLine("Detail Message 4: "+myDetail.Detail4); // optional
}
}
}

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 89 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetImportJobLogResponse
The GetImportJobLogResponse element, a child element of the GetImportJobLog operation, contains the
attributes of the ImportLog element within the GetImportJobLogResponse document that is returned as
the response to the GetImportJobLogRequest element (refer GetImportJobLog). It contains summary and
detail log information associated with the import job or Bloomberg operation.

ImportLog
The ImportLog element is a child element of the GetImportJobLogResponse element. It contains the job
name associated with the import job in the import log.

Table 60. ImportLog

Attribute Required? Data Type (Length) Description

JobName Y String64Length (64) The import Job Name assigned to the import job in
the SubmitImportJobRequest document.

LogGroups N ImportLogGroups Refer LogGroups.

LogGroups
The LogGroups element is a child element of the ImportLog element.

ImportLogGroups
The ImportLogGroups element is a child element of the LogGroups element. It contains summary log
information about the elements of the import job. Each row summarizes detail data that shares an
identical EffectiveDate, Name, and Owner.

Table 61. ImportLogGroups

Attribute Required? Data Type (Length) Description

EffectiveDate Y date The effective date of the SubmitImportJobRequest


document.
Refer Date Format.

Name Y string The name of the objects (i.e., the name of the portfolio,
attribute, asset type, etc.) being imported or deleted.

Owner Y string The owner of the objects (i.e., the owner of the portfolio,
attribute, asset type, etc.) being imported or deleted.

Total Y int Indicates the total number of objects being imported or


deleted.

Rejected Y int Indicates the number of imported or deleted objects


that have been rejected.

Blank Y int Indicates the number of imported or deleted objects for


which a value (e.g., an asset ID) has not been specified.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 90 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

Duplicate Y int Indicates the number of imported objects (e.g.,


positions in the portfolio) that are duplicates. Duplicate
assets are aggregated in the portfolio.

Deleted Y int Indicates the number of objects being deleted.

ResultMsg Y string The description of the result (e.g., “Success”) for the
imported objects. “Success” means that one or more of
the elements were imported successfully.

ResultCode Y string The result code (e.g., “OK”) for the imported objects.
Refer Error Codes.

Details
The Details element is a child element of the ImportLogGroups element.

ImportLogDetail
The ImportLogDetail element is a child element of the Details element. It contains detailed log
information about the group (e.g., the rejected assets in the portfolio).

Table 62. ImportLogDetail

Attribute Required? Data Type (Length) Description

ResultMsg Y date The description of the result (e.g., “Asset not found.
Cannot delete.”) for the imported or deleted object.

ResultCode Y string The result code (e.g., “BDOE019”) for the imported
or deleted object. Refer Error Codes.

Detail1 Y string Detail about the object being imported or deleted.


Detail fields can contain the name of the object (i.e.,
the name of the portfolio, attribute, asset type, etc.),
the ID type, portfolio node, or aggregate owner of
the object, or the asset ID or aggregate node of the
object.

Detail2 N string Detail about the object being imported or deleted.

Detail3 N string Detail about the object being imported or deleted.

Detail4 N string Detail about the object being imported or deleted.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 91 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Sample Import Logs


The following figures represent sample import logs: one with rejected assets, and one with no rejected
assets.

Figure 1: Import log with rejected assets

Figure 2: Import log with no rejected assets

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 92 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

CreateAttributes
The CreateAttributes operation consists of the CreateAttributesRequest element and the
CreateAttributesResponse element.

CreateAttributesRequest
The CreateAttributesRequest element, a child element of the CreateAttributes operation, will create one or
more attributes in Barra PortfolioManager. It will return each created attribute’s Name/StatusValue pair in
the CreateAttributesResponse document (refer CreateAttributesResponse). The response can then be
used programmatically in other request elements.
Note: The CreateAttributes operation is used to create an attribute prior to importing attribute data. It
should be used when needed to create attributes and not used as part of a regular import process.

Table 63. CreateAttributesRequest

Attribute Required? Data Type (Length) Description

User Y string Use this attribute to provide your user Id

Client Y string Use this attribute to provide the client ID for your firm or
organization

Password Y string Use this attribute to provide your password

To create the CreateAttributesRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
CreateAttributesRequestDocument myDoc;
myDoc = CreateAttributesRequestDocument.Factory.newInstance();

2. Create a request job with a declaration and instantiation. For example:


CreateAttributesRequestDocument.CreateAttributesRequest myRequest;
myRequest = myDoc.addNewCreateAttributesRequest();

3. Set the request attributes. For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");

4. Create the attribute (refer “AttributeDefinition”). For example, to create two attributes (the second
of which is an enumerated attribute):
AttributeDefinition myDef = myRequest.addNewAttributeDefinition();
myDef.setName("MyAttribute1");
myDef.setAttributeType(AttributeType.DATE);

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 93 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myDef.setAttribAgeType(AttribAgeType.THREE_MONTHS);
myDef.setAttribAggregationType(AttribAggregationType.NONE);
myDef = myRequest.addNewAttributeDefinition();
myDef.setName("MyAttribute2");
myDef.setAttributeType(AttributeType.ENUM);
myDef.setAttribAgeType(AttribAgeType.NONE);
myDef.setAttribAggregationType(AttribAggregationType.NONE);
String[] myArgs=new String[] {"one", "two", "three"};
myDef.EnumeratedAttribute=myArgs;

To create an attribute in .NET, send the following:


AttributeDefinition myDef = new AttributeDefinition();
myDef = new AttributeDefinition();
myDef.Name="myAttribute";
myDef.AttributeType=AttributeType.TEXT;
myDef.AttribAgeType=AttribAgeType.NONE;
myDef.AttribAggregationType=AttribAggregationType.NONE;
AttributeDefinition[] myDefArray = new AttributeDefinition[] (myDef);
AttributeCreationStatus[] results;
results = stub.CreateAttributes("myUser", "myClient", "myPassword",

AttributeDefinition
AttributeDefinition is a child element of the CreateAttributesRequest element that enables you to define
the characteristics of the attribute to be created.

Table 64. AttributeDefinition

Attribute Required? Data Type (Length) Description

EnumeratedAttribute N string If AttributeType is ENUM, then this element is used to


(0-n) define the array of enumerated values for the attribute.
Enumerated values must contain only alphanumeric,
space, or . , _ - $ % @ * ^ ( ) & characters. All other
characters will be stripped.

Name Y string (64) Enter the unique name of the attribute.


The name must contain only alphanumeric, space, or . ,
_ - $ % @ * ^ () characters. All other characters will be
stripped from the name. Names over 64 characters in
length will be rejected with a StatusValue of −1.
Duplicate names will be rejected with a StatusValue of
1.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 94 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

AttributeType Y enum Association and/or Value Type of the attribute.


Note: This is the merged set of values that are shown in
Barra PortfolioManager’s Association  Value Type
dropdown.
Acceptable values:
• AttributeType.PRICE
• AttributeType.ASSET_ID (must have
AttribAggregationType of Count)
• AttributeType.DATE
• AttributeType.ENUM (Note: Requires an array of
enumerated values)
• AttributeType.INTEGER
• AttributeType.REAL
• AttributeType.TEXT
• AttributeType.RETURN

AttribAgeType Y enum Maximum Age allowed for the values of the attribute.
Acceptable values:
• AttribAgeType.ONE_DAY
• AttribAgeType.ONE_WEEK
• AttribAgeType.ONE_MONTH
• AttribAgeType.THREE_MONTHS
• AttribAgeType.ONE_YEAR
• AttribAgeType.NONE
Note: For Performance Attribution, set this value to
greater than one day for a Price attribute if you want
your supplied prices (used to calculate returns) to roll
forward on weekends and holidays. Applies only to
assets for which Barra PortfolioManager calculates
returns from prices (i.e., derivatives and mutual funds).

AttribAggregationTy Y enum Attribute Aggregation Scheme. Acceptable values (not


pe all are acceptable for all attribute types):
• AttribAggregationType.COUNT
• AttribAggregationType.EFF_DURATION
• AttribAggregationType.EQUAL_WEIGHT
• AttribAggregationType.MARKET_VALUE
• AttribAggregationType.SPREAD_DURATION
• AttribAggregationType.SUM
• AttribAggregationType.MARKET_VALUE_NA_AS_Z
ERO
• AttribAggregationType.WEIGHTED_HARMONIC_ME
AN
• AttribAggregationType.HARMONIC_MEAN

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 95 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


• AttribAggregationType.NONE

CreateAttributesResponse
The CreateAttributesResponse element, a child element of the CreateAttributes operation, contains the
attribute Name/StatusValue pairs in the AttributeCreationStatus document that is returned as the
response to the CreateAttributesRequest element (refer CreateAttributesRequest). This response can
then be used programmatically in other request elements.

able 65. AttributeCreationStatus

Attribute Required? Data Type (Length) Description

Name Y string The name of the attribute as defined in


AttributeDefinition.
Note: This name will not match if unsupported
characters were stripped from the name of the
attribute defined in AttributeDefinition.

StatusValue Y int The value of the status of the attribute creation:


• 0 (OK)
• 1 (DUPLICATE)
• −1 (ERROR)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 96 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteAttribute
The DeleteAttribute operation consists of the DeleteAttributeRequest element and the
DeleteAttributeResponse element.

DeleteAttributeRequest
The DeleteAttributeRequest element, a child element of the DeleteAttribute operation, will delete one
attribute from Barra PortfolioManager. It will return each deleted attribute’s StatusValue in the
DeleteAttributeResponse document (refer DeleteAttributeReponse). The response can then be used
programmatically in other request elements.

Table 66. DeleteAttributeRequest

Attribute Required? Data Type (Length) Description

User Y string Use this attribute to provide your user Id

Client Y string Use this attribute to provide the client ID for your
firm or organization

Password Y string Use this attribute to provide your password

Name Y string Use this attribute to provide the name of the


attribute,

To create the DeleteAttributeRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
DeleteAttributeRequestDocument myDoc;
myDoc = DeleteAttributeRequestDocument.Factory.newInstance();

2. Create a request job with a declaration and instantiation. For example:


DeleteAttributeRequestDocument.DeleteAttributeRequest myRequest;
myRequest = myDoc.addNewDeleteAttributeRequest();

3. Set the request attributes (refer Table 66). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setName("myAttribute");

In .NET, send the following:


int i=stub.DeleteAttribute("myUser", "myClient", "myPassword",
"myAttribute");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 97 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteAttributeResponse
The DeleteAttributeResponse element, a child element of the DeleteAttribute operation, contains the
attribute StatusValue in the DeleteAttributeResponse document that is returned as the response to the
DeleteAttributeRequest element (refer DeleteAttributeRequest). This response can then be used
programmatically in other request elements.

Table 67. DeleteAttributeResponse

Attribute Required? Data Type (Length) Description

StatusValue Y int The value of the status of the attribute creation:


• 0 (OK)
• −1 (ERROR)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 98 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitRebalanceJob
The SubmitRebalanceJob operation consists of the SubmitRebalanceJobRequest element and the
SubmitRebalanceJobResponse element.

SubmitRebalanceJobRequest
The SubmitRebalanceJobRequest element, a child element of the SubmitRebalanceJob operation, takes a
set of optimization settings and parameters and submits an optimization job in Barra PortfolioManager.
Child elements of the SubmitRebalanceJobRequest element include RebalanceJobArgs and
RebalanceProfileSettingsArgs. The SubmitRebalanceJobRequest element will return a JobID for the
optimization (refer SubmitRebalanceJobResponse). The response can then be used programmatically in
other request elements.

Table 68. SubmitRebalanceJobRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password.

RebalanceJobArgs Y RebalanceJobArgs Refer RebalanceJobArgs.

RebalanceProfileSettingsArgs N RebalanceProfileSettingsArgs Refer


RebalanceProfileSettingsArgs.

RebalanceJobArgs
The RebalanceJobArgs element is a child element of the SubmitRebalanceJobRequest element that will
set up a base profile for the optimization and the initial portfolio.
Notes:
• The user must select an existing profile. Barra PortfolioManager Developer’s Toolkit does not
support the creation of a new optimization profile.
• The optimization profile element SingleOptimizationProfile enables the user to temporarily
override the settings of an existing optimization profile.
• To nullify a field value in an existing profile, the user must submit a value of zero (0) for an int
data type, an empty string (““) for a string data type, and a value of “Double.NaN” for a double data
type.

Table 69. RebalanceJobArgs

Attribute Required? Data Type (Length) Description

IterationName N String64Length Enter the name of your rebalance iteration.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 99 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

AnalysisDate N date Enter the analysis date.

PortfolioName Y string Enter the name of the portfolio to be optimized.

PortfolioOwner Y string Enter the name of the owner of the portfolio to be


optimized.

RebalanceProfileName Y RebalanceProfileName Refer RebalanceProfileName.

SaveDebugInfo N boolean Use to save your debug info as a file. Acceptable


values are:
• True
• False (DEFAULT)
You can extract the file using the
GetRebalanceInputFiles operation.

RebalanceProfileName
The RebalanceProfileName element is a child element of the RebalanceJobArgs element.

Table 70. RebalanceProfileName

Attribute Required? Data Type (Length) Description

ProfileName Y string Enter the name of the base rebalance profile.

ProfileOwner Y string Enter the name of the owner of the profile.

RebalanceProfileSettingsArgs
The RebalanceProfileSettingsArgs element is a child element of the SubmitRebalanceJobRequest
element that enables you to override the settings in the base rebalance profile. OptimizationSetting is the
child element of RebalanceProfileSettingsArgs and contains the OptimizationMethod element. Currently,
only Single Optimization method is supported.
<xsd:complexType name="RebalanceProfileSettingsArgs">
<xsd:sequence>
<xsd:element name="OptimizationSetting"
type="bdt:OptimizationSetting" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OptimizationSetting">
<xsd:sequence>
<xsd:element name="OptimizationMethod"
type="bdt:OptimizationMethod" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 100 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

</xsd:complexType>

SingleOptimizationProfile
The SingleOptimizationProfile element is a child element of the OptimizationMethod element that enables
you to specify detailed settings for a Max Utility optimization type (Single Optimization method).

MaxUtility
The MaxUtility element is the sole child element of the SingleOptimizationProfile element and includes
the MaxUtilityConstraints and MaxUtilityGeneralSettings child elements.

MaxUtilityConstraints
The MaxUtilityConstraints element is a child element of the MaxUtility element that includes the
CashSettings, TurnoverConstraints, NonCashAssets, AssetLevelBounds, AssetParing,
TradeParingBySideTradePairingBySide, TradeLimitsBySide and RestrictedList elements.

CashSettings
The CashSettings element is a child element of the MaxUtilityConstraints element.

Table 71. CashSettings

Attribute Required? Data Type (Length) Description

CashInOut N CashInOutType Refer CashInOutType.

LowerBound N BoundType Refer BoundType.

UpperBound N

InvestAllCash N boolean To ignore the lower and upper bounds, use


InvestAllCash. You will now be forced to sell out of
any numeraire currency position. Acceptable values
are:
• Optional
• False (DEFAULT)

CashInOutType
The CashInOutType element is a child element of the CashInOut element and provides the following
choices to control the optimized portfolio’s value.

Table 72. CashInOutType

Choice Required? Data Type (Length) Description

Double N double Enter an amount entered that will tell the optimizer how
much (in the base currency) to add to the portfolio’s
value during optimization.
For example:
If the user specifies $100,000, the value of the

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 101 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Choice Required? Data Type (Length) Description


optimized portfolio will be $100,000 more than the
value of the initial portfolio. The user can enter a
negative value to create an optimized portfolio with a
smaller value than the initial portfolio. The user would
enter a positive cash flow, for example, if the user has a
cash infusion to invest. Similarly, the user would enter a
negative cash flow value to generate cash to cover
redemptions.

Cleardata N boolean Use this choice to clear the value specified in the base
optimization profile.

BoundType
The BoundType element is a child element of the LowerBound and UpperBound elements and provides
the following choices.

Table 73. BoundType

Choice Required? Data Type (Length) Description

Double N double Enter a lower/upper bound as a percentage


of your portfolio value to specify a holdings
constraint for your numeraire currency. Else,
the weight of your numeraire currency will
be governed by other general constraints,
such as Asset Level Bounds, Allow Shorts,
Crossovers, and so on.

Cleardata N boolean Use this choice to clear the value of the


lower/upper bound specified in the base
optimization profile.

TurnoverConstraints
The TurnoverConstraints element is a child element of the MaxUtilityConstraints element.

Table 74. TurnoverConstraints

Attribute Required? Data Type (Length) Description

MaxTurnover N TurnoverConstraintType Refer TurnoverConstraintType.

MaxBuyTurnover N

MaxSellTurnover N

UseBaseValue N boolean Acceptable values are:


• Optional
• False (DEFAULT)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 102 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

TurnoverConstraintType
The TurnoverConstraintType element is a child element of the MaxTurnover, MaxBuyTurnover, and
MaxSellTurnover elements. Its child elements include Value and SetPriority. The Value element contains
the ValueType element, which provides the following choices to specify the constraint value.

Table 75. ValueType

Choice Required? Data Type (Length) Description

Double N double For MaxTurnover, specify the maximum


turnover percentage (in decimals, where 0.02
= 2%) the optimizer must observe in
producing an optimal portfolio. Does not
apply to futures.
For MaxBuyTurnover/MaxSellTurnover, set
the maximum turnover value for the buy/sell
transactions. This value will override the
overall value.

PortfolioAttribute N TypePortfolioAttribute Use a portfolio attribute to specify the


constraint values. Refer Table 76.

Cleardata N boolean Use this choice to clear the value specified in


the base optimization profile.

The SetPriority element contains the PriorityType element, which enables you to specify if the constraint
is mandatory or soft. Acceptable values are:
• MANDATORY
• SOFT

Table 76. TypePortfolioAttribute

Choice Required? Data Type (Length) Description

PortfolioAttributeName Y string Name of the portfolio attribute.

PortfolioAttributeOwner Y string Name of the portfolio attribute owner.

NonCashAssets
The NonCashAssets element is a child element of the MaxUtilityConstraints element. You can specify
upper and lower bounds to include/restrict in the optimal portfolio all the noncash assets in the universe
and initial portfolios (and benchmark, if Include Benchmark in Universe is selected in the Optimization
Parameters). You can use this field, for example, if you are tracking a model portfolio and want to ensure
holdings with positions in all its assets (does not apply to futures).
Note: If you have imported asset bounds for specific assets, Barra PortfolioManager uses the imported
bounds for those assets, regardless of other constraint settings. You can specify the minimum as an
absolute value or relative (e.g., p+0.5, b-.01) to another portfolio.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 103 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 77. NonCashAssets

Attribute Required? Data Type (Length) Description

LowerBound N BoundType You can specify the minimum weight (in decimals, where
0.02 =2%) that any non-cash asset must have in the optimal
portfolio. If you set a minimum, the optimizer must include
these assets and weights, or it will not produce an optimal
portfolio. This minimum can be in addition to or instead of
setting a MinHolding for all assets. If the two values conflict,
Barra PortfolioManager uses the more restrictive constraint
(the higher minimum). Tip: To include all the non-cash assets
in the universe but still leave the optimizer room to add other
assets as well, you can set the minimum percentage to a very
small figure.
Refer BoundType.

UpperBound N BoundType You can specify the maximum weight as an absolute value or
relative (e.g., p+0.5, b-.01) to another portfolio (in decimals,
where 0.02 = 2%).
Refer BoundType.

AssetLevelBounds
The AssetLevelBounds element is a child element of the MaxUtilityConstraints element.

Table 78. AssetLevelBounds

Attribute Required? Data Type (Length) Description

LowerBound Y AssetLvlBoundType Use to specify the name of the asset attribute that contains
the minimum weight for specific assets in the optimal
portfolio. If a minimum is set, the optimizer must include
these assets and weights, or it will not produce an optimal
portfolio. This can be a way to ensure that certain assets are
not sold in the optimization. This constraint can be set in
addition to (or instead of) the other Holdings Bounds (cash
and non-cash positions) and the MinHolding for all assets.
If any constraints conflict for particular assets, Barra
PortfolioManager uses the imported bounds for those
assets, regardless of other constraint settings. This requires
that the user first creates an asset attribute for the type of
bound to use (such as MinBound_Absolute or
MinBound_Relative) and then imports the asset data.
Minimum bounds can be set as absolute values or relative
to another portfolio or benchmark.
Refer AssetLvlBoundType.

UpperBound Y AssetLvlBoundType Use to specify the name of the asset attribute that contains
the maximum weight for specific assets in the optimal
portfolio. This constraint can be set in addition to (or
instead of) the other Holdings Bounds (cash and non-cash
positions) and the MinHolding for all assets.
If any constraints conflict for particular assets, Barra
PortfolioManager uses the imported bounds for those

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 104 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


assets, regardless of other constraint settings. This requires
that the user first creates an asset attribute for the type of
bound to use (such as MaxBound_Absolute or
MaxBound_Relative) and then imports the asset data.
Maximum bounds can be set as absolute values or relative
to another portfolio or benchmark.
Refer AssetLvlBoundType.

AssetLvlBoundType
The AssetLvlBoundType element is a child element of the LowerBound and UpperBound elements. Its
child elements include AssetAttribute and ClearData.

Table 79. AssetLvlBoundType

Attribute Required? Data Type (Length) Description

AssetAttribute N TypeAssetAttribute Refer Table 80.

ClearData N boolean Use this choice to clear the value specified in the
base optimization profile.

The AssetAttribute element contains the TypeAssetAttribute element, which provides the details of the
asset attribute.

Table 80. TypeAssetAttribute

Attribute Required? Data Type (Length) Description

AssetAttributeName N string Name of the asset attribute.

AssetAttributeOwner N string Owner of the asset attribute. Note that this is case-
sensitive.

AssetParing
The AssetParing element is a child element of the MaxUtilityConstraints element. MinOfAssets and
MaxOfAssets are its child elements.

Table 81. AssetParing

Attribute Required? Data Type (Length) Description

MinOfAssets N TradeConstraintType Enter the minimum number of assets to be held in


the optimal portfolio.

MaxOfAssets N TradeConstraintType Enter the maximum number of assets to be held in


the optimal portfolio.

TradeConstraintType
The TradeConstraintType element is a child element of the MinOfAssets and MaxOfAssets elements.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 105 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 82. TradeConstraintType

Attribute Required? Data Type (Length) Description

Value N ValueType The Value element contains the ValueType


element, which provides the following choices to
specify the constraint value:
• Double
• PortfolioAttribute
• Cleardata
Refer Table 75.

SetPriority N PriorityType Contains the PriorityType element, which enables


you to specify if the constraint is mandatory or
soft. Acceptable values are:
• MANDATORY
• SOFT

TradePairingBySide
The TradePairingBySide element is a child element of the MaxUtilityConstraints element. Use this
constraint to find an optimal portfolio by specifying a small, fixed number of trades, which can be
different for long and short positions.

Table 83. TradePairingBySide

Attribute Required? Data Type (Length) Description

MinOfTradesLong N TradePairingType Use this field to specify the minimum number of


long trades. Refer TradePairingType.

MaxOfTradesLong N TradePairingType Use this field to specify the maximum number of


long trades. Refer TradePairingType.

MinOfTradesShort N TradePairingType Use this field to specify the minimum number of


short trades. Refer TradePairingType.

MaxOfTradesShort N TradePairingType Use this field to specify the maximum number of


short trades. Refer TradePairingType.

TradePairingByType
The TradePairingByType element is a child element of the MinOfTradesLong, MaxOfTradesLong,
MinOfTradesShort and MaxOfTradesShort elements.

Table 84. TradePairingType

Attribute Required? Data Type (Length) Description

Value N TradePairingValueType The Value element contains the


TradeParingValueType element, which provides the
following choices to specify the constraint value:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 106 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


• Value
• Cleardata
Refer TradePairingValueType below.

SetPriority N PriorityType Contains the PriorityType element, which enables you


to specify if the constraint is mandatory or soft.
Acceptable values are:
• MANDATORY
• SOFT

Table 85. TradePairingValueType

Attribute Required? Data Type (Length) Description

Value N integer Enter values in the respective fields for the minimum
and maximum number of long trades and the
minimum and maximum number of short trades for
the portfolio.

Cleardata N boolean Use this choice to clear the value specified in the
base optimization profile.

TradeLimitsBySide
The TradeLimitsBySide element is a child element of the MaxUtilityConstraints element. Use this
constraint to define the default limits on how much every asset in the universe can be traded separately
for the long and short leg of the portfolio.

Table 86. TradeLimitsBySide

Attribute Required? Data Type (Length) Description

LongMaxTrade N TradeLimitType Use to set a limit on the amount you can trade any
asset, as a percentage of the long leg or short leg
of the optimized portfolio. Enter the values in
percent for the maximum trade on the long and/or
short sides.
LongBuyLessThan N TradeLimitType
Refer TradeLimitType.

LongSellLessThan N TradeLimitType

ShortMaxTrade N TradeLimitType

ShortBuyLessThan N TradeLimitType

ShortSellLessThan N TradeLimitType

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 107 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

TradeLimitType
TradeLimitByType is a child element of the LongMaxTrade, LongBuyLessThan, LongSellLessThan,
ShortMaxTrade, ShortBuyLessThan and ShortSellLessThan elements.

Table 87. TradeLimitType

Attribute Required? Data Type (Length) Description

Value N TradeLimitValueType The Value element contains the


TradeLiimitValueType element, which
provides the following choices to specify the
constraint value:
• Value
• Cleardata
Refer TradeLimitValueType below.

Table 88. TradeLimitValueType

Attribute Required? Data Type (Length) Description

Value N double Enter the values in percent for the maximum


trade on the long and/or short sides.

Cleardata N boolean Use this choice to clear the value specified in


the base optimization profile.

RestrictedList
The RestrictedList element is a child element of the MaxUtilityConstraints element. This constraint allows
you to designate a whole portfolio or portfolio attributes, as Do Not Hold or No Trade, either firm-wide or
for a specific account.

Table 89. RestrictedList

Attribute Required? Data Type (Length) Description

FirmWideRestrictedList N RestrictedListType Use to apply firmwide restrictions on a whole


portfolio or portfolio attributes.
Refer RestrictedListType below.

AccountSpecificRestrictedList N RestrictedListType Use to apply account-specific restrictions on a


whole portfolio or portfolio attributes.
Refer RestrictedListType below.

RestrictionType N RestrictionType Use to specify the restriction type for the


selected restricted list. Acceptable values are:
• NO_TRADE
• DO_NOT_HOLD

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 108 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


If you use this to designate both firm-wide and
account-specific restrictions, the same
restriction type applies to both.

RestrictedListType
RestrictedListType is a child element of the FirmWideRestrictedList and AccountSpecificRestrictedList
elements.

Table 88 RestrictedListType

Choice Required? Data Type (Length) Description

Value N ReferencePortfolioType Specify the portfolio or portfolio attribute.


Refer ReferencePortfolioType.

Cleardata N boolean Use this choice to clear the value specified


in the base optimization profile.

MaxUtilityGeneralSettings
The MaxUtilityGeneralSettings element is a child element of the MaxUtility element.

ReferenceSettings
The ReferenceSettings element is a child element of the MaxUtilityGeneralSettings element.

ReferenceProperties
The ReferenceProperties element is a child element of the ReferenceSettings element. Its child elements
include PrimaryBenchmark, SecondaryBenchmark, Market, and Universe.

Table 90. ReferenceProperties

Attribute Required? Data Type (Length) Description

PrimaryBenchmark N ReferencePropertyType Use to specify the primary benchmark. Refer


ReferencePropertyType.

SecondaryBenchmark N Use to specify a secondary benchmark if needed.


Refer ReferencePropertyType.

Market N Use to set your market. Refer


ReferencePropertyType.

Universe N Use to define the universe. Refer


ReferencePropertyType.

Currency Y string Select a currency.

ReferencePropertyType
The ReferencePropertyType is a child element of the PrimaryBenchmark, SecondaryBenchmark, Market,
and Universe elements. It allows to set the benchmarks, market and universe to either cash or a portfolio,
and also to clear a previously-defined value.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 109 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 91. ReferencePropertyType

Attribute Required? Data Type (Length) Description

Cash N string Set the benchmarks or market or universe to cash.

ClearData N boolean Clear the previously-defined value for benchmarks


or market or universe.

PortfolioType N PortfolioDataType Specify details of the portfolio that will be used as


the benchmark or market or universe. Refer Table
85.

The PortfolioType element is a child element of the ReferencePropertyType element and contains the
PortfolioDataType element.

Table 92. PortfolioDataType

Attribute Required? Data Type (Length) Description

PortfolioName Y string The portfolio to be used as the benchmark or


market or universe.

PortfolioOwner Y string Owner of the portfolio that will be used at the


benchmark or market or universe.

Importing Rebalance Profiles


Starting with the Barra PortfolioManager 3.24.7 release, users can also import rebalance profiles via
SubmitRebalanceJobRequest. As the BDT API does not support the creation of a new optimization
profile, users will need to export an existing profile from the application UI, and then import it using the
BDT API. Follow these easy steps:

1. In Barra PortfolioManager, go to Tools > Import/Export > Profile > Export Single to export your
Rebalance Profile.
2. Open the profile in Notepad++ (or any similar editor).
3. Modify the profile as needed.
4. Select all the content and click Plugins > MIME Tools > Base64 Encode.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 110 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

5. In the SubmitRebalanceJobRequest, create a ImportRebalanceProfileSettingsBase64Encoded


tag and paste the encoded contents inside this tag.

Important: Use either the RebalanceProfileSettingsArgs element or the


ImportRebalanceProfileSettingsBase64Encoded tag to override a rebalance profile through BDT API. If
both tags are included in a request, then the profile provided via the
ImportRebalanceProfileSettingsBase64Encoded tag will be used.
To create the SubmitRebalanceJobRequest object, the following steps are required:
1. Create a request document with a declaration and instantiation. For example:
SubmitRebalanceJobRequestDocument myDoc;
myDoc = SubmitRebalanceJobRequestDocument.Factory.newInstance();

2. Create an optimization job with a declaration and instantiation. For example:


SubmitRebalanceJobRequestDocument.SubmitRebalanceJobRequest
myRequest;
myRequest = myDoc.addNewSubmitRebalanceJobRequest();

3. Set the request attributes (refer Tables 68-92). For example:


myRequest.setUser("myUser");
myRequest.setPassword("myPassword");
myRequest.setClient("myClient");
RebalanceJobArgs rebSettings = RebalanceJobArgs.
Factory.newInstance();
rebSettings.setIterationName ("Iteration1");
rebSettings.setAnalysisDate ("AnalysisDate");

4. Create specific parameters for the Single Optimization type (refer SingleOptimizationProfile).

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 111 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitRebalanceJobResponse
The SubmitRebalanceJobResponse element, a child element of the SubmitRebalanceJob operation,
contains the JobID as a string in the SubmitRebalanceJobResponse document that is returned as the
response to the SubmitRebalanceJobRequest element (refer SubmitRebalanceJobRequest). This string
can then be used programmatically in other request elements, such as GetRebalanceJobStatus and
ListRebalanceJobs.

Table 93. SubmitRebalanceJobResponse

Attribute Required? Data Type (Length) Description

JobID Y string The rebalance Job ID assigned programmatically


to the rebalancejob in the
SubmitRebalanceJobRequest document.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 112 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceSummaryReport
The GetRebalanceSummaryReport operation consists of the GetRebalanceSummaryReportRequest
element and the GetRebalanceSummaryReportResponse element.

GetRebalanceSummaryReportRequest
The GetRebalanceSummaryReportRequest element, a child element of the GetRebalanceSummaryReport
operation, will return the attributes of the OptSummaryReport element contained in the
GetRebalanceSummaryReportResponse document (refer GetRebalanceSummaryReportResponse).

Table 94. GetRebalanceSummaryReportRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

Portfolio Y int Enter the index of the portfolio. This is always 1,


except for efficient frontier optimizations, where the
value represents the number that identifies the
portfolio on the efficient frontier.

To create the GetRebalanceSummaryReportRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceSummaryReportRequestDocument myDoc;
myDoc =
GetRebalanceSummaryReportRequestDocument.Factory.newInstance();
2. Create a job with a declaration and instantiation. For example:
GetRebalanceSummaryReportRequestDocument.
GetRebalanceSummaryReportRequest myRequest = myDoc.addNew
GetRebalanceSummaryReportRequest ();
3. Set the request attributes (refer Table 94). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)
myRequest.Set Portfolio(“myPortfolio”)

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 113 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

OptSummaryReport my OptSummaryReport =stub.


GetRebalanceSummaryReportRequest("myUser", "myClient", "myPassword","
myJobID", myPortfolio);

GetRebalanceSummaryReportResponse
The GetRebalanceSummaryReportResponse element, a child element of the
GetRebalanceSummaryReport operation, contains the attributes of the OptSummaryReport element
within the GetRebalanceSummaryReportResponse document that is returned as the response to the
GetRebalanceSummaryReportRequest element (refer GetRebalanceSummaryReportRequest).

OptSummaryReport
OptSummaryReport is a child element of the GetRebalanceSummaryReportResponse element.

OptSummaryRow
OptSummaryRow is child element of the OptSummaryReport element.

Table 95. OptSummaryRow

Attribute Required? Data Type (Length) Description

name Y string Name of the row in the summary report.

OptSummaryColumn
OptSummaryColumn is a child element of the OptSummaryRow element.

Table 96. OptSummaryColumn

Attribute Required? Data Type (Length) Description

name Y string Name of the column corresponding to the row in


the summary report.

value Y string Value of the cell data.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 114 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ListRebalanceJobs
The ListRebalanceJobs operation consists of the ListRebalanceJobsRequest element and the
ListRebalanceJobsResponse element.

ListRebalanceJobsRequest
The ListRebalanceJobsRequest element, a child element of the ListRebalanceJobs operation, will return
the attributes of the RebalanceJobRecord element contained in the ListRebalanceJobsResponse
document (refer ListRebalanceJobsResponse).

Table 97. ListRebalanceJobsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

AnalysisDate Y date The analysis date used in the rebalance job.

RebalanceSettings Y RebalanceSettings Rebalance job setting such as rebalance profile


name, portfolio name, and so on.
Refer RebalanceSettings.

RebalanceSettings
RebalanceSettings is an element of the ListRebalanceJobsRequest element that enables you to specify
the rebalance settings.

Table 98. RebalanceSettings

Attribute Required? Data Type (Length) Description

OptimizationProfileName Y string The name of the rebalance profile used in


the rebalance job.

OptimizationProfileOwner Y string The owner of the rebalance profile used in


the rebalance job.

PortfolioName Y string The name of the portfolio used in the


rebalance job.

PortfolioOwner Y string The owner of the portfolio used in the


rebalance job.

To create the ListRebalanceJobsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
ListRebalanceJobsRequestDocument myDoc;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 115 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myDoc = ListRebalanceJobsRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


ListRebalanceJobsRequestDocument.ListRebalanceJobsRequest myJob;
myJob = myDoc.addNewListRebalanceJobsRequest();

3. Set the request attributes (see Tables 97 and 98). For example:
myJob.setUser("myUser");
myJob.setClient("myClient");
myJob.setPassword("myPassword");
myJob.setAnalysisDate("AnalysisDate");
RebalanceSettings rebSettings =
RebalanceSettings.Factory.newInstance();
rebSettings. setOptimizationProfileName (“profile name”);
rebSettings.setOptimizationProfileOwner(“myUser”);
rebSettings.setPortfolioName(“portfolioName”);
rebSettings.set PortfolioOwner(“myUser”);

4. Send the request. For example:


BDTServiceStub myStub = new BDTServiceStub();
ListRebalanceJobsResponseDocument myResp = myStub.ListRebalanceJobs
(myDoc);
RebalanceJobRecord[] myJobRecords =
myResp.getListRebalanceJobsResponse().getListRebalanceJobs().
getRebalanceJobRecordArray();
for (RebalanceJobRecord myRecord: myRecords) {
System.out.println("Job ID: "+myRecord.getJobID());
System.out.println("Job ID: "+myRecord.getJobName());
System.out.println("Job ID: "+myRecord.getOwner());
System.out.println("Job ID: "+myRecord.getStartTime());
System.out.println("Job ID: "+myRecord.getCompletionTime());
System.out.println("Job ID: "+myRecord.getImportJobStatus());
}

Note: The WSDL2JAVA tool generates the BDTServiceStub class. This class contains the functions that
send requests to and receive responses from the web service operations.
For .NET:
RebalanceJobRecords myJobRecords = bdtWS.ListRebalanceJobs("myUser",
"myClient","myPassword",);

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 116 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

foreach(RebalanceJobRecord myRecord in myJobRecords)


{
Console.WriteLine("Job ID: "+myRecord.JobID);
Console.WriteLine("Job Name: "+myRecord.JobName);
Console.WriteLine("Owner: "+myRecord.Owner);
Console.WriteLine("Start Time: "+myRecord.StartTime);
Console.WriteLine("Completion Time: "+myRecord.CompletionTime);
Console.WriteLine("Job Status: "+myRecord.ImportJobStatus);
}

ListRebalanceJobsResponse
The ListRebalanceJobsResponse element, a child element of the ListRebalanceJobs operation, contains
the attributes of the RebalanceJobRecord element contained in the ListRebalanceJobsResponse
document that is returned as the response to the ListRebalanceJobsRequest element (refer
ListRebalanceJobs).

RebalanceJobRecords
RebalanceJobRecord is a child element of the ListRebalanceJobsRequest element.

Table 99. RebalanceJobRecord

Attribute Required? Data Type (Length) Description

JobID Y string The rebalance Job ID assigned to the rebalance


job.

StartTime Y dateTime The date and time at which the rebalance job
began.

IterationName Y string The name of the rebalance job iteration.

IterationNumber Y int The number assigned to the iteration.

OptimizationJobStatus Y string Indicates the completion status of the rebalance


job. Acceptable values are:
• RebalanceJobStatus.PENDING
• RebalanceJobStatus.COMPLETED
• RebalanceJobStatus.FAILED

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 117 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteRebalanceJob
The DeleteRebalanceJob operation consists of the DeleteRebalanceJobRequest element and the
DeleteRebalanceJobResponse element.

DeleteRebalanceJobRequest
The DeleteRebalanceJobRequest element, a child element of the DeleteRebalanceJob operation, will
delete one rebalance job from Barra PortfolioManager. It will return each deleted job’s StatusValue in the
DeleteOptimizationJobResponse document (refer DeleteRebalanceJobResponse). The response can then
be used programmatically in other request elements.

Table 100. DeleteRebalanceJobRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job to be deleted.

To create the DeleteRebalanceJobRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
DeleteRebalanceJobRequestDocument myDoc;
myDoc = DeleteRebalanceJobRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


DeleteRebalanceJobRequestDocument.DeleteRebalanceJobRequest myRequest
= myDoc.addNewDeleteRebalanceJobRequest();
3. Set the request attributes (refer Table 100). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)

In .NET, send the following:


int i=stub.DeleteRebalanceJob("myUser", "myClient", "myPassword","
myJobID");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 118 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteRebalanceJobResponse
The DeleteRebalanceJobResponse element, a child element of the DeleteRebalanceJob operation,
contains the attribute StatusValue in the DeleteRebalanceJobResponse document that is returned as the
response to the DeleteRebalanceJobRequest element (refer DeleteRebalanceJobRequest).

Table 101. DeleteRebalanceJobResponse

Attribute Required? Data Type (Length) Description

StatusValue Y int Indicates the deletion status of the rebalance job.


Returned values:
• =0: job deletion completed successfully
• <0: job deletion failed with the error status code
indicated. Refer Error Codes.
• >0: job deletion is pending with the suggested
wait indicated in seconds

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 119 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceStatistics
The GetRebalanceStatistics operation consists of the GetRebalanceStatisticsRequest element and the
GetRebalanceStatisticsResponse element.

GetRebalanceStatisticsRequest
The GetRebalanceStatisticsRequest element, a child element of the GetRebalanceStatistics operation, will
return the attributes of the OptimizedPortfolioStatistics element contained in the
GetRebalanceStatisticsResponse document (refer GetRebalanceStatisticsResponse).

Table 102. GetRebalanceStatisticsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

Portfolio Y int Enter the index of the portfolio. This is always 1, except
for efficient frontier optimizations, where the value
represents the number that identifies the portfolio on
the efficient frontier.

To create the GetRebalanceStatisticsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceStatisticsRequestDocument myDoc;
myDoc = GetRebalanceStatisticsRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetRebalanceStatisticsRequestDocument. GetRebalanceStatisticsRequest
myRequest = myDoc.addNewGetRebalanceStatisticsRequest ();

3. Set the request attributes (refer Table 102). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)
myRequest.SetPortfolio(“myPortfolioIndex”)

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 120 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

OptimizedPortfolioStatistics myOptimizedPortfolioStatistics =stub.


GetRebalanceStatisticsRequest("myUser", "myClient", myPassword","
myJobID", "myPortfolioIndex");

GetRebalanceStatisticsResponse
The GetRebalanceStatisticsResponse element, a child element of the GetRebalanceStatistics operation,
contains the attributes of the OptimizedPortfolioStatistics element in the
GetRebalanceStatisticsResponse document that is returned as the response to the
GetRebalanceStatisticsRequest element (refer GetRebalanceStatisticsRequest).

OptimizedPortfolioStatistics
OptimizedPortfolioStatistics is a child element of the GetRebalanceStatisticsResponse element that lists
the statistics of the rebalance.

Table 103. OptimizedPortfolioStatistics

Attribute Required? Data Type (Length) Description

ActiveRisk Y double Risk indicating active management decisions


that cause the portfolio weights to deviate from
the benchmark.

ActiveFactorRisk Y double Common factor sources of active risk in an


asset, according to the asset’s exposures.

ActiveSpecificRisk Y double Specific risk is the idiosyncratic risk of a


company, the component of risk that is not due
to broader influences and is not shared across
companies.

NetReturn Y double Return of the portfolio over the selected period.

Turnover Y double Change in portfolio holdings as a percent of the


portfolio value.

TotalPenaltyCost Y double Provides a measure of the costs associated with


the penalty constraints.

TransactionCost Y double Provides a measure of the costs associated with


the trading activity in the portfolio.

Beta Y double Measures the sensitivity of a portfolio to its


benchmark.

ImpliedRiskAversion Y double Risk aversion is used to compute the implied


alpha and the active implied alpha. The level of
risk aversion quantifies the acceptable price of
risk.

TransferCoefficient Y double Correlation between alpha and active portfolio


weights as the cross-sectional correlation
between alphas and the active weights without
any risk adjustment.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 121 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

InformationRatio Y double Measures the active return achieved per unit of


active risk, where active risk is calculated as the
standard deviation of active return.

StatusMessage Y string Indicates the status of the optimization.

TotalShortRebateCosts Y double Amount of the interest earned on proceeds,


minus the sum of all costs associated with short-
selling, is the short rebate the seller actually gets
back. A negative short rebate implies a net short
cost to the short-seller.

NumberOfAssets Y string Number of assets held on the date of the


analysis.

ExecutionTime Y double Time taken to execute the optimization job.

SpannedAlpha Y double An asset’s active return, or alpha, that is spanned


by the risk exposures.

ResidualAlpha Y double An asset’s active return, or alpha, that is residual


to the risk exposures.

ConditionalName Y string Name of the conditional override applied to the


base profile.

Condition Y string Use to adjust your backtest to changing market


conditions, portfolio characteristics, or different
business cycles.

Alerts Y string Define your own pre-rebalance conditional


checks on your portfolio to ensure that data
checks or policy checks pass before proceeding.

SolverInfo Y string Information about the solver used by the


optimizer.

BuyTurnover Y double Buy-side turnover.

SellTurnover Y double Sell-side turnover.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 122 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceTradeList
The GetRebalanceTradeList operation consists of the GetRebalanceTradeListRequest element and the
GetRebalanceTradeListResponse element.

GetRebalanceTradeListRequest
The GetRebalanceTradeListRequest element, a child element of the GetRebalanceTradeList operation,
will return the attributes of the OptimizerTradeListInfo element contained in the
GetRebalanceTradeListResponse document (refer GetRebalanceTradeListResponse).

Table 104. GetRebalanceTradeListRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

Portfolio Y int Enter the index of the portfolio. This is always 1, except
for efficient frontier optimizations, where the value
represents the number that identifies the portfolio on
the efficient frontier.

To create the GetRebalanceTradeListRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceTradeListRequestDocument myDoc;
myDoc = GetRebalanceTradeListRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetRebalanceTradeListRequestDocument. GetRebalanceTradeListRequest
myRequest = myDoc.addNew GetRebalanceTradeListRequest ();

3. Set the request attributes (refer Table 104). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)
myRequest.SetPortfolio(“myPortfolioIndex”)

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 123 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

OptimizerTradeListInfo my OptimizerTradeListInfo =stub.


GetRebalanceTradeListRequest("myUser", "myClient", "myPassword","
myJobID", myPortfolioIndex);

GetRebalanceTradeListResponse
The GetRebalanceTradeListResponse element, a child element of the GetRebalanceTradeList operation,
contains the attributes of the OptimizerTradeListInfo element within the GetRebalanceTradeListResponse
document that is returned as the response to the GetRebalanceTradeListRequest element (refer
GetRebalanceTradeListRequest).

OptimizerTradeListInfo
OptimizerTradeListInfo is a child element of the GetRebalanceTradeListResponse element that lists
details of the trade list.

Table 105. OptimizerTradeListInfo

Attribute Required? Data Type (Length) Description

InitialShares Y double Portfolio shares prior to optimization.

TradedShares Y double Trades suggested by the optimizer.

FinalShares Y double Portfolio shares post optimization.

Price Y double Asset’s price on analysis date.

TradedValue Y double Based on trades suggested by optimizer.

TradedValuePercent Y double Based on trades suggested by optimizer.

AssetId
AssetId is a child element of the OptimizerTradeListInfo element and the AssetWeight element.

OptimalPortfolioAssetIdentifier
The OptimalPortfolioAssetIdentifier element is a child element of the AssetId element.

Table 106. OptimalPortfolioAssetIdentifier

Attribute Required? Data Type (Length) Description

PermId N string Permanent ID of the asset.

Name N string Name of the asset.

Id
The Id element is a child element of the OptimalPortfolioAssetIdentifier element and contains an array of
the ID and ID type for assets.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 124 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 107. Id

Attribute Required? Data Type (Length) Description

AssetIdentifier Y array An array of ID and IDType pairs (one pair per asset).

ID Y string ID for the asset.

IDType Y string ID type for the asset ID.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 125 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceJobStatus
The GetRebalanceJobStatus operation consists of GetRebalanceJobStatusRequest element and the
GetRebalanceJobStatusResponse element.

GetRebalanceJobStatusRequest
The GetRebalanceJobStatusRequest element, a child element of the GetRebalanceJobStatus operation,
will return the StatusValue as an integer in the GetRebalanceJobStatusResponse document (refer
GetRebalanceJobStatusResponse). This integer can be used programmatically in other request elements.

Table 108. GetRebalanceJobStatusRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

To create the GetRebalanceJobStatus object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceJobStatusDocument myDoc;
myDoc = GetRebalanceJobStatusDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetRebalanceJobStatusDocument. GetRebalanceJobStatus myRequest =
myDoc.addNew GetRebalanceJobStatus ();

3. Set the request attributes (refer Table 108). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)

In .NET, send the following:


JobStatus myJobStatus =stub. GetRebalanceJobStatusRequest("myUser",
"myClient", "myPassword"," myJobID");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 126 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceJobStatusResponse
The GetRebalanceJobStatusResponse element, a child element of the GetRebalanceJobStatus operation,
contains the StatusValue as an integer in the GetRebalanceJobStatusResponse document that is
returned as the response to the GetRebalanceJobStatusRequest element (refer
GetRebalanceJobStatusRequest). This integer can then be used programmatically in other request
elements.

Table 109. GetRebalanceJobStatusResponse

Attribute Required? Data Type (Length) Description

StatusValue Y int Indicates the status of the rebalance job.


Returned values are:
• =0 – rebalance job completed
successfully
• <0 – rebalance job failed with the
error status code indicated. Refer
Error Codes.
• >0 – rebalance job is pending with the
suggested wait indicated in seconds.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 127 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceOptimalWeights
The GetRebalanceOptimalWeights operation consists of the GetRebalanceOptimalWeightsRequest
element and the GetRebalanceOptimalWeightsResponse element.

GetRebalanceOptimalWeightsRequest
The GetRebalanceOptimalWeightsRequest element, a child element of the GetRebalanceOptimalWeights
operation, will return the attributes of the OptimalWeights element contained in the
GetRebalanceOptimalWeightsResponse document (refer GetRebalanceOptimalWeightsResponse).

Table 110. GetRebalanceOptimalWeightsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

Portfolio Y int Enter the index of the portfolio. This is always 1,


except for efficient frontier optimizations, where the
value represents the number that identifies the
portfolio on the efficient frontier.

To create the GetRebalanceOptimalWeights object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceOptimalWeightsDocument myDoc;
myDoc = GetRebalanceOptimalWeightsDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetRebalanceOptimalWeightsDocument. GetRebalanceOptimalWeights
myRequest = myDoc.addNew GetRebalanceOptimalWeights ();

3. Set the request attributes (refer Table 110). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)
myRequest.SetPortfolio(“myPortfolioIndex”)

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 128 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

OptimalWeights myOptimalWeights =stub.


GetRebalanceOptimalWeightsRequest("myUser", "myClient",
"myPassword"," myJobID", myPortfolio);

GetRebalanceOptimalWeightsResponse
The GetRebalanceOptimalWeightsResponse element, a child element of the
GetRebalanceOptimalWeights operation, contains the attributes of the OptimalWeights element within the
GetRebalanceOptimalWeightsResponse document that is returned as the response to the
GetRebalanceOptimalWeightsRequest element (refer GetRebalanceOptimalWeightsRequest).

OptimalWeights
The OptimalWeights element is a child element of the GetRebalanceOptimalWeightsResponse element.

AssetWeight
The AssetWeight element is a child element of the OptimalWeights element.

Table 111. AssetWeight

Attribute Required? Data Type (Length) Description

AssetId Y OptimalPortfolioAssetIdentifier Refer OptimalPortfolioAssetIdentifier.

Weight Y double Weight of the asset in the optimized


portfolio.

IsCashAsset Y boolean Indicates if the asset is a cash asset.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 129 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceStatusAndOptimalWeights
The GetRebalanceStatusAndOptimalWeights operation consists of the
GetRebalanceStatusAndOptimalWeightsRequest element and the
GetRebalanceStatusAndOptimalWeightsResponse element.

GetRebalanceStatusAndOptimalWeightsRequest
The GetRebalanceStatusAndOptimalWeightsRequest element, a child element of the
GetRebalanceStatusAndOptimalWeights operation, will return the attributes of the OptimalWeights (if the
rebalance job is complete) or the Status of the job (if the rebalance job is pending) in the
GetRebalanceStatusandOptimalWeightsResponse document (refer
GetRebalanceStatusAndOptimalWeightsResponse).

Table 112. GetRebalanceStatusAndOptimalWeightsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job.

Portfolio Y int Enter the index of the portfolio. This is always 1,


except for efficient frontier optimizations, where
the value represents the number that identifies the
portfolio on the efficient frontier.

To create the GetRebalanceStatusAndOptimalWeightsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceStatusAndOptimalWeightsRequestDocument myDoc;
myDoc =
GetRebalanceStatusAndOptimalWeightsRequestDocument.Factory.newInstanc
e();

2. Create a request job with a declaration and instantiation. For example:


GetRebalanceStatusAndOptimalWeightsRequestDocument.
GetRebalanceStatusAndOptimalWeightsRequestmyRequest;
myRequest = myDoc.addNew
GetRebalanceStatusAndOptimalWeightsRequest();

3. Set the request attributes (see Table 112). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 130 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myRequest.setPassword("myPassword");
myRequest.setJobID("myJobID");
myRequest.SetPortfolio(“myPortfolioIndex”)

In .NET, send the following:


int i=stub. GetRebalanceStatusAndOptimalWeights ("myUser",
"myClient", "myPassword"," myJobID", myPortfolioIndex);

GetRebalanceStatusAndOptimalWeightsResponse
The GetRebalanceStatusAndOptimalWeightsResponse element is a child element of the
GetRebalanceStatusAndOptimalWeights operation. It contains the Status or OptimalWeights elements
depending on the job status in the GetRebalanceStatusAndOptimalWeightsResponse document that is
returned as the response to the GetRebalanceStatusAndOptimalWeightsRequest element (refer
GetRebalanceStatusAndOptimalWeightsRequest).

Table 113. GetRebalanceStatusAndOptimalWeightsResponse

Attribute Required? Data Type (Length) Description

Status N string Indicates the status of the rebalance job and returns
“WAITING” only if the job is currently in progress. If the
job is complete, only optimal portfolio weights are
returned.

OptimalWeights N Refer OptimalWeights.

OptimalWeights
OptimalWeights is a child element of the GetRebalanceStatusAndOptimalWeightsResponse element.

AssetWeight
The AssetWeight element is a child element of the OptimalWeights element.

Table 114. AssetWeight

Attribute Required? Data Type (Length) Description

AssetId Y OptimalPortfolioAssetIdentifier Refer OptimalPortfolioAssetIdentifier.

Weight Y double Weight of the asset in the optimized


portfolio.

IsCashAsset Y boolean Indicates if the asset is a cash asset.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 131 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetRebalanceInputFiles
The GetRebalanceInputFiles operation consists of the GetRebalanceInputFilesRequest element and the
GetRebalanceInputFilesResponse element.

GetRebalanceInputFilesRequest
The GetRebalanceInputFilesRequest element, a child element of the GetRebalanceInputFilesJob
operation, will retrieve the saved debug info for a rebalance job from Barra PortfolioManager. It will return
a zipped file, which will contain three files (.xml, .wsp, and .txt) with the optimization input data, in the
GetRebalanceInputFilesResponse document (refer GetRebalanceInputFilesResponse).

Table 115. GetRebalanceInputFilesRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the rebalance job to be deleted.

Portfolio Y int Enter the index of the portfolio. This is always 1, except
for efficient frontier optimizations, where the value
represents the number that identifies the portfolio on
the efficient frontier.

To create the GetRebalanceInputFilesRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetRebalanceInputFilesRequestDocument myDoc;
myDoc = GetRebalanceInputFilesRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetRebalanceInputFilesRequestDocument. GetRebalanceInputFilesRequest
myRequest = myDoc.addNewGetRebalanceInputFilesRequest();

3. Set the request attributes (refer Table 115). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)
myRequest.SetPortfolio(“myPortfolioIndex”)

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 132 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

int i=stub. GetRebalanceInputFiles("myUser", "myClient",


"myPassword"," myJobID","myPortfolioIndex");

GetRebalanceInputFilesResponse
The GetRebalanceInputFilesResponse element, a child element of the GetRebalanceInputFiles operation,
contains a zipped file in the GetRebalanceInputFilesResponse document that is returned as the response
to the GetRebalanceInputFilesRequest element (refer GetRebalanceInputFilesRequest). The zipped file
contains the optimization input data, which can be used for debugging, in three different formats (.xml,
.wsp, .txt).

RebalanceInputFiles
The RebalanceInputFiles is a child element of the GetRebalanceInputFilesResponse element.

AttachmentType
The AttachmentType element is the child element of the RebalanceInputFiles element.

Table 116. AttachmentType

Attribute Required? Data Type (Length) Description

FileName Y string The file name of the optimization input file retrieved.

ContentType Y string The type of data.


Note: Only ZIP content type is currently supported.

BinaryData Y base64binary The optimization input data.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 133 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ListSupportedReports
The ListSupportedReports operation provides a list of reports that can be submitted and retrieved
through the SubmitReportJob and RetrieveReports operations. It consists of the
ListSupportedReportsRequest element and the ListSupportedReportsResponse element. The list of
reports is returned as an XML object.

ListSupportedReportsRequest
The ListSupportedReportsRequest element, a child element of the ListSupportedReports operation, will
return the ReportDetails element contained in the ListSupportedReportsResponse document (refer
ListSupportedReportsResponse).

Table 117. ListSupportedReportsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

To create the ListSupportedReportsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
ListSupportedReportsRequestDocument myDoc;
myDoc = ListSupportedReportsRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


ListSupportedReportsRequestDocument. ListSupportedReportsRequest
myRequest = myDoc.addNewListSupportedReportsRequest ();

3. Set the request attributes (refer Table 117). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");

In .NET, send the following:


ReportDetails[] myReportDetails =stub.
ListSupportedReportsRequest("myUser", "myClient", myPassword");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 134 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ListSupportedReportsResponse
The ListSupportedReportsResponse element, a child element of the ListSupportedReports operation,
contains the attributes of the ReportDetails element contained in the ListSupportedReportsResponse
document that is returned as the response to the ListSupportedReportsRequest element.

ReportDetails
The ReportDetails element is a child element of the ListSupportedReportsRequest element.

ReportDetailsGroup
The ReportDetailsGroup is a child element of the ReportDetails element.

Table 118. ReportDetailsGroup

Attribute Required? Data Type (Length) Description

ReportId Y string ID of the supported report.


Example : BPM_PA_TOTAL_RETURN_REPORT

ReportName N string Name of the report as displayed in Barra


PortfolioManager.
Example : Return Attribution

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 135 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetReportParameters
The GetReportParameters operation uses the ReportId returned by the ListSupportedReportsResponse
element and returns the supported parameters that can be used to run a report. This operation consists
of the GetReportParametersRequest element and the GetReportParametersResponse element.

GetReportParametersRequest
The GetReportParametersRequest element, a child element of the GetReportParameters operation, will
return the attributes of the ReportParameters element contained in the GetReportParametersResponse
document (refer GetReportParametersResponse).

Table 119. GetReportParametersRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

ReportId
The ReportId element is a child element of the GetReportParametersRequest element.

ReportDetails
The ReportDetails element is a child element of the ReportId element. For details, see ReportDetails.
To create the GetReportParametersRequest object, the following steps are required:
1. Create a request document with a declaration and instantiation. For example:
GetReportParametersRequestDocument myDoc;
myDoc = GetReportParametersRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetReportParametersRequestDocument. GetReportParametersRequest
myRequest = myDoc.addNewGetReportParametersRequest ();

3. Set the request attributes (refer Table 119). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");

In .NET, send the following:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 136 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ReportParametersResponse[] myReportParameters
=stub.GetReportParameters("myUser", "myClient",
myPassword",”myReportId”);
ReportParametersResponse[0] =ReportName ;
ReportParametersResponse[1]= ReportParameters;

GetReportParametersResponse
The GetReportParametersResponse element, a child element of the GetReportParameters operation,
contains the attributes of the ReportParameters element in the GetReportParametersResponse document
that is returned as the response to the GetReportParametersRequest element.

ReportName
The ReportName element is a child element of the GetReportParametersResponse element.

ReportDetails
The ReportDetails element is a child element of the ReportName element. For details, see ReportDetails.

ReportParameters
The ReportParameters element is a child element of the GetReportParametersReponse element.

ReportParametersDef
The ReportParametersDef element is a child element of the ReportParameters element.

DefaultParameters
The DefaultParameters element is a child element of the ReportParametersDef element.

Parameters
The Parameters element is a child element of the DefaultParameters element

ParametersGroup
The ParametersGroup is a child element of the Parameters element.

Table 120. ParametersGroup

Attribute Required? Data Type (Length) Description

ParameterName Y string Name of the report parameter.


Example : ParameterName="timeSpanScope" or
“portfolioScope”

ParameterValue N string Value of the report parameter.


Example : <ParameterValueIdName ValueId="Full"

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 137 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


ValueName="Full Time-span"/>

ParametersNameandValues
The ParametersNameandValues element is a child element of the ReportParametersDef element.

Table 121. ParametersNameandValue

Attribute Required? Data Type (Length) Description

ParametersName Y string Name of the report parameter.


E.g., ParameterName="timeSpanScope" or
“portfolioScope”

ParameterValueIdName
The ParameterValueIdName element is a child element of the ParametersNameAndValues element.

ParameterValueGroup
The ParameterValueGroup is a child element of the ParameterValueIdName element.

Table 122. ParameterValueGroup

Attribute Required? Data Type (Length) Description

ValueId Y string Short name of the ParameterValue.


E.g., <ParameterValueIdName ValueId="Full"
ValueName="Full Time-span"/>

ValueName N string Full name or description of the ParameterValue.


E.g., <ParameterValueIdName ValueId="Full"
ValueName="Full Time-span"/>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 138 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitReportJob
The SubmitReportJob operation consists of the SubmitReportJobRequest element and the
SubmitReportJobResponse element.

SubmitReportJobRequest
The SubmitReportJobRequest element, a child element of the SubmitReportJob operation, will return the
attributes of the JobResponse element contained in the SubmitReportJobResponse document (refer
SubmitReportJobResponse).

Table 123. SubmitReportJobRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password

PAAttributionParam Y Refer PAAttributionParam.

PAAttributionParam
The PAAttributionParam element is a child element of the SubmitReportJobRequest element.

ReturnAttribution
The ReturnAttribution element is a child element of the PAAttributionParam element. It contains details
about the portfolios, analysis settings and time series settings to be used in the report.

Portfolios
The Portfolios element is a child element of the ReturnAttribution element. You can specify multiple
portfolios in a SubmitReportJobRequest element.

InputPortfolio
The InputPortfolio element is a child element of the Portfolios element.

NameAndOwner
The NameAndOwner element is a child element of the InputPortfolios element. It specifies the name and
owner of the portfolio.

Table 124. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the portfolio.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 139 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

Owner Y string Owner of the portfolio.

AnalysisSettings
The AnalysisSettings element is a child element of the ReturnAttribution and the SharedSettings
elements.

InputAnalysisSettings
The InputAnalysisSettings element is a child element of the AnalysisSettings element.

NameAndOwner
The NameAndOwner element is a child element of the InputAnalysisSettings element. It specifies the
name and owner of the analysis settings that will be used in the report.

Table 125. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the analysis settings to be used in the report.

Owner Y string Owner of the analysis settings to be used in the report.

TimeSeriesSettings
The TimeSeriesSettings element is a child element of the ReturnAttribution and the SharedSettings
elements.

InputTimeSeriesSettings
The InputTimeSeriesSettings element is a child element of the TimeSeriesSettings element.

TimeSeriesDateRange
The TimeSeriesDateRange element is a child element of the InputTimeSeriesSettings element. It can be
used to change the timeseries settings that will be used in the report. You can either specify a relative
date or a date range.

NameAndOwner
The NameAndOwner element is a child element of the InputTimeSeriesSettings element. It specifies the
name and owner of the time series settings that will be used in the report.

Table 126. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the time series settings to be used in the


report.

Owner Y string Owner of the time series settings to be used in the

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 140 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


report.

To create the SubmitReportJobRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
SubmitReportJobRequestDocument myDoc;
myDoc = SubmitReportJobRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


SubmitReportJobRequestDocument. SubmitReportJobRequest myRequest =
myDoc.addNewSubmitReportJobRequest ();
3. Set the request attributes (refer Tables 123-126). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setPAAttributionParam(“myPAAttributionParam”);

In .NET, send the following:


ReturnAttribution myReturnAttribution= new ReturnAttribution()
{
AnalysisSettings = myAnalysisSettings ,
Portfolios = myPortfolios ,
TimeSeriesSettings = myTimeSeriesSettings
};
ReportResponse resp = service.SubmitReportJob("myUser", "myClient",
"myPassword", myReturnAttribution);
string[] jobs = resp.JobId;

SubmitReportJobResponse
The SubmitReportJobResponse element, a child element of the SubmitReportJob operation, contains the
attributes of the JobResponse element contained in the SubmitReportJobResponse document that is
returned as the response to the SubmitReportJobRequest element.

JobResponse
The JobResponse element is a child element of the SubmitReportJobRequest element. It contains an
array of job IDs (one for each portfolio specified in the request) and a task ID associated with the report.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 141 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 127. JobResponse

Attribute Required? Data Type (Length) Description

JobId Y string Job ID for the request submitted. For performance


attribution reports, there may be multiple JobIds.
These JobIds will be linked by the TaskId.

TaskId Y string For performance attribution reports, multiple


JobIds may be created based on the definition of
the attribution request. All these JobIds are linked
by a single TaskId.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 142 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetReportJobStatus
The GetReportJobStatus operation consists of the GetReportJobStatusRequest element and the
GetReportJobStatusResponse element.

GetReportJobStatusRequest
The GetReportJobStatusRequest element, a child element of the GetReportJobStatus operation, will
return the attributes of the StatusValue element contained in the GetReportJobStatusResponse
document (refer GetReportJobStatusResponse).

Table 128. GetReportJobStatusRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

JobID Y string Enter the job ID of the report job.

To create the GetReportJobStatusRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetReportJobStatusRequestDocument myDoc;
myDoc = GetReportJobStatusRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetReportJobStatusRequestDocument. GetReportJobStatusRequest
myRequest = myDoc.addNewGetReportJobStatusRequest ();

3. Set the request attributes (refer Table 128). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.SetJobID(“myJobID”)

In .NET, send the following:


Int myStatusValue = stub.GetReportJobStatus("myUser", "myClient",
myPassword"," myJobID");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 143 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetReportJobStatusResponse
The GetReportJobStatusResponse element, a child element of the GetReportJobStatus operation,
contains the attributes of the StatusValue element in the GetReportJobStatusResponse document that is
returned as the response to the GetReportJobStatusRequest element (refer
GetReportJobStatusRequest).

Table 129. GetReportJobStatusResponse

Attribute Required? Data Type (Length) Description

StatusValue Y int Indicates the status of the job. The following values
are supported:
• 30 for a pending job.
• 1 for a successful job.
• -1 for a failed job.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 144 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

RetrieveReports
The RetrieveReports operation is used to retrieve reports in XML object format. It consists of the
RetrieveReportsRequest element and the RetrieveReportsResponse element. The following reports are
currently supported:
• Risk
− Portfolio Risk Summary
− Risk Attribution
− Allocation-Selection Risk Attribution
− Positions Report
− Factor Exposure
− GICS Exposure
• Return
− Portfolio Return Summary
− Return Attribution
− Time-Series Return Attribution
− Time Series Factor Comparison
− Factor Return Attribution
− Allocation-Selection Return Attribution
− Asset Contribution to Return

RetrieveReportsRequest
The RetrieveReportsRequest element, a child element of the RetrieveReports operation, will return the
ReportRoot element contained in the RetrieveReports Response document. To use the RetrieveReports
operation, we require two main parameters in the RetrieveReportsRequest element:
1. The preferred choice for retrieving a report. Currently, there are three ways to retrieve a report
(you must specify at least one):
− Retrieve by Task ID
− Retrieve by Performance Report Definition
− Retrieve by Risk Report Definition
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element name="TaskId"
type="xsd:string" minOccurs="0" maxOccurs="1"/>

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 145 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

<xsd:element name="PAReportDefinition"
type="bdt:ReturnAttribution" minOccurs="0" maxOccurs="1"/>
<xsd:element name="RiskReportsDefinition"
type="bdt:RiskReportsDefinition" minOccurs="0" maxOccurs="1"/>
</xsd:choice>

2. The preferred choice for specifiying report details. Currently, there two options available (you
must specify at least one):
− The ReportParameterList element, which can override the default parameters used to run the
report. Its child element is the ReportParametersDef element. This must include the
ReportName, which will be used to retrieve the report.
− The ReportTemplate element, which will specify the user-saved report template that should be
used to retrieve the report.

Table 130. RetrieveReportsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

TaskId N string Enter the TaskId returned through the


SubmitReportJob operation to retrieve performance
(return) reports.
Note that when the SubmitReportJob operation
includes multiple portfolios, the reports will be
retrieved only when all the portfolio jobs linked to the
TaskId have been completed.

PAReportDefinition N Use the same report definition that you use to run the
SubmitReportJob operation to retrieve the report. For
details, see PAReportDefinition.

RiskReportsDefinition N Use this to retrieve risk (point-in-time) reports. For


details, see RiskReportsDefinition.

ReportParameterList Y Refer ReportParameterList.

ReportTemplate N Refer ReportTemplate.

PAReportDefinition
The PAReportDefinition element is a child element of the RetrieveReportsRequest element.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 146 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ReturnAttribution
The ReturnAttribution element is a child element of the PAReportDefinition element. The parameters
must be the same as the ones used in the SubmitReportJob operation. It contains details about the
portfolios, analysis settings and time series settings to be used in the report.

Portfolios
The Portfolios element is a child element of the ReturnAttribution element. You can specify multiple
portfolios in a SubmitReportJobRequest element.

InputPortfolio
The InputPortfolio element is a child element of the Portfolios element.

NameAndOwner
The NameAndOwner element is a child element of the InputPortfolios element. It specifies the name and
owner of the portfolio.

Table 131. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the portfolio.

Owner Y string Owner of the portfolio.

AnalysisSettings
The AnalysisSettings element is a child element of the ReturnAttribution element.

InputAnalysisSettings
The InputAnalysisSettings element is a child element of the AnalysisSettings element.

NameAndOwner
The NameAndOwner element is a child element of the InputAnalysisSettings element. It specifies the
name and owner of the analysis settings that will be used in the report.

Table 132. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the analysis settings to be used in the


report.

Owner Y string Owner of the analysis settings to be used in the


report.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 147 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

TimeSeriesSettings
The TimeSeriesSettings element is a child element of the ReturnAttribution and the SharedSettings
elements.

InputTimeSeriesSettings
The InputTimeSeriesSettings element is a child element of the TimeSeriesSettings element.

NameAndOwner
The NameAndOwner element is a child element of the InputTimeSeriesSettings element. It specifies the
name and owner of the time series settings that will be used in the report.

Table 133. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the time series settings to be used in the


report.

Owner Y string Owner of the time series settings to be used in the


report.

TimeSeriesDateRange
The TimeSeriesDateRange element is a child element of the InputTimeSeriesSettings element. It can be
used to change the timeseries settings that will be used in the report. You can either specify a relative
date or a date range. The following reports are currently supported:
• Return Attribution
• Time-Series Return Attribution

Table 134. TimeSeriesDateRange

Attribute Required? Description

DateRelativeTo N Year to date, month to date, quarter to date relative to a specified date.
Includes two child elements – StartDateRangeValue and
DateRelativeToValue.
Allowed values:
• StartDateRangeValue – YEAR, QUARTER, MONTH
• DateRelativeToValue – TODAY, PREVIOUS_CLOSE,
PREVIOUS_MONTH_END, PREVIOUS_QUARTER_END,
PREVIOUS_YEAR_END

LatestDateRelativeTo N Most recent days, weeks, months, etc relative to a specified date. For
example, you can select latest six months relative to the previous closing
date. Includes two child elements -LatestStartDateRangeValue and
DateRelativeToValue.
Allowed values:
• LatestStartDateRangeValue – specify a date
• DateRelativeToValue – YEARS, QUARTERS, MONTHS, WEEKS,

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 148 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Description


DAYS, DAYS_WITHOUT_WEEKEND

FromStartDateToEndDate N From a specific date to another specific date. Includes two child
elements:
• FromDateValue
• ToDateValue

RiskReportsDefinition
The RiskReportsDefinition element is a child element of the RetrieveReportsRequest element.

Table 135. RiskReportsDefinition

Attribute Required? Data Type (Length) Description

AnalysisDate Y date Enter the date to run the risk report.

Portfolios
The Portfolios element is a child element of the RiskReportsDefinition element.

InputPortfolio
The InputPortfolio element is a child element of the Portfolios element.

NameAndOwner
The NameAndOwner element is a child element of the InputPortfolios element. It specifies the name and
owner of the portfolio.

Table 136. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the portfolio.

Owner Y string Owner of the portfolio.

AnalysisSettings
The AnalysisSettings element is a child element of the RiskReportsDefinition element.

InputAnalysisSettings
The InputAnalysisSettings element is a child element of the AnalysisSettings element.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 149 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

NameAndOwner
The NameAndOwner element is a child element of the InputAnalysisSettings element. It specifies the
name and owner of the analysis settings that will be used in the report.

Table 137. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the analysis settings to be used in the


report.

Owner Y string Owner of the analysis settings to be used in the


report.

ReportParameterList
The ReportParameterList element contains the ReportParametersDef element.

ReportTemplate
The ReportTemplate element is a child element of the RetrieveReportsRequest element.

Table 138. ReportTemplate

Attribute Required? Data Type (Length) Description

TemplateName Y string Name of the template to be used in the report.

TemplateOwner Y string Owner of the template to be used in the report.

To create the RetrieveReportsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
RetrieveReportsRequestDocument myDoc;
myDoc = RetrieveReportsRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


RetrieveReportsRequestDocument. RetrieveReportsRequest myRequest =
myDoc.addNewRetrieveReportsRequest ();

3. Set the request attributes (refer Tables 130-138). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");

In .NET, send the following (example uses RiskReportsDefinition):


ReportParametersDef myReportParametersDef = new
ReportParametersDef();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 150 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myReportParametersDef .ReportId = myReportId;


myReportParametersDef. ReportName = myReportName;
RiskReportsDefinition myRiskReportsDefinition = new
RiskReportsDefinition();
myRiskReportsDefinition.Portfolios =myPortfolios;
myRiskReportsDefinition.AnalysisSettings = myAnalysisSettings;
myRiskReportsDefinition.AnalysisDate = myAnalysisDate;
Response myResponse =Stub.RetrieveReports(("myUser", "myClient",
myPassword"," ,myRiskReportsDefinition, myReportParametersDef );

RetrieveReportsResponse
The RetrieveReportsResponse element, a child element of the RetrieveReports operation, contains the
Response element, which contains the ReportRoot element, an XML representation of the report.
When the RetrieveReportsRequest element specifies a TaskId that is linked to multiple JobIds, the
RetrieveReportsResponse element will return a collection of reports, one for each JobId, in a single
ReportRoot element.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 151 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

RetrieveTemplateReports
The RetrieveTemplateReports operation is used to retrieve reports in an XML object format, similar to the
RetrieveReports operation. You can use this operation instead of RetrieveReports when you want to
retrieve risk reports for multiple dates. It consists of the RetrieveTemplateReportsRequest element and
the RetrieveTemplateReportsResponse element. The following risk reports are currently supported:
• Portfolio Risk Summary
• Risk Attribution
• Allocation-Selection Risk Attribution
• Positions Report
• Factor Exposure
• GICS Exposure

RetrieveTemplateReportsRequest
The RetrieveTemplateReportsRequest element, a child element of the RetrieveTemplateReports
operation, will return the ReportRoot element contained in the RetrieveTemplateReports Response
document. To use the RetrieveTemplateReports operation, we require two main parameters in the
RetrieveTemplateReportsRequest element:
1. The preferred choice for retrieving a report. Currently, there are three ways to retrieve a report
(you must specify at least one):
− Retrieve by Task ID
− Retrieve by Performance Report Definition
− Retrieve by Risk Report Definition
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element name="TaskId"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="PAReportDefinition"
type="bdt:ReturnAttribution" minOccurs="0" maxOccurs="1"/>
<xsd:element name="RiskReportsDefinition"
type="bdt:RiskReportsDefinition" minOccurs="0" maxOccurs="1"/>
</xsd:choice>

2. The preferred choice for specifiying report details. Currently, there two options available (you
must specify at least one):
− The ReportParameterList element, which can override the default parameters used to run the
report. Its child element is the ReportParametersDef element. This must include the
ReportName, which will be used to retrieve the report.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 152 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

− The ReportTemplate element, which will specify the user-saved report template that should be
used to retrieve the report.

Table 139. RetrieveTemplateReportsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

RetrieveReportsInputParams Y Specify the preferred choice for retrieving the


report and the preferred choice for specifiying
report details.

RetrieveReportsInputParams
The RetrieveReportsInputParams element is a child element of the RetrieveTemplateReportsRequest
element.

Table 140. RetrieveReportsInputParams

Attribute Required? Data Type (Length) Description

Preferred choice for retrieving a Y n/a Select one of the following three options.
report:

TaskId string Enter the TaskId returned through the


SubmitReportJob operation to retrieve
performance (return) reports.
Note that when the SubmitReportJob
operation includes multiple portfolios,
the reports will be retrieved only when all
the portfolio jobs linked to the TaskId
have been completed.

PAReportDefinition Use the same report definition that you


use to run the SubmitReportJob
operation to retrieve the report. For
details, see PAReportDefinition.

RiskReportsDefinition Use this to retrieve risk (point-in-time)


reports. For details, see
RiskReportsDefinition.

Preferred choice for specifying Y n/a Select one of the following two options.
report details:

ReportParameterList Refer ReportParameterList.

ReportTemplate Refer ReportTemplate.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 153 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

RiskReportsDefinition
The RiskReportsDefinition element is a child element of the RetrieveReportsInputParams element.

Table 141. RiskReportsDefinition

Attribute Required? Data Type (Length) Description

AnalysisDate Y date Enter the date to run the risk report.

Portfolios
The Portfolios element is a child element of the RiskReportsDefinition element.

InputPortfolio
The InputPortfolio element is a child element of the Portfolios element.

NameAndOwner
The NameAndOwner element is a child element of the InputPortfolios element. It specifies the name and
owner of the portfolio.

Table 142. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the portfolio.

Owner Y string Owner of the portfolio.

AnalysisSettings
The AnalysisSettings element is a child element of the RiskReportsDefinition element.

InputAnalysisSettings
The InputAnalysisSettings element is a child element of the AnalysisSettings element.

NameAndOwner
The NameAndOwner element is a child element of the InputAnalysisSettings element. It specifies the
name and owner of the analysis settings that will be used in the report.

Table 143. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the analysis settings to be used in the


report.

Owner Y string Owner of the analysis settings to be used in the


report.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 154 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

TimeSeries
The TimeSeries element is a child element of the RiskReportsDefinition element. Use this to specify the
exact dates for which reports must be retrieved or a frequency – monthly or quarterly.

Table 144. TimeSeries

Attribute Required? Data Type (Length) Description

DataPointsDateList N date Use this option to retrieve risk reports for up to 60


dates.

DataPointsFrequency N Use this to provide the number of datapoints and


DataPoints the frequency. Currently only the following
frequency options are supported:
Frequency
• QUARTERLY
• MONTHLY
For example, if you specify DataPoints as 5 and
Frequency as Monthly, the operation will retrieve
reports for 5 months with respect to the analysis
date.

To create the RetrieveTemplateReportsRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation.
2. Create a job with a declaration and instantiation.
3. Set the request attributes.

RetrieveTemplateReportsResponse
The RetrieveTemplateReportsResponse element, a child element of the RetrieveTemplateReports
operation, contains the RetrieveReportsOutParams element. Depending on the request attributes
specified in RetrieveTemplateReportsRequest, the RetrieveReportsOutParams element will contain either
the Response element or the DatedResponse element.
• Response- this is similar to the output of RetrieveReportsResponse
• DatedResponse– this includes 2 additional attributes:
− Date - indicates the date for which the report is generated
− Status - indicates if the report is retrieved for the given date
Also, note that when the RetrieveTemplateReportsRequest element specifies a TaskId that is linked to
multiple JobIds, the RetrieveTemplateReportsResponse element will return a collection of reports, one for
each JobId, in a single ReportRoot element.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 155 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitExtendCFAJob
The SubmitExtendCFAJob operation enables you to extend a custom model once it has been processed
successfully via the Barra PortfolioManager UI (using the Custom Factor Attribution tool). It consists of
the SubmitExtendCFAJobRequest element and the SubmitExtendCFAJobResponse element.
Detailed information about creating and processing a custom model is available here.

SubmitExtendCFAJobRequest
The SubmitExtendCFAJobRequest element is a child element of the SubmitExtendCFAJob operation.

Table 145. SubmitExtendCFAJobRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password

ExtendCFAJobParams Y Refer ExtendCFAJobParams.

ExtendCFAJobParams
The ExtendCFAJobParams element is a child element of the SubmitExtendCFAJobRequest element.

CFADefinition
The CFADefinition element is a child element of the ExtendCFAJobParams element. It contains details
about the the custom model (CFA job) that is to be extended.

NameAndOwner
The NameAndOwner element is a child element of the CFADefinition element. It specifies the name and
owner of the custom model.

Table 146. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the custom model.

Owner Y string Owner of the custom model.


To create the SubmitExtendCFAJobRequest object, the following steps are required:
1. Create a request document with a declaration and instantiation. For example:
SubmitExtendCFAJobRequestDocument myDoc;
myDoc = SubmitExtendCFAJobRequestDocument.Factory.newInstance();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 156 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

2. Create a job with a declaration and instantiation. For example:


SubmitExtendCFAJobRequestDocument. SubmitExtendCFAJobRequest
myRequest = myDoc.addNewSubmitExtendCFAJobRequest ();

3. Set the request attributes (refer Tables 145 and 146). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.set ExtendCFAJobParams “myExtendCFAJobParams”);

SubmitExtendCFAJobResponse
The SubmitExtendCFAJobResponse element, a child element of the SubmitExtendCFAJob operation,
contains the job ID and the start and end date of the extension period for the custom model.

Table 147. SubmitHVRJobResponse

Attribute Required? Data Type (Length) Description

JobId Y string Job ID for the request submitted.

StartDate Y string Start date of the extension period.

EndDate Y string Last date of the extension period.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 157 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

CreateTimeSeriesSettings
The CreateTimeSeriesSettings operation is used to create time series settings for Barra
PortfolioManager. It consists of the CreateTimeSeriesSettingsRequest element and the
CreateTimeSeriesSettingsResponse element.

CreateTimeSeriesSettingsRequest
The CreateTimeSeriesSettingsRequest element, a child element of the CreateTimeSeriesSettings
operation, takes a set of settings and parameters and submits a CreateTimeSeriesSettings request in
Barra PortfolioManager. Child elements of the CreateTimeSeriesSettingsRequest element include
TimeSeriesSettingsName and TimeSeriesSettings. It returns a node ID for the CreateTimeSeriesSettings
request (refer CreateTimeSeriesSettingsResponse).

Table 148. CreateTimeSeriesSettingsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password

TimeSeriesSettingsName Y string Provide a name for the time series settings.

TimeSeriesSettings N TimeSeriesSettingsType Refer TimeSeriesSettings.

TimeSeriesSettings
TimeSeriesSettings is a child element of the CreateTimeSeriesSettingsRequest element.

Table 149. TimeSeriesSettingsType

Attribute Required? Data Type (Length) Description

TimeSettings N TimeSettingsType Refer TimeSettings.

AnalyticOptions N AnalyticOptionsType Refer AnalyticOptions.

TransactionCosts N TransactionCostsType Refer TransactionCosts.

AssetDetails N AssetDetailsType Refer AssetDetails.

OtherSettings N OtherSettingsType Refer OtherSettings.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 158 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

TimeSettings
TimeSettings is a child element of the TimeSeriesSettings element and is used to define the periodicity of
the results in your time series reports. Use daily frequency if you have a short investment horizon and you
want to perform daily return/forecast risk analysis. Use monthly frequency if you have a longer
investment horizon and are not interested in seeing intra-month fluctuations.

Table 150. TimeSettingsType

Attribute Required? Data Type (Length) Description

ReturnFrequency Y enum Accepted values of


ReturnFrequencyType:
• Daily
• Monthly (default)
Note: Daily attribution cannot
be used with risk models with
monthly factor returns. Ensure
that you do not select a daily
attribution with a monthly risk
model.

TimeSeriesDataRangeSettings Y TimeSeriesDataRange Specify the preferred choice


for time series date range.
Refer
TimeSeriesDataRangeSettings.

Subperiod N ComputeSubperiodsType Refer Subperiod.

ProcessAdditionalTrailingTimeSpans N boolean Set this attribute to true to


enable automated processing
of trailing time spans. By
default, it is set to false.

RollingRiskPeriod Y int This numeric attribute is used


to compute volatility numbers
for performance analysis.
Default value is 30 days for
daily return frequency and 6
months for monthly return
frequency.

TimeSeriesDataRange
TimeSeriesDataRange is a child element of the TimeSettings. You can select one of the three options for
date range settings.

Table 151. TimeSeriesDataRange

Attribute Required? Data Type (Length) Description

FromStartDateToEndDate N FromStartDateToEndDate From a specific date to another specific date.


Includes two child elements of type date:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 159 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description


• FromDateValue (default from date - 1800-
01-01)
• ToDateValue (default to date - 1800-01-
01)

LatestDateRelativeTo N LatestDateRelativeTo Most recent days, weeks, months, etc relative


to a specified date. For example, you can
select latest six months relative to
the previous closing date. Includes two child
elements - LatestStartDateRangeValue and
DateRelativeToValue. Accepted values:
• LatestStartDateRangeValue – specify a
value as string.
• DateRelativeToValue – Accepted values
of LatestDateRangeInputTypeEnum:
YEARS, QUARTERS, MONTHS,
WEEKS, DAYS,
DAYS_WITHOUT_WEEKEND

DateRelativeTo N DateRelativeTo Year to date, month to date, quarter to date


relative to a specified date. Includes two child
elements – StartDateRangeValue and
DateRelativeToValue. Accepted values:
• StartDateRangeValue - Accepted values
of StartDateRangeValueEnum: YEAR,
QUARTER, MONTH
• DateRelativeToValue – Accepted values
of DateRelativeToValueEnum: TODAY,
PREVIOUS_CLOSE,
PREVIOUS_MONTH_END,
PREVIOUS_QUARTER_END,
PREVIOUS_YEAR_END

Subperiod
Subperiod is a child element of the TimeSettingsType element. ComputeSubperiodsType consists of two
child elements SubperiodFrequency and ComputeSubperiods.

Table 152. ComputeSubperiodsType

Attribute Required? Data Type (Length) Description

SubperiodFrequency N enum This attribute refers to the frequency of subperiods


that you want to set. Accepted values:
• Quarterly (default for Return Frequency -
Monthly)
• Yearly
• Monthly
• Weekly (default for Return Frequency - Daily)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 160 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

ComputeSubperiods N boolean When this attribute is set to true, you can break
down the selected date range into subperiods. By
default, it is set to false. Note that computing
subperiods will increase the duration of the
computation.

AnalyticOptions
AnalyticOptions is a child element of the TimeSeriesSettings element.

Table 153. AnalyticOptionsType

Attribute Required? Data Type (Length) Description

PerformanceAnalysisSettings N PerformanceAnalysis Refer PerformanceAnalysisSettings.


SettingsType

ForecastRisk N boolean When set to true, you can enable


forecast risk. By default, it is set to
false.

ConsolidateBenchmarkAssetsNotHeld N boolean When this attribute is set to


true, assets that are included in the
benchmark but were never held in
your active portfolio will be
consolidated into a single row. By
default, it is set to false.

PerformanceAnalysisSettings
PerformanceAnalysisSettings is a child element in the AnalyticOptions element.

Table 154. PerformanceAnalysisSettingsType

Attribute Required? Data Type Description


(Length)

PerformanceAnalysis N boolean Set to true to enable remaining subsettings


in performance analysis settings. By
default, it is set to true.

ManagedPortfolioReturnSettings N enum Select the calculation type for managed


portfolio. Accepted values:
• Top-level only
• Bottom-up only (default)
• Mix top-level and bottom-up

ManagedPortfolioReturnAttributionSettings N Refer ManagedPortfolioReturnAttributionS


ettings.
Not applicable to bottom-up calculations

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 161 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type Description


(Length)

for managed portfolio.

BenchmarkPortfolioReturnSettings N enum Select the calculation type for benchmark.


Accepted values:
• Top-level only
• Bottom-up only (default)
• Mix top-level and bottom-up

BenchmarkPortfolioReturnAttributionSettings N Refer ManagedPortfolioReturnAttributionS


ettings.
Not applicable to bottom-up calculations
for managed portfolio.

CompositeOrFuture N enum Select the calculation type for


composite/future. Accepted values:
• Top-level only
• Bottom-up only
• Mix top-level and bottom-up (default)

ManagedPortfolioReturnAttributionSettings
ManagedPortfolioReturnAttributionSettings is a child element in the PerformanceAnalysisSettings
element that allows you to select from the two available return settings.

Table 155. ManagedPortfolioReturnAttributionSettingsType

Attribute Required? Data Type (Length) Description

AccountingReturnSettings N string Use your own accounting returns in your analysis to


reflect the impact of intra-day trading. By default, it is
set to null.

SystemReturnSettings N enum Use system returns. Accepted values:


• NET
• PRICE
• GROSS

TransactionCosts
TransactionCosts is a child element in the TimeSettingsType element. Transaction costs can be a critical
component of performance attribution for strategies with high levels of turnover. To provide transaction
costs, specify a currency and a value for Buy, Sell, and Short Sell costs. The transaction costs are then
converted into the selected currency in the Analysis Settings for each period, depending on the analysis
frequency.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 162 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 156. TransactionCostsType

Attribute Required? Data Type Description


(Length)

TransactionCostsCurrency N string Set the currency for TransactionCosts. By default, it is


set to USD.

BuyCostInPercentage N double Set buy transaction costs in percentage. By default, it is


set to 0.00.

BuyCostPerShare N double Set buy transaction costs per share. By default, it is set
to 0.00.

BuyCostPerTrade N double Set buy transaction costs per trade. By default, it is set
to 0.00.

SellCostInPercentage N double Set sell transaction costs in percentage. By default, it is


set to 0.00.

SellCostPerShare N double Set sell transaction costs per share. By default, it is set
to 0.00.

SellCostPerTrade N double Set sell transaction costs per trade. By default, it is set
to 0.00.

ShortSellCostInPercentage N double Set short sell transaction costs in percentage. By


default, it is set to 0.00.

ShortSellCostPerShare N double Set short sell transaction costs per share. By default, it
is set to 0.00.

ShortSellCostPerTrade N double Set short sell transaction costs per trade. By default, it
is set to 0.00.

AssetDetails
AssetDetails is a child element in the TimeSettingsType element. Storing time series risk and
performance results data for each asset in your portfolio and each date in the time series is time
intensive. To be more efficient, you have the option of selecting up to 80 assets for which you want to
compute and store asset-level results. You can retain asset-level details, including
contributions/withdrawals, fees and expenses, and portfolio-level net versus gross return.

Table 157. AssetDetailsType

Attribute Required? Data Type (Length) Description

NumberOfTopBottomAssets N int Specify the number of top and bottom


assets. By default, it is set to zero.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 163 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

NumberOfTopBottomAssetsType N enum Select the number of top and bottom


assets (based on specific criteria) for
which you want to see calculation
results.
Accepted values:
• CONTRIBUTION_TO_ACTIVE_RETUR
N (default)
• AVERAGE_TOTAL_WEIGHT
• AVERAGE_ACTIVE_WEIGHT

BarraIdAssetName N BarraIdAssetNameTyp Refer BarraIdAssetName.


e

RetainTimeSeriesDetailsOfIndividual N boolean Set to true to enable the calculations for


Assets a list of selected assets. This option is
available only if you have selected
Performance Analysis in the Analytic
Options category. By default, this
attribute is set to false.

RetainTimeSeriesIndividualAssetsFa N boolean Set to true, if you want to view the return


ctorContribution contributions of the individual factors in
the risk model. Note that if you select
this option, result storage will not be
used. By default, this attribute is set to
false.

BarraIdAssetName
BarraIdAssetName is a child element in the AssetDetailsType element.

Table 158. BarraIdAssetNameType

Attribute Required? Data Type (Length) Description

BarraId Y string Barra ID of the asset (e.g., USAB1X1)

AssetName Y string Name of the asset (e.g., APPLE INC)

OtherSettings
OtherSettings is a child element in the TimeSettingsType element. Use this to specify the Currency
Treatment and Country Treatment options that allow you to choose which country and currency you want
to use for performance attribution.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 164 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

OtherSettingsType
OtherSettingsType is a child element in the OtherSettings element.

Table 159. OtherSettingsType

Attribute Required? Data Type (Length) Description

CurrencyTreatment Y enum Select the currency you want to use for performance
attribution. Accepted values:
• USE_CURRENCY_OF_EXPOSURE
• USE_PRICE_CURRENCY

CountryTreatment Y enum Select the country you want to use for performance
attribution. Accepted values:
• USE_COUNTRY_OF_EXPOSURE
• USE_COUNTRY_OF_QUOTATION

To create the CreateTimeSeriesSettingsRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
CreateTimeSeriesSettingsRequestDocumentmyDoc;
myDoc =
CreateTimeSeriesSettingsRequestDocument.Factory.newInstance();
2. Create a request with a declaration and instantiation. For example:
CreateTimeSeriesSettingsRequestDocument.CreateTimeSeriesSettingsReque
st myRequest = myDoc.getCreateTimeSeriesSettingsRequest();

3. Set the request attributes (refer above Tables 148-159). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setTimeSeriesSettingsName("myTimeSeriesSettingsName");
myRequest.setTimeSeriesSettings("myTimeSeriesSettingsArgs");

In .NET, send the following:


//Create the TSS
TimeSeriesSettingsType myTimeSeriesSettingsParams = new
TimeSeriesSettingsType();

// Time Subsetting
TimeSettingsType myTimeSubsetting = new TimeSettingsType();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 165 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myTimeSubsetting.ReturnFrequency = ReturnFrequencyType.Daily;
myTimeSubsetting.RollingRiskPeriod = myRollingRiskPeriod;
myTimeSubsetting.ProcessAdditionalTrailingTimeSpans = booleanFlag1;

ComputeSubperiodsType mySubperiod = new ComputeSubperiodsType();


mySubperiod.ComputeSubperiods = booleanFlag2;
mySubperiod.SubperiodFrequency = SubperiodFrequencyType.Quarterly;
myTimeSubsetting.Subperiod = mySubperiod;

//add the time series daterange setting to time subsetting


TimeSeriesDateRange myDateRange = new TimeSeriesDateRange();

//add a choice of date range


LatestDateRelativeTo myRelativeDateRange = new
LatestDateRelativeTo();
myRelativeDateRange.LatestDateRangeInputValue =
myLatestDataRangeValue;
myRelativeDateRange.LatestDateRangeInputType =
LatestDateRangeInputTypeEnum.DAYS_WITHOUT_WEEKEND;
myRelativeDateRange.DateRelativeToValue =
DateRelativeToValueEnum.PREVIOUS_QUARTER_END;

myDateRange.Item = myRelativeDateRange;
myTimeSubsetting.TimeSeriesDataRangeSettings = myDateRange;

myTimeSeriesSettingsParams.TimeSettings = myTimeSubsetting;

// Transaction Costs
TransactionCostsType tranCost = new TransactionCostsType();
tranCost.TransactionCostsCurrency = myTranCostCurrency;

tranCost.SellCostInPercentage = mySellInCostPercentage;
tranCost.SellCostPerShare = mySellCostPerShare;
tranCost.SellCostPerTrade = mySellCostPerTrade;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 166 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

// Asset Details
AssetDetailsType assetDetail = new AssetDetailsType();
assetDetail.RetainTimeSeriesDetailsOfIndividualAssets = booleanFlag3;
assetDetail.RetainTimeSeriesIndividualAssetsFactorContribution =
booleanFlag4;
assetDetail.NumberOfTopBottomAssets = myNumberOfTopBottomAssets;
assetDetail.NumberOfTopBottomAssetsType =
NumberOfTopBottomAssetsType.AVERAGE_ACTIVE_WEIGHT;

BarraIdAssetNameType[] assetNameTypeList = new


BarraIdAssetNameType[2];
BarraIdAssetNameType myAsset1 = new BarraIdAssetNameType();
myAsset1.AssetName = myAssetName1;
myAsset1.BarraId = myAssetId1;
assetNameTypeList[0] = myAsset1;

BarraIdAssetNameType myAsset2 = new BarraIdAssetNameType();


myAsset2.AssetName = myAssetName2;
myAsset2.BarraId = myAssetId2;
assetNameTypeList[1] = myAsset2;

assetDetail.BarraIdAssetName = assetNameTypeList;
myTimeSeriesSettingsParams.AssetDetails = assetDetail;
CreateTimeSeriesSettingsResponse response =
stub.CreateTimeSeriesSettings("myUser", "myClient", "myPassword",
"myTimeSeriesSettingsName", myTimeSeriesSettingsParams);
String nodeId = response.NodeId;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 167 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

CreateTimeSeriesSettingsResponse
CreateTimeSeriesSettingsResponse is a child element of the CreateTimeSeriesSettings operation. It is
returned as the response to the CreateTimeSeriesSettingsRequest element and contains the node ID of
the CreateTimeSeriesSettings operation.

Table 160. CreateTimeSeriesSettingsResponse

Attribute Required? Data Type (Length) Description

NodeId N string ID of the newly created time series setting, if successful.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 168 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteTimeSeriesSettings
The DeleteTimeSeriesSettings operation consists of the DeleteTimeSeriesSettingsRequest element and
DeleteTimeSeriesSettingsResponse element.

DeleteTimeSeriesSettingsRequest
The DeleteTimeSeriesSettingsRequest element, a child element of the DeleteTimeSeriesSettings
operation, takes a set of parameters and submits a DeleteTimeSeriesSettings request in Barra
PortfolioManager. Child elements of the DeleteTimeSeriesSettingsRequest element include
TimeSeriesSettingsName and TimeSeriesSettingsOwner. It will return DeleteTimeSeriesSettingResult and
StatusValue for the DeleteTimeSeriesSettings request (refer DeleteTimeSeriesSettingsResponse).

Table 161. DeleteTimeSeriesSettingsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

TimeSeriesSettingsName Y string Enter the name of the TimeSeriesSettings that you


want to delete.

TimeSeriesSettingsOwner Y string Enter the name of the owner.

To create the DeleteTimeSeriesSettingsRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
DeleteTimeSeriesSettingsRequestDocument myDoc;
myDoc =
DeleteTimeSeriesSettingsRequestDocument.Factory.newInstance();
2. Create a request with a declaration and instantiation. For example:

DeleteTimeSeriesSettingsRequestDocument.DeleteTimeSeriesSettingsReque
st myRequest = myDoc.getDeleteTimeSeriesSettingsRequest();
3. Set the request attributes (refer Table 161). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setTimeSeriesSettingsName("myTimeSeriesSettingsName");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 169 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myRequest.setTimeSeriesSettingsOwner("myTimeSeriesSettingsOwner");

In .NET, send the following:


DeleteTimeSeriesSettingsResponse response =
stub.DeleteTimeSeriesSettings("myUser", "myClient", "myPassword", "my
TimeSeriesSettingsName", "myTimeSeriesSettingsOwner");
String statusValue = response.StatusValue;

DeleteTimeSeriesSettingsResponse
The DeleteTimeSeriesSettingsResponse element is a child element of the DeleteTimeSeriesSettings
operation. It is returned as the response to the DeleteTimeSeriesSettingsRequest element and contains
the child elements, DeleteTimeSeriesSettingResult and StatusValue.

Table 162. DeleteTimeSeriesSettingsResponse

Attribute Required? Data Type (Length) Description

DeleteTimeSeriesSettingResult Y string Status message generated as an


acknowledgement to the
DeleteTimeSeriesSettingsRequest.

StatusValue Y string Status value generated as an acknowledgement


to the DeleteTimeSeriesSettingsRequest. For
successful deletion, 0 is returned.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 170 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

CreateAnalysisSetting
The CreateAnalysisSetting operation consists of the CreateAnalysisSettingRequest element and the
CreateAnalysisSettingResponse element. Analysis Settings allow you to select a risk model and
associate it with a currency and benchmark, select an attribution type, customize how statistics about
your analytics and data are calculated, and so on. For more information about Analysis Settings ,see
Defining Analysis Settings.

CreateAnalysisSettingRequest
The CreateAnalysisSettingRequest element, a child element of the CreateAnalysisSetting operation, takes
a set of settings and parameters and submits a CreateAnalysisSetting request in Barra PortfolioManager.
Child elements of the CreateAnalysisSettingRequest element include AnalysisSettingArgs and
SharingRule. It returns a node ID for the CreateAnalysisSetting request (refer
CreateAnalysisSettingResponse).

Table 163. CreateAnalysisSettingRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password.

AnalysisSettingName Y string Provide a name for the analysis setting.

AnalysisSettingArgs Y BPMAnalysisSettingArgsType Refer AnalysisSettingArgs.

SharingRule N enum Accepted values:


• Private
• Public (Default)
• Workgroup_Permissions

AnalysisSettingArgs
AnalysisSettingArgs is a child element of the CreateAnalysisSettingRequest.

Table 164. BPMAnalysisSettingArgsType

Attribute Required? Data Type (Length) Description

RiskModelSettings Y RiskModelSettingsType Refer RiskModelSettings.

ReferencePortfoliosSettings N ReferencePortfoliosSettingsTyp Refer ReferencePortfoliosSettings.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 171 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

RiskReturnAttributionSettings N RiskReturnAttributionSettingsTy Refer RiskReturnAttributionSettings.


pe

LongShortSettings N LongShortSettingsType Refer LongShortSettings.

ParametricVarSettings N ParametricVarSettingsType Parametric Value at Risk is the total


risk value (annualized standard
deviation) converted to a risk value at
risk equivalent assuming a normal
return
distribution. Refer ParametricVarSetti
ngs.

RoundlotsSettings N RoundlotsSettingsType Refer RoundlotsSettings.

StatisticsSettings N StatisticsSettingsType Refer StatisticsSettings.

OtherSettings N MiscSettingsType Refer OtherSettings.

RiskModelSettings
RiskModelSettings is a child element of the AnalysisSettingArgs element.

Table 165. RiskModelSettingsType

Attribute Required? Data Type (Length) Description

RiskModelName Y string Enter a risk model that you are licensed to use. (e.g.,
GEMLT)

RiskModelVariant Y string Enter the variant or horizon you would like to use.
(e.g., L)

Currency Y string Enter the currency in which your portfolio is valued


and from which portfolio risk is calculated.

IncludeFactorCrossProduct N boolean Setting this attribute to true will display the currency
cross product as a separate line in the performance
attribution reports.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 172 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ReferencePortfoliosSettings
ReferencePortfoliosSettings is a child element of the AnalysisSettingArgs element.

Table 166. ReferencePortfoliosSettingsType

Attribute Required? Data Type (Length) Description

Benchmark N ReferencePortfolioType Refer ReferencePortfolioType.

Market N ReferencePortfolioType Refer ReferencePortfolioType.

Universe N ReferencePortfolioType Refer ReferencePortfolioType.


Note: PORTFOLIO_ATTRIBUTE is not supported for Universe

ReferencePortfolioType
ReferencePortfolioType is a child element of the ReferencePortfoliosSettings element.

Table 167. ReferencePortfolioType

Attribute Required? Data Type (Length) Description

PortfolioField Y enum Accepted values:


• PORTFOLIO
• PORTFOLIO_ATTRIBUTE

NameAndOwner Y NameAndOwnerType Refer NameAndOwner.

NameAndOwner
NameAndOwner is a child element of the ReferencePortfolioType, MiscSettingsType,
RoundlotsSettingsType and RiskDeltaAnalysisCategoryType elements.

Table 168. NameAndOwnerType

Attribute Required? Data Type (Length) Description

Name Y string Enter the name of the portfolio.

Owner Y string Enter the owner of the portfolio.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 173 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

RiskReturnAttributionSettings
RiskReturnAttributionSettings is a child element of the AnalysisSettingArgs element.

Table 169. RiskReturnAttributionSettingsType

Attribute Required? Data Type (Length) Description

BPMAttributionModel N enum Accepted values:


• ALLOCATION_SELECTION
• HYBRID
• FACTOR

ExcludeZeroExposureFactors N boolean When this attribute is set to true, you


can exclude zero exposure factors that
are never exposed to the portfolio,
benchmark, or market at any point in
time. (Default to false)

ComputeInteractionEffect N boolean Set to true to compute interaction effect


(Brinson). The default value is false.

RiskDeltaAnalysisCategory N RiskDeltaAnalysisCategoryType Specify the preferred choice for risk


delta analysis. This is applicable only
when BPMAttributionModel-FACTOR is
selected.
Refer RiskDeltaAnalysisCategory.

BPMFactorGroups N BPMFactorGroupsType This is applicable


when BPMAttributionModel-FACTOR or
HYBRID is selected.
Refer BPMFactorGroups.

BPMAllocationGroups N BPMAllocationGroupsType This is applicable


when BPMAttributionModel-
ALLOCATION_SELECTION or HYBRID
is selected.
Refer BPMAllocationGroups.

BPMFactorGroups
BPMFactorGroups is a child element of the RiskReturnAttributionSettings element.

Table 170. BPMFactorGroupsType

Attribute Required? Data Type (Length) Description

FactorType Y string Enter the name of factor type. (e.g., Country, Currency,
Industry etc)

GroupingSchemeName Y string Enter the grouping scheme name.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 174 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

BPMAllocationGroups
BPMAllocationGroups is a child element of the RiskReturnAttributionSettings element.

Table 171. BPMAllocationGroupsType

Attribute Required? Data Type (Length) Description

AttributeName Y string Enter the name of the attribute.

AttributeOwner Y string Enter the owner of the attribute.

SchemeType Y enum Accepted values:


• Top
• Bottom
• TopAndBottom
• Distinct
• Bottom
• Named Scheme

SelectionCount Y int Enter the selection count.

RiskDeltaAnalysisCategory
RiskDeltaAnalysisCategory is a child element of the RiskReturnAttributionSettings element. You can
select from the following three options.

Table 172. RiskDeltaAnalysisCategoryType

Attribute Required? Data Type (Length) Description

ComparisonPortfolio N NameAndOwnerType Using this attribute, you can compare two portfolios for
one date with the same analysis
settings. Refer NameAndOwner.

ComparisonDate N ComparisonDate Using this attribute, you can compare a single portfolio
with the same analysis settings but for two different
dates. Refer ComparisonDate.

ComparisonModel N ComparisonModel Using this attribute, you can compare one portfolio for
one date with two analysis settings.
Refer ComparisonModel.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 175 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ComparisonDate
ComparisonDate is a child element of the RiskDeltaAnalysisCategory element.

Table 173. ComparisonDateType

Attribute Required? Data Type (Length) Description

AnalysisDateOffset N int Enter a date relative to the analysis date


for which you want to generate risk
numbers. These numbers will be then
compared with risk numbers for the
analysis date.

DateRangeType N LatestDateRangeInputTypeEnum Accepted values:


• YEARS
• QUARTERS
• MONTHS
• WEEKS
• DAYS
• DAYS_WITHOUT_WEEKEND

ComparisonModel
ComparisonModel is a child element of the RiskDeltaAnalysisCategory element.

Table 174. ComparisonModelType

Attribute Required? Data Type (Length) Description

Horizon N string Enter one of the available horizons of the risk model selected in
your analysis settings.

LongShortSettings
LongShortSettings is a child element of the AnalysisSettingArgs element.

Table 175. LongShortSettingsType

Attribute Required? Data Type (Length) Description

LongShortSeparateAttrib N boolean When set to true, you can view separate


performance results for long and short on the
total and factor level.

PortfolioBaseValue N enum Enter a base value for a portfolio for a long-short


analysis, which is used to calculate the weight of
an asset and its return contribution.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 176 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

Accepted values:
• NET
• LONG ONLY
• LONG PLUS SHORT
• ASSIGNED FIXED
• ASSIGNED TIMESERIES

BalanceCurrency N boolean This attribute enables you to display or hide


synthetic cash details from Barra
PortfolioManager reports. Set to true, to display
the synthetic cash details. Set to false, to hide the
synthetic cash details. It works only if you have
selected LONG ONLY and LONG PLUS SHORT as
PortfolioBaseValue

CustomSeriesAttributeName N string Enter the portfolio-level user attribute that you


have imported, if you selected ASSIGNED
TIMESERIES as your PortfolioBaseValue.

FixedBaseValue N double Enter the base value if you have selected


ASSIGNED FIXED as your PortfolioBaseValue

ParametricVarSettings
ParametricVarSettings is a child element of the AnalysisSettingArgs element.

Table 176. ParametricVarSettingsType

Attribute Required? Data Type (Length) Description

HorizonDays N int Enter the Value at Risk Time Horizon. (Default to 5)

ConfidenceInterval N double Enter the Value at Risk Confidence level percentage. (Default
to 95.00 %)

RoundlotsSettings
RoundlotsSettings is a child element of the AnalysisSettingArgs element.

Table 177. RoundlotsSettingsType

Attribute Required? Data Type (Length) Description

roundLotGeneral N int Enter roundlot value which will be applied


to entire portfolio, but only for assets
that do not have asset-level or country-

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 177 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

level roundlots specified. (Default to 100)

applyRoundlotsToPortfolioHoldings N boolean Set to true, to apply round lots to the


holdings in the portfolio in addition to the
tradelist. (Default to false)

keepPortfolioValueConstant N boolean When this attribute is set to true, Barra


PortfolioManager will automatically add
or subtract cash to offset the value
change due to the rounded shares.
(Default to false)

countryRoundLots N countryRoundLotsType Refer countryRoundLots.

assetLevelRoundLots N NameAndOwnerType Refer NameAndOwner.

countryRoundLots
countryRoundLots is a child element of the RoundlotsSettings element.

Table 178. countryRoundLotsType

Attribute Required? Data Type (Length) Description

countryCode Y string Enter the country code (e.g., USA)

roundLot Y int Enter the roundLot value.

StatisticsSettings
StatisticsSettings is a child element of the AnalysisSettingArgs element.

Table 179. StatisticsSettingsType

Attribute Required? Data Type (Length) Description

MissingDataValue N enum This attribute helps you to specify how missing values
should be handled. Accepted values:
• ZERO (default)
• IGNORE

MeanCalculation N enum This attribute enables you to define the weighting scheme
to be used for computing weights. Accepted values:
• Weighted Average (default)
• Equal Weighted

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 178 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

TreatOutliers N boolean When set to true, you can specify Outlier Treatment and
define outliers as observations that exceed the specified
number of standard deviations. (Default to false)

OutlierTreatment N enum Indicate how the outliers should be treated. Accepted


values:
• WINSORIZE (default) - Outliers are clipped or truncated
up to the nth standard deviation, where n is defined in
the outlier definition window.
• IGNORE - Outliers are ignored, effectively reducing the
sample size used for computing statistics.

OutlierStdDevs N int Using this attribute, you can define outliers as observations
that exceed the specified number of standard deviations
(default to 5).

OtherSettings
OtherSettings is a child element of the AnalysisSettingArgs element.

Table 180. MiscSettingsType

Attribute Required? Data Type (Length) Description

ApplyBarraCapitalAdjusts N boolean When this attribute is set to true, it allows


you to account for capital adjustments that
may have occurred between the period
when you last loaded your portfolio data
and the previous market close.

LookThroughComposites 1 N boolean When this attribute is set to true, you can


enable look through for composites.

LookThroughEtf N boolean When this attribute is set to true, you can


enable look through for ETFs.

LookThroughEif1 N boolean When this attribute is set to true, you can


enable look through for EIFs.

LookThroughFxForwardsOrFxFuture N boolean When this attribute is set to true, you can


enable look through for FX Forwards or FX
Futures.

LookThroughEquityOption N boolean When this attribute is set to true, you can


enable look through for equity options.

1 Only LookThroughComposites and LookThroughEif are applicable lookthrough features for PA jobs

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 179 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type (Length) Description

LookThroughTotalReturnSwap N boolean When this attribute is set to true, you can


enable look through for total return swaps.

LookThroughStyle N enum Accepted values:


• Collapse All (Default)
• Don't Collapse

RiskAversion N double Used to compute the implied alpha and the


active implied alpha. Default value is
0.0075.

DefaultOptimizationProfile N NameAndOwnerType Details of the optimization profile to be


used. Refer NameAndOwner.

To create the CreateAnalysisSettingRequest object, follow these steps:


1. Create a request document with a declaration and instantiation. For example:
CreateAnalysisSettingRequestDocument myDoc;
myDoc = CreateAnalysisSettingRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


CreateAnalysisSettingRequestDocument.CreateAnalysisSettingRequest
myRequest = myDoc.getCreateAnalysisSettingRequest();
3. Set the request attributes (refer above Tables 163-180). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setAnalysisSettingName("myAnalysisSettingName");
myRequest.setAnalysisSettingArgs("myAnalysisSettingArgs");
myRequest.setSharingRule("mySharingRule");

In .NET, send the following:


BPMAnalysisSettingArgsType myAnalysisSettingsParams
= new BPMAnalysisSettingArgsType();

// Risk Model Setting


RiskModelSettingsType myRiskModel = new RiskModelSettingsType();
myRiskModel.RiskModelName = myRiskModelName;
myRiskModel.RiskModelVariant = myRiskModelVariant;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 180 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myRiskModel.Currency = myRiskModelCurrency;
myRiskModel.IncludeFactorCrossProduct = myBooleanFlag1;

myAnalysisSettingsParams.RiskModelSettings = myRiskModel;

// Reference Portfolio Setting


ReferencePortfoliosSettingsType myRefPortfolio
= new ReferencePortfoliosSettingsType();
ReferencePortfolioType myBmkPortfolio = new ReferencePortfolioType();
myBmkPortfolio.PortfolioField = PortfolioFieldType.PORTFOLIO;
NameAndOwnerType myBmkNameAndOwner = new NameAndOwnerType();
myBmkNameAndOwner.Name = myPortfolioName;
myBmkNameAndOwner.Owner = myPortfolioOwner;
myBmkPortfolio.NameAndOwner = myBmkNameAndOwner;
myRefPortfolio.Benchmark = myBmkPortfolio;

myAnalysisSettingsParams.ReferencePortfoliosSettings =
myRefPortfolio;

// Roundlots Settings
RoundlotsSettingsType myRoundlots = new RoundlotsSettingsType();
myRoundlots.roundLotGeneral = myRoundlotsGeneral;

countryRoundLotsType[] myCountryRoundlots
= new countryRoundLotsType[2];
countryRoundLotsType myCountry1 = new countryRoundLotsType();
myCountry1.countryCode = myCountry1Code;
myCountry1.roundLot = myCountry1RoundlotValue;
myCountryRoundlots[0] = myCountry1;
countryRoundLotsType myCountry2 = new countryRoundLotsType();
myCountry2.countryCode = myCountry2Code;
myCountry2.roundLot = myCountry2RoundlotValue;
myCountryRoundlots[1] = myCountry2;
myRoundlots.countryRoundLots = myCountryRoundlots;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 181 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myAnalysisSettingsParams.RoundlotsSettings = myRoundlots;

// Other Settings
MiscSettingsType myOtherSettings = new MiscSettingsType();
myOtherSettings.ApplyBarraCapitalAdjusts = myBooleanFlag2;
myOtherSettings.LookThroughComposites = myBooleanFlag3;

myAnalysisSettingsParams.OtherSettings = myOtherSettings;

SharingRuleType mySharingRule = SharingRuleType.Private;

CreateAnalysisSettingResponse response =
stub.CreateAnalysisSetting("myUser", "myClient", "myPassword", "myAna
lysisSettingName", myAnalysisSettingsParams, mySharingRule);
String nodeId = response.NodeId;

CreateAnalysisSettingResponse
The CreateAnalysisSettingResponse element is a child element of the CreateAnalysisSetting operation. It
is returned as the response to the CreateAnalysisSettingRequest element and contains the child
elements, NodeId and CreateAnalysisSettingResult.

Table 181. CreateAnalysisSettingResponse

Attribute Required? Data Type (Length) Description

NodeId N string Node ID generated as an acknowledgement to the


CreateAnalysisSettingRequest.

CreateAnalysisSettingResult N string Status message generated as an


acknowledgement to the
CreateAnalysisSettingRequest.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 182 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteAnalysisSetting
The DeleteAnalysisSetting operation is used to delete analysis setting for Barra PortfolioManager. It
consists of the DeleteAnalysisSettingRequest element and the DeleteAnalysisSettingResponse element.

DeleteAnalysisSettingRequest
The DeleteAnalysisSettingRequest element, a child element of the DeleteAnalysisSetting operation, takes
a set of parameters and submits a DeleteAnalysisSetting request in Barra PortfolioManager. Child
elements of the DeleteAnalysisSettingRequest element include AnalysisSettingName and
AnalysisSettingOwner. It will return DeleteAnalysisSettingResult and StatusValue for the
DeleteAnalysisSetting request (refer DeleteAnalysisSettingResponse).

Table 182. DeleteAnalysisSettingRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

AnalysisSettingName Y string Enter the name of the AnalysisSetting that you want to
delete.

AnalysisSettingOwner Y string Enter the name of the owner.

To create the DeleteAnalysisSettingRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
DeleteAnalysisSettingRequestDocument myDoc;
myDoc = DeleteAnalysisSettingRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


DeleteAnalysisSettingRequestDocument.DeleteAnalysisSettingRequest
myRequest = myDoc.getDeleteAnalysisSettingRequest();

3. Set the request attributes (refer Table 182). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setAnalysisSettingName("myAnalysisSettingName");
myRequest.setAnalysisSettingOwner("myAnalysisSettingOwner");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 183 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

In .NET, send the following:


DeleteAnalysisSettingResponse response =
stub.DeleteAnalysisSetting("myUser", "myClient", "myPassword", "myAna
lysisSettingName", "myAnalysisSettingOwner");
int statusValue = response.StatusValue;

DeleteAnalysisSettingResponse
The DeleteAnalysisSettingResponse element is a child element of the DeleteAnalysisSetting operation. It
is returned as a response to DeleteAnalysisSettingRequest and contains the child elements,
DeleteAnalysisSettingResult and StatusValue.

Table 183. DeleteAnalysisSettingResponse

Attribute Required? Data Type (Length) Description

DeleteAnalysisSettingResult Y string This attribute is the status message generated as


an acknowledgement to the
DeleteAnalysisSettingRequest.

StatusValue Y int This attribute is the status code generated as an


acknowledgement to the
DeleteAnalysisSettingRequest. For successful
deletion, 0 is returned.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 184 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

SubmitHVRJob
The SubmitHVRJob operation consists of the SubmitHVRJobRequest element and the
SubmitHVRJobResponse element.
Note: The high-volume reporting job definition must be first created through the Barra PortfolioManager
application interface (using the High Volume Reporting tool). Once defined, you can use the
SubmitHVRJob operation to submit the job using the definition you created or even override the job
settings as required.

SubmitHVRJobRequest
The SubmitHVRJobRequest element, a child element of the SubmitHVRJob operation, takes a set of
settings and parameters and submits a high-volume reporting job in Barra PortfolioManager. Child
elements of the SubmitHVRJobRequest element include HvrReportRequestParams and
OverrideHvrDefinitionParams. It will return a Job ID for the high-volume reporting job (refer
SubmitHVRJobResponse).

Table 184. SubmitHVRJobRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password.

HvrReportRequestParams Y Refer HvrReportRequestParams.

OverrideHvrDefinitionParams N Refer OverrideHvrDefinitionParams.

HvrReportRequestParams
The HvrReportRequestParams element is a child element of the SubmitHVRJobRequest element.

Table 185. HvrReportRequestParams

Attribute Required? Data Type (Length) Description

HvrDefinition Y HvrDefinition Define the name and owner of the high-volume


reporting job. Refer HvrDefinition.

CycleDate Y date The scheduled date on which the high-volume


reporting job was run.

GetAlreadyRunningJobId N boolean When this flag is set to true, the


SubmitHVRJob operation will return a job ID if a job
with the same name and cycle date is already in
progress instead of throwing an exception.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 185 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

HvrDefinition
The HvrDefinition element is a child element of the HvrReportRequestParams element.

Table 186. HvrDefinition

Attribute Required? Data Type (Length) Description

NameAndOwner Y NameAndOwner Refer NameAndOwner below.

NameAndOwner
The NameAndOwner element is a child element of the HvrDefinition element. It specifies the name and
owner of the high-volume reporting job.

Table 187. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the high-volume reporting job.

Owner Y string Owner of the high-volume reporting job.

OverrideHvrDefinitionParams
The OverrideHvrDefinitionParams element is a child element of the SubmitHVRJobRequest element.

Table 188. OverrideHvrDefinitionParams

Attribute Required? Data Type (Length) Description

Portfolios N Refer Portfolios below.

SharedSettings N Refer SharedSettings.

Portfolios
The Portfolios element is a child element of the OverrideHvrDefinitionParams element.

HvrPortfolios
The HvrPortfolios element is a child element of the Portfolios element.

Table 189. HvrPortfolios

Attribute Required? Data Type (Length) Description

Portfolio Y Refer Portfolio below.

OverrideCompletely N boolean When set to True, it will override all the portfolios
specified in the high-volume reporting definition
with the portfolios specified in the BDT request.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 186 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

When set to False, it will be a combination of


portfolios specified in the definition and the BDT
request.

Portfolio
The Portfolio element is a child element of the HvrPortfolios element.

HvrPortfolio
The HvrPortfolio is a child element of the Portfolio element.

Table 190. HvrPortfolio

Attribute Required? Data Type (Length) Description

NameAndOwner Y Refer NameAndOwner below.

Status N enum Accepted values:


• ENABLE
• DISABLE
• REMOVE

IsComposite N boolean Indicates if the input portfolio is a composite and is


usually set to False.

NameAndOwner
The NameAndOwner element is a child element of the HvrPortfolio element. It specifies the name and
owner of the portfolio.

Table 191. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the portfolio.

Owner Y string Owner of the portfolio.

SharedSettings
The SharedSettings element is a child element of the OverrideHvrDefinitionParams element. It contains
details about the analysis settings, time series settings, and other settings that should be used in the
high-volume reporting job.

Table 192. SharedSettings

Attribute Required? Description

AnalysisSettings N Refer AnalysisSettings.

TimeSeriesSettings N Refer TimeSeriesSettings.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 187 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Description

TrailingRiskReportOption N Refer TrailingRiskReportOption.

TrailingRiskReportOption
The TrailingRiskReportOption element is a child element of the SharedSettings element.

Table 193. TrailingRiskReportOption

Attribute Required? Data Type (Length) Description

SetTrailingRiskReportOption N boolean Set this to true to generate point-in-time


risk reports for multiple trailing dates.

NumberOfPeriod N int Use to specify the number of trailing


periods (including the Analysis date) and
the frequency. Note that weekends and
holidays will be skipped.

PeriodFrequency N enum Use to indicate the frequency of the trailing


period. Accepted values are:
• DAYS
• WEEKS
• MONTHS
• YEARS

To create the SubmitHVRJobRequest object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
SubmitHVRJobRequestDocument myDoc;
myDoc = SubmitHVRJobRequestDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


SubmitHVRJobRequestDocument. SubmitHVRJobRequest myRequest =
myDoc.addNewSubmitHVRJobRequest ();

3. Set the request attributes (refer Tables 184-193). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setHvrReportRequestParams(“myHvrReportRequestParams”);
myRequest.setOverrideHvrDefinitionParams
(“myOverrideHvrDefinitionParams”);

In .NET, send the following:


HvrDefinition myHvrDefinition = new HvrDefinition();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 188 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myHvrDefinition.Name = myHvrJobName;
myHvrDefinition.Owner = myHvrJobOwner;

HvrReportRequestParams myHvrReportRequestParams = new


HvrReportRequestParams();
myHvrReportRequestParams.HvrDefinition = myHvrDefinition;
myHvrReportRequestParams.CycleDate = myCycleDate;

HvrPortfolios myHvrPortfolios= new HvrPortfolios();


myHvrPortfolios.Portfolio = new HvrPortfolio[] { myHvrPortfolio };
myHvrPortfolios.OverrideCompletely = mybooleanflag;

SharedSettings mySharedSettings= new SharedSettings()


{
AnalysisSettings = myAnalysisSettings;
TimeSeriesSettings = myTimeSeriesSettings;
TrailingRiskReportOption=myTrailingRiskReportOption;
};

myOverrideHvrDefinitionParams.setPortfolios=myHvrPortfolios;
myOverrideHvrDefinitionParams.SharedSettings=mySharedSettings;
ReportResponse resp = service.SubmitHVRJob("myUser", "myClient",
"myPassword",myHvrReportRequestParams,myOverrideHvrDefinitionParams);
string[] jobs = resp.JobId;

SubmitHVRJobResponse
The SubmitHVRJobResponse element, a child element of the SubmitHVRJob operation, contains the job
ID of the high volume reporting job that is returned as the response to the SubmitHVRJobRequest
element.

Table 194. SubmitHVRJobResponse

Attribute Required? Data Type (Length) Description

JobId Y string Job ID for the request submitted.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 189 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetLatestHVRJobId
The GetLatestHVRJobId operation consists of the GetLatestHVRJobIdRequest element and
GetLatestHVRJobIdResponse element.

GetLatestHVRJobIdRequest
The GetLatestHVRJobIdRequest element, a child element of the GetLatestHVRJobId operation, takes a
set of parameters and submits a GetLatestHVRJobId request in Barra PortfolioManager. Child elements
of the GetLatestHVRJobIdRequest element include JobName, Owner and CycleDate. It will return the job
ID of an already running high volume reporting job (refer GetLatestHVRJobIdResponse).

Table 195. GetLatestHVRJobIdRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password.

JobName Y string Enter the name of the HVR job whose job ID
you want to retrieve.

Owner Y string Enter the name of the HVR job owner.

CycleDate Y date Date for which job ID is needed.

GetRunningJobId Y boolean Use this flag to only retrieve the job ID of


jobs in the running/waiting state.
• When set to true, if a job is in the
running/waiting state, the job ID
will be retrieved. If a job is in the
completed or failed state, no job ID
will be returned.
• When set to false, a job ID will be
retrieved irrespective of the job
status.

To create the GetLatestHVRJobIdRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetLatestHVRJobIdRequestDocument myDoc;
myDoc = GetLatestHVRJobIdRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


GetLatestHVRJobIdRequestDocument.GetLatestHVRJobIdRequest myRequest =
myDoc.getGetLatestHVRJobIdRequest();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 190 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

3. Set the request attributes (refer Table 195). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setJobName("hvrJobName");
myRequest.setOwner("hvrJobOwner");
myRequest.setCycleDate("cycleDate");
myRequest.setGetRunningJobId(true);

In .NET, send the following:


GetLatestHVRJobIdResponse response = stub.GetLatestHVRJobId("myUser",
"myClient", "myPassword", "hvrJobName", "hvrJobOwner", "cycleDate",
getRunningJobId(true));
String jobId= response.JobId;

GetLatestHVRJobIdResponse
The GetLatestHVRJobIdResponse element, a child element of the GetLatestHVRJobId operation. Child
elements of GetLatestHVRJobIdResponse include JobId.

Table 196. GetLatestHVRJobIdResponse

Attribute Required? Data Type (Length) Description

JobId Y string Job ID for the given job name, run on the cycle
date provided in input request.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 191 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

GetHvrReports
The GetHvrReports operation consists of the GetHvrReportsRequest element and the
GetHvrReportsResponse element.

GetHvrReportsRequest
The GetHvrReportsRequest element, a child element of the GetHvrReports operation, will return the
attributes of the HvrReport element contained in the GetHvrReportsResponse document.

Table 197. GetHvrReportsRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or


organization.

Password Y string Enter your password.

HvrReportRequestParams Y HvrReportRequestParams Refer HvrReportRequestParams.

HvrReportRequestParams
The HvrReportRequestParams element is a child element of the GetHvrReportsRequest element.

Table 198. HvrReportRequestParams

Attribute Required? Data Type (Length) Description

HvrDefinition Y HvrDefinition Define the name and owner of the high-volume


reporting job. Refer HvrDefinition.

CycleDate Y date The scheduled date on which the high-volume


reporting job was run.

HvrDefinition
The HvrDefinition element is a child element of the HvrReportRequestParams element.

Table 199. HvrDefinition

Attribute Required? Data Type (Length) Description

NameAndOwner Y NameAndOwner Refer NameAndOwner below.

NameAndOwner
The NameAndOwner element is a child element of the HvrDefinition element. It specifies the name and
owner of the high-volume reporting job.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 192 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 200. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the high-volume reporting job.

Owner Y string Owner of the high-volume reporting job.

To create the GetHvrReports object, the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
GetHvrReportsDocument myDoc;
myDoc = GetHvrReportsDocument.Factory.newInstance();

2. Create a job with a declaration and instantiation. For example:


GetHvrReportsDocument. GetHvrReports myRequest = myDoc.addNew
GetHvrReports ();
3. Set the request attributes (see Tables 197-200). For example:
myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setHvrReportRequestParams(“myHvrReportRequestParams”)

In .NET, send the following:


HvrDefinition myHvrDefinition = new HvrDefinition();
myHvrDefinition.Name = myHvrJobName;
myHvrDefinition.Owner = myHvrJobOwner;
BDT.HvrReportRequestParams myHvrReportRequestParams = new
HvrReportRequestParams();
myHvrReportRequestParams.HvrDefinition = myHvrDefinition;
myHvrReportRequestParams.CycleDate = myCycleDate;
AttachementType myAttachment = bdtWs.GetHvrReports(m_user, m_client,
m_password, myHvrReportRequestParams);
FileStream myZipOut = new
FileStream(“c:/temp/”+Guid.NewGuid()+myAttachment.FileName ,
FileMode.CreateNew);
MemoryStream myMemOut = new
MemoryStream(Attachment.BinaryData.Value);
myMemOut.WriteTo(myZipOut);
myZipOut.Flush();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 193 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myZipOut.Close();
myMemOut.Close();

GetHvrReportsResponse
The GetHvrReportsResponse element, a child element of the GetHvrReports operation, contains the
attributes of the HvrReport element contained in the GetHvrReportsResponse document that is returned
as the response to the GetHvrReportsRequest element.

HvrReport
The HvrReport element is a child element of the HvrReportResponse element.

Table 201. HvrReport

Attribute Required? Data Type (Length) Description

FileName Y string Name of the high-volume reporting job report.

ContentType Y string The type of report data.


Note: Only “.zip” file type is currently supported.

BinaryData Y base64binary The report data.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 194 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

CreateHVRJobDef
The CreateHVRJobDef operation consists of the CreateHVRJobDefRequest element and the
CreateHVRJobDefResponse element. A high-volume reporting job definition includes the settings and
preferences, required inputs such as portfolios and templates, and reports to be processed. For more
information about setting up high-volume reporting jobs, see Setting Up a High Volume Reporting Job.

CreateHVRJobDefRequest
The CreateHVRJobDefRequest element, a child element of the CreateHVRJobDef operation, takes a set
of settings and parameters and submits a CreateHVRJobDef request in Barra PortfolioManager. Child
elements of the CreateHVRJobDefRequest element include HvrJobDefName and
HVRJobDefRequestParams. It returns a node ID for the CreateHVRJobDef job (refer
CreateHVRJobDefResponse).

Table 202. CreateHVRJobDefRequest

Attribute Required? Data Type Description


(Length)

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

HvrJobDefName Y string Enter a name for the high-volume job.

HVRJobDefRequestParams Y Refer HVRJobDefRequestParams.

SharingRule N enum Accepted values:


• Private
• Public (Default)
• Workgroup_Permissions

HVRJobDefRequestParams
HVRJobDefRequestParams is a child element of the CreateHVRJobDefRequest and helps specify the job
preferences.

Table 203. HVRJobDefRequestParams

Attribute Required? Data Type Description


(Length)

HvrJobType N enum Specify the preferred job type. Accepted values:


• Single Portfolio Reporting (default)

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 195 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type Description


(Length)

• Comparison Reporting

HvrJobOutput N enum Specify the preferred output format of your job reports.
Accepted values:
• CSV (default)
• Insights 2
• PDF

HvrPortfolio Y Refer HvrPortfolio.

SharedSettings Y Refer SharedSettings.

HvrJobNotificationPreferences N Refer HvrJobNotificationPreferences.

HvrTemplate Y array Refer HvrTemplate.

HvrJobSchedule N Refer HvrJobSchedule.

HvrJobNotificationPreferences
HvrJobNotificationPreferences is a child element of the HVRJobDefRequestParams element.

Table 204. HvrJobNotificationPreferences

Attribute Required? Data Type Description


(Length)

EnableEmailNotification Y boolean Set this attribute to true, to enable email notifications.

EmailRecipient Y array Specify an array of the user IDs to include as recipients.

HvrTemplate
HvrTemplate is a child element of the HVRJobDefRequestParams element.

Table 205. InputTemplate

Attribute Required? Data Type Description


(Length)

NameAndOwner Y Refer NameAndOwner below.

2
Requires additional product subscription.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 196 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Attribute Required? Data Type Description


(Length)

EnableTemplate N boolean By default, all the templates are enabled, set to false to disable
a template.

NameAndOwner
The NameAndOwner element is a child element of the InputTemplate element. It specifies the name and
owner of the template.

Table 206. NameAndOwner

Attribute Required? Data Type (Length) Description

Name Y string Name of the template.

Owner Y string Owner of the template.

HvrJobSchedule
HvrJobSchedule is a child element of the HVRJobDefRequestParams element.

Table 207. HvrJobSchedule

Attribute Required? Data Type Description


(Length)

EnableSchedule Y boolean Set to true to schedule your job to run automatically on a weekly or
monthly basis.

ScheduleTime Y Refer ScheduleTime.

ScheduleRecurrence Y Refer ScheduleRecurrence.

JobRetryAttempt Y Refer JobRetryAttempt.

JobRunDateOffset Y enum Use to run scheduled reports using a specific As of Date relative to
today. Accepted values:
• TODAY (default)
• PREVIOUS_CLOSE
• PREVIOUS_MONTH_END
• PREVIOUS_QUARTER_END
• PREVIOUS_YEAR_END

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 197 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

ScheduleTime
ScheduleTime is a child element of the HvrJobSchedule element.

Table 208. ScheduleTime

Attribute Required? Data Type (Length) Description

TimeZone Y string Enter the time zone of the start time.

LaunchATHHMM Y string Enter the time when the job will start to run. Specify the time in
the HHMM 24Hrs format (ex: 1530).

ScheduleRecurrence
ScheduleRecurrence is a child element of the HvrJobSchedule element and is used to specify the
frequency of running the job. You can select either weekly or monthly frequency.

Table 209. ScheduleRecurrence

Attribute Required? Description

WeeklyRecurrence N Enter specific days or all days of the week or every day to run the job.
Refer WeeklyRecurrence below.

MonthlyRecurrence N Enter the day of the month or the interval to run the job. Refer MonthlyRecurrence
below.

WeeklyRecurrence
WeeklyRecurrence is a child element of the ScheduleRecurrence element.

Table 210. WeeklyRecurrence

Attribute Required? Data Type (Length) Description

DayOfWeek Y enum Accepted values:


• SUNDAY
• MONDAY
• TUESDAY
• WEDNESDAY
• THURSDAY
• FRIDAY
• SATURDAY

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 198 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

MonthlyRecurrence
MonthlyRecurrence is a child element of the ScheduleRecurrence element.

Table 211. MonthlyRecurrence

Attribute Required? Data Type (Length) Description

DayOfMonth Y int Specify the day of the month to run the job.

MonthlyInterval Y int Specify the monthly interval to run the job.

JobRetryAttempt
JobRetryAttempt is a child element of the HvrJobSchedule element.

Table 212. JobRetryAttempt

Attribute Required? Data Type (Length) Description

RetryAttemptCount Y int Specify the number of retry attempts in case the job
fails. The maximum number of retries is 5.

RetryAttemptIntervalInMinutes Y int Specify the halt time before the system runs the job
again after failing.

To create the CreateHVRJobDefRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
CreateHVRJobDefRequestDocumentmyDoc;
myDoc = CreateHVRJobDefRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


CreateHVRJobDefRequestDocument.CreateHVRJobDefRequest myRequest =
myDoc.getCreateHVRJobDefRequest();

3. Set the request attributes (refer Tables 202-212). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setHvrJobDefName("myHvrJobDefName");
myRequest.setHVRJobDefRequestParams("myHVRJobDefRequestParams");
myRequest.setSharingRule("mySharingRule");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 199 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

In .NET, send the following:


HVRJobDefRequestParams myHVRJobDefRequestParams = new
HVRJobDefRequestParams();

// **** Job Type ****


myHVRJobDefRequestParams.HvrJobType =
HvrJobType.SinglePortfolioReporting;

// **** Job Output ****


myHVRJobDefRequestParams.HvrJobOutput = HvrJobOutput.CSV;

// **** Portfolios ****


HvrPortfolio myPortfolio = new HvrPortfolio();
myPortfolio.Status = EnumStatus.ENABLE;
myPortfolio.IsComposite = false;
myPortfolio.Name = myPorfolioName;
myPortfolio.Owner = myPortfolioOwner;

myHVRJobDefRequestParams.HvrPortfolio = new HvrPortfolio[] {


myPortfolio };

// **** Shared Settings ****


InputAnalysisSettings myInputAnalysisSettings = new
InputAnalysisSettings();
myInputAnalysisSettings.Name = myAnalysisSettingsName;
myInputAnalysisSettings.Owner = myAnalysisSettingsOwner;

InputTimeSeriesSettings myInputTimeSeriesSettings = new


InputTimeSeriesSettings();
myInputTimeSeriesSettings.Name = myTimeSeriesSettingsName;
myInputTimeSeriesSettings.Owner = myTimeSeriesSettingsOwner;

SharedSettings mySharedSettings = new SharedSettings();


mySharedSettings.AnalysisSettings = myInputAnalysisSettings;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 200 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

mySharedSettings.TimeSeriesSettings = myInputTimeSeriesSettings;

myHVRJobDefRequestParams.SharedSettings = mySharedSettings;

// **** Templates ****


InputTemplate myTemplate = new InputTemplate();
myTemplate.EnableTemplate = true;
myTemplate.Name = myTemplateName;
myTemplate.Owner = myTemplateOwner;
myHVRJobDefRequestParams.HvrTemplate = new InputTemplate[] {
myTemplate };

// **** Schedule ****


HvrJobSchedule mySchedule = new HvrJobSchedule();
mySchedule.EnableSchedule = true;

ScheduleTime scheduleTime = new ScheduleTime();


scheduleTime.LaunchATHHMM = myLaunchATHHMM;
scheduleTime.TimeZone = myTimeZone;
mySchedule.ScheduleTime = scheduleTime;

ScheduleRecurrence scheduleRecurrence = new ScheduleRecurrence();


MonthlyRecurrence myMonthlyRecurrence = new MonthlyRecurrence();
myMonthlyRecurrence.DayOfMonth = myDayOfMonth;
myMonthlyRecurrence.MonthlyInterval = myMonthlyInterval;
scheduleRecurrence.Item = myMonthlyRecurrence;
mySchedule.ScheduleRecurrence = scheduleRecurrence;

JobRetryAttempt jobRetryAttempt = new JobRetryAttempt();


jobRetryAttempt.RetryAttemptCount = myRetryAttemptCount;
jobRetryAttempt.RetryAttemptIntervalInMinutes =
myRetryAttemptInterval;
mySchedule.JobRetryAttempt = jobRetryAttempt;

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 201 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

mySchedule.JobRunDateOffset = DateRelativeToValueEnum.PREVIOUS_CLOSE;

myHVRJobDefRequestParams.HvrJobSchedule = mySchedule;

CreateHVRJobDefResponse response = stub.CreateHVRJobDef("myUser",


"myClient", "myPassword", "myHvrJobDefName",
myHVRJobDefRequestParams, mySharingRule);
String nodeId = response.NodeId;

CreateHVRJobDefResponse
The CreateHVRJobDefResponse is a child element of the CreateHVRJobDef operation. It is returned as a
response to the CreateHVRJobDefRequest element and contains the child elements, NodeId and
CreateHVRJobDefResult.

Table 213. CreateHVRJobDefResponse

Attribute Required? Data Type (Length) Description

NodeId N string This attribute is the node ID generated as an


acknowledgement to the
CreateHVRJobDefRequest.

CreateHVRJobDefResult N string This attribute is the status message generated as


an acknowledgement to the
CreateHVEJobDefRequest.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 202 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

DeleteHVRJobDef
The DeleteHVRJobDef operation consists of the DeleteHVRJobDefRequest element and
DeleteHVRJobDefResponse element.

DeleteHVRJobDefRequest
The DeleteHVRJobDefRequest element, a child element of the DeleteHVRJobDef operation, takes a set of
parameters and submits a DeleteHVRJobDef job in Barra PortfolioManager. Child elements of the
DeleteHVRJobDefRequest element include HvrJobDefName and HvrJobDefOwner. It returns
DeleteHVRJobDefResult and StatusValue for the DeleteHVRJobDef job (refer
DeleteHVRJobDefResponse).

Table 214. DeleteHVRJobDefRequest

Attribute Required? Data Type (Length) Description

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

HvrJobDefName Y string Enter the name of the high-volume reporting job that you
want to delete.

HvrJobDefOwner Y string Enter the name of the job owner.

To create the DeleteHVRJobDefRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
DeleteHVRJobDefRequestDocument myDoc;
myDoc = DeleteHVRJobDefRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


DeleteHVRJobDefRequestDocument.DeleteHVRJobDefRequest myRequest =
myDoc.getDeleteHVRJobDefRequest();

3. Set the request attributes (refer Table 214). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");
myRequest.setHvrJobDefName("myHvrJobDefName");
myRequest.setHvrJobDefOwner("myHvrJobDefOwner");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 203 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

In .NET, send the following:


DeleteHVRJobDefResponse response = stub.DeleteHVRJobDef("myUser",
"myClient", "myPassword", "myHvrJobDefName", "myHvrJobDefOwner");
int statusValue = response.StatusValue;

DeleteHVRJobDefResponse
The DeleteHVRJobDefResponse element is a child element of the DeleteHVRJobDef operation. It is
returned as a response to the DeleteHVRJobDefRequest element and contains the child elements,
DeleteHVRJobDefResult and StatusValue.

Table 215. DeleteHVRjobDefResponse

Attribute Required? Data Type (Length) Description

DeleteHVRJobDefResult Y string Status message generated as an


acknowledgement to the DeleteHVRJobRequest.

StatusValue Y int Status code generated as an acknowledgement to


the DeleteHVRJobRequest. For successful
deletion, 0 is returned.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 204 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

UpdateHVRJobDef
The UpdateHVRJobDef operation is used to update an existing high-volume reporting job definition. It
consists of the UpdateHVRJobDefRequest element and the UpdateHVRJobDefResponse element.

UpdateHVRJobDefRequest
The UpdateHVRJobDefRequest element, a child element of the UpdateHVRJobDef operation, takes a set
of parameters and submits a UpdateHVRJobDef job in Barra PortfolioManager. Child elements of the
UpdateHVRJobDefRequest element include HvrJobDefName and HvrJobDefOwner. It returns
UpdateHVRJobDefResult and NodeId for the UpdateHVRJobDef job (Refer UpdateHVRJobDefResponse).

Table 216. UpdateHVRJobDefRequest

Attribute Required? Data Type Description


(Length)

User Y string Enter your user ID.

Client Y string Enter the client ID for your firm or organization.

Password Y string Enter your password.

HvrJobDefName Y string Enter the name of the high-volume reporting job that you
want to update.

HvrJobDefOwner Y string Enter the name of the job owner.

HvrJobSchedule N Refer HvrJobSchedule.

OverrideHvrDefinitionParams N Refer OverrideHvrDefinitionParams.

To update the UpdateHVRJobDefRequest object the following steps are required:


1. Create a request document with a declaration and instantiation. For example:
UpdateHVRJobDefRequestDocumentmyDoc;
myDoc = UpdateHVRJobDefRequestDocument.Factory.newInstance();

2. Create a request with a declaration and instantiation. For example:


UpdateHVRJobDefRequestDocument.UpdateHVRJobDefRequest myRequest =
myDoc.getUpdateHVRJobDefRequest();

3. Set the request attributes (refer Table 216). For example:


myRequest.setUser("myUser");
myRequest.setClient("myClient");
myRequest.setPassword("myPassword");

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 205 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

myRequest.setHvrJobDefName("myHvrJobDefName");
myRequest.setHvrJobDefOwner("myHvrJobDefOwner");
myRequest.setHvrJobSchedule("myHvrJobSchedule");
myRequest.setOverrideHvrDefinitionParams("myOverrideHvrDefinitionPara
ms");

In .NET, send the following:


// **** HVR Job Schedule ****
HvrJobSchedule mySchedule = new HvrJobSchedule();
mySchedule.EnableSchedule = true;

ScheduleTime scheduleTime = new ScheduleTime();


scheduleTime.LaunchATHHMM = myLaunchATHHMM;
scheduleTime.TimeZone = myTimeZone;
mySchedule.ScheduleTime = scheduleTime;

ScheduleRecurrence scheduleRecurrence = new ScheduleRecurrence();


MonthlyRecurrence myMonthlyRecurrence = new MonthlyRecurrence();
myMonthlyRecurrence.DayOfMonth = myDayOfMonth;
myMonthlyRecurrence.MonthlyInterval = myMonthlyInterval;
scheduleRecurrence.Item = myMonthlyRecurrence;
mySchedule.ScheduleRecurrence = scheduleRecurrence;

JobRetryAttempt jobRetryAttempt = new JobRetryAttempt();


jobRetryAttempt.RetryAttemptCount = myRetryAttemptCount;
jobRetryAttempt.RetryAttemptIntervalInMinutes =
myRetryAttemptInterval;
mySchedule.JobRetryAttempt = jobRetryAttempt;

mySchedule.JobRunDateOffset =
DateRelativeToValueEnum.PREVIOUS_MONTH_END;

// **** Override Hvr Definition Params ****


OverrideHvrDefinitionParams myOverrideHvrDefinitionParams = new
OverrideHvrDefinitionParams();

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 206 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

InputAnalysisSettings myInputAnalysisSettings = new


InputAnalysisSettings();
myInputAnalysisSettings.Name = myInputAnalysisSettingsName;
myInputAnalysisSettings.Owner = myInputAnalysisSettingsOwner;

InputTimeSeriesSettings myInputTimeSeriesSettings = new


InputTimeSeriesSettings();
myInputTimeSeriesSettings.Name = myTimeSeriesSettingsName;
myInputTimeSeriesSettings.Owner = myTimeSeriesSettingsOwner;

SharedSettings mySharedSettings = new SharedSettings();


mySharedSettings.AnalysisSettings = myInputAnalysisSettings;
mySharedSettings.TimeSeriesSettings = myInputTimeSeriesSettings;

myOverrideHvrDefinitionParams.SharedSettings = mySharedSettings;
UpdateHVRJobDefResponse response = stub.UpdateHVRJobDef("myUser",
"myClient", "myPassword", "myHvrJobDefName", "myHvrJobDefOwner",
mySchedule, myOverrideHvrDefinitionParams);
String nodeId = response.NodeId;

UpdateHVRJobDefResponse
The UpdateHVRJobDefResponse element is a child element of the UpdateHVRJobDef operation. It is
returned as a response to the UpdateHVRJobDefRequest element and contains the child elements,
UpdateHVRJobDefResult and NodeId.

Table 217. UpdateHVRjobDefResponse

Attribute Required? Data Type (Length) Description

UpdateHVRJobDefResult Y string Status message generated as an


acknowledgement to the
UpdateHVRJobDefRequest.

NodeId Y string Node ID generated as an acknowledgement to the


UpdateHVRJobDefRequest.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 207 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Appendix A: Error Codes


The following table lists application exceptions. Note that this list applies to both Barra PortfolioManager
and BarraOne.

Table 218. Application Exceptions

Error Code Description

NO_CURRENT_PORTFOLIO This operation requires a portfolio to be selected. (Indicates that no


current portfolio was selected when calling an event that requires a
current portfolio.)

NO_MODEL_SETTINGS Indicates that no model setting was selected, so Barra


PortfolioManager sent a null model settings id.

NO_NUMERAIRE Selected currency %(NUMERAIRE) doesn't exist on the chosen


analysis date. The portfolio can't be loaded. (Indicates that
numeraire currency doesn't exist in the risk model. May be caused
by moving the date back from a model version where this currency
is already supported.)

ACCESS_VIOLATION (USER) does not have permission to %(ACTION) this %(OBJECT).


(Indicates that the current user does not have permission for the
specified operation.)

ACCESS_VIOLATION_NO_ACTION %(USER) does not have permission to %(ACTION) this %(OBJECT).


(Indicates that the current user does not have permission for the
specified operation. No Action signal. Barra PortfolioManager not to
clear session portfolio.)

ASSET_NOT_FOUND The asset does not exist in the current portfolio. (Indicates that the
particular asset is not found in the current portfolio.)

ASSET_REJECTED The asset is rejected in the current portfolio. (Indicates that the
particular asset is rejected in the current portfolio.)

ASSET_REJECTED Selected asset is rejected. (Indicates that the particular asset is


rejected.)

BOL_ZOOM_FAILED This asset does not comply with the zoom criteria specified and
cannot be used in Trade Scenario. (Indicates that the particular
asset does not comply with the zooming criteria.)

NAME_ALREADY_EXISTS The name '%(<DEFAULT>)' already exists. (Indicates that the user
has attempted to define a name that already exists.)

INVALILD_NAME The name '%(<DEFAULT>)' is not a valid name. (Indicates that the
user has attempted to define a name that already exists.)

PORTFOLIO_ALREADY_EXISTS The portfolio '%(<DEFAULT>)' already exists. (Indicates that the user
has attempted to create or rename or portfolio with a name that
already exists.)

SCREENING_PORTFOLIO_ALREADY_EXISTS An existing screen case based on portfolio has the name


'%(<DEFAULT>)'. Please choose another name.

PORTFOLIO_EXISTS_WITH_DIFF_TYPE The portfolio '%(<DEFAULT>)' already exists and has different

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 208 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Description


storage type. Please choose another name.

PORTFOLIO_ALREADY_EXISTS_IN_PACKED_ The portfolio '%(<DEFAULT>)' already exists in packed form.


FORM (Indicates that the user has attempted to save a portfolio with
expanded composites under its old name.)

PORTFOLIO_ALREADY_EXISTS The portfolio '%(<DEFAULT>)' already exists. (Indicates that the user
has attempted to save a portfolio with a name that already exists.)

NODE_ALREADY_EXISTS The node '%(<DEFAULT>)' already exists. (Indicates that the user
has attempted to save a node with a name that already exists.)

DATA_NOT_AVAILABLE '%(<DEFAULT>)' is unavailable". (Indicates that some object was not


found.)

NOT_FOUND %(<DEFAULT>) not found. (Indicates that some object was not
found.)

NOT_PERMITTED %(<DEFAULT>) not permitted. (Indicates that some object was not
permitted.)

STRATEGY_NOT_FOUND The strategy '%(<DEFAULT>)' not found. (Indicates that a named


strategy was not found —probably deleted during the session.)

REBALANCE_PROFILE_NOT_FOUND Rebalance Profile not found.

REBALANCE_PROFILE_ALREADY_EXISTS The profile '%(<DEFAULT>)' already exists.

OPTIMIZER_TOO_MANY_JOBS You have exceeded the maximum number of jobs. Please delete one
or more jobs and resubmit your request. (Indicates problems with
optimization job list.)

OPTIMIZER_CANNOT_DELETE_JOB System is not able to delete the '%(<DEFAULT>)' job. Please wait
until the job is completed to repeat the action.

OPTIMIZER_CANNOT_DELETE_ANY System is not able to find any job to delete.

BATCH_REPORTER_CANNOT_DELETE_JOB Batch reporter is not able to delete the '%(<DEFAULT>)' job. Please
wait until the job is completed to repeat the action.

BATCH_REPORTER_CANNOT_DELETE_ANY Batch reporter is not able to find any job to delete.

PORTFOLIO_NOT_FOUND Portfolio not found. (Indicates that the session portfolio has
disappeared—probably deleted by another user during the session.)

UNDERLIERPORTFOLIO_NOT_FOUND Underlier portfolio not found. (Indicates that the underlier portfolio
for a session portfolio does not exist—probably deleted by another
user during the session.)

BUCKET_NOT_FOUND Bucket not found. (Indicates that the current bucket name has
disappeared—probably deleted by another user during the session).

GROUPING_NOT_FOUND Grouping not found. (Indicates that the current grouping has
disappeared—probably deleted by another user during the session.)

FACTOR_TREE_NOT_FOUND Factor tree not found. (Indicates that the current factor tree has
disappeared—probably deleted by another user during the session.)

NODE_ALREADY_IN_TREE The portfolio %(<DEFAULT>) already exists in this aggregate.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 209 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Description


(Indicates that the current grouping has disappeared—probably
deleted by another user during the session.)

ATHENA_LIBRARY_ERROR id %(BARRAID): Athena message: %(MESSAGE). (Indicates an error


message passed from the Athena library.)

ATHENA_MISSING_DATA id %(BARRAID): missing data: %(MESSAGE). (Indicates that required


data is missing.)

ATHENA_MISSING_MARKET_DATA id %(BARRAID): missing data: %(MESSAGE). (Indicates that required


data is missing.)

ATHENA_MISSING_RESULT id %(BARRAID): missing result: %(NAME). (Indicates that the


required result was for some reason not computed.)

ATHENA_PRICE_ERROR id %(BARRAID): price is %(MESSAGE). (Indicates that the required


result was for some reason not computed.)

ATHENA_NO_MBS_MAPPING The MBS pool %(<DEFAULT>) is not mapped to a generic. (Indicates


that the required result was for some reason not computed.)

ATHENA_UNEXPECTED_INSTRUMENT_TYPE id %(BARRAID) is a %(ACTUAL). It doesn't implement %(EXPECTED).


(Indicates that an instrument was of the wrong type for the handler.)

ATHENA_MAPPING_FAILURE id %(BARRAID): There is no entry for %(KEY) in %(MAP). Indicates


that an instrument was of the wrong type for the handler.

ATHENA_UNEXPECTED_VALUE id %(BARRAID): %(VALUE) is not a legal value for %(FIELD).


(Indicates that an instrument was of the wrong type for the handler.)

NON_NUMERAIRE_CASH The asset is cash of a non numeraire currency. It cannot be traded


in Trade Scenario. (Indicates that an instrument was a non-
numeraire cash.)

ASSET_NOT_TRADABLE The asset is a currency exposure unit. It cannot be traded in Trade


Scenario when currency hedging is enabled.

BOL_ERROR The following system error has occurred: %(<DEFAULT>). (Wrapper


for arbitrary exceptions.)

CANT_CHANGE_SHORTCUTS_OWNER Changing a shortcut's owner is not allowed. (Indicates that the user
has attempted to create or rename or portfolio with a name that
already exists.)

EXCEED_PORTFOLIO_LIMIT Warning: You have reached the maximum no. of %(<DEFAULT>)


portfolios allowed for this account. We recommend that you delete
an existing portfolio before attempting to create your next portfolio.
(Indicates that the user has exceeded its portfolio limit.)

PORTFOLIO_VALUE_MISSING Portfolio value missing. (Indicates that the portfolio effective value
is missing.)

INVALID_PORTFOLIO_VALUE Invalid portfolio value. (Indicate that the portfolio effective value is
not valid.)

PORTFOLIO_VALUE_CURRENCY_MISSING Portfolio value currency missing. (Indicates that the portfolio


effective value currency is missing.)

UNSUPPORTED_PORTFOLIO_VALUE_CURRE Unsupported portfolio value currency. (Indicates that the portfolio

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 210 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Description


NCY effective value currency is not supported.)

INVALID_EXCHANGE_RATE Invalid exchange rate. (Indicates that the exchange rates passed in
cannot be translated into a number.)

CUSTOM_REPORT_NOT_FOUND Custom report ID '%(<DEFAULT>)' not found. (Indicates that a


requested custom report wasn't found.)

FAVORITE_NOT_FOUND Favorite ID '%(<DEFAULT>)' not found. (Indicates that a requested


favorite wasn't found.)

CUSTOM_REPORT_READ_ONLY Custom reports are read-only to all users but the owner. (Indicates
that a custom report was read-only for the requesting user.)

BATCH_REPORT_NOT_FOUND Batch report error: %(<DEFAULT>). (Indicates that the requested


batch report was not found.)

INCONSISTENT_INPUT_DATA_ARRAY_LENG Inconsistent input data array length: %(<DEFAULT>). (Indicates that


TH the length of the input data arrays mismatch.)

BATCH_REPORT_SCHEDULES_WILL_BE_DEL Batch report schedules will be deleted. (Indicate that the requested
ETED batch report was not found.)

SCREEN_CASE_NOT_FOUND Screen case not found.

SCREEN_CASE_ALREADY_EXISTS The Screen Case '%(<DEFAULT>)' already exists

CIRCULAR_REFERENCE Cannot open a dynamic portfolio '%(<DEFAULT>)' due to a circular


reference

CIRCULAR_REFERENCE_IN_SCREENCASE Cannot run a screencase due to a circular reference.

INTERNAL_ERROR_GENERATING_SHORT_TE Creation of Ultra-short term covariance matrix is impossible due to


RM_COVARIANCE_MATRIX data problem.

FAILURE_GENERATING_SHORT_TERM_COVA Creation of Ultra-short term covariance matrix is impossible due to


RIANCE_MATRIX data problem.

NO_PERMISSION_FOR_COPULA_TYPE_OR_DI No permission to select copula and/or marginal distribution types.


STRIBUTION

NO_PERMISSION_FOR_HVAR_DECOMPOSITI No permission to use HVaR decomposition.


ON

NO_MISSING_COVMATRIX Missing covmatrix for selected Risk Model for Date


%(DATE).

NO_MISSING_RISKMODEL Missing selected Risk Model %(ID) for Date %(DATE).

INVALID_RISK_MODEL Risk model %(RISKMODEL) with variant %(VARIANT) does not exist.

NO_FAILED_TO_APPLY_ANALYSIS_STRATEG Failed to apply Analysis Strategy id '%(<DEFAULT>)'.


Y

INCORRECT_ID_FORMAT %(<DEFAULT>): Id format is incorrect.

INVALID_CURRENCY Id %(ID) contains invalid currency %(CURR).

ISSUE_DATE_MISSING %(<DEFAULT>): issue date is missing for rolling maturity.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 211 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Description

MATURITY_DATE_FORMAT_INCORRECT %(<DEFAULT>): maturity date format is incorrect. It should be


\"yyyymmdd\".

SCENARIO_NOT_FOUND The Stress Scenario not found. (Indicates that the stress scenario
has disappeared—probably deleted by another user during the
session.)

Errors Related to Barra PortfolioManager Folder/Data Maintenance

INVALID_BPM_DATA_TYPE %(<DEFAULT>): The Barra PortfolioManager data type is not


supported.

INVALID_BPM_NODE_TYPE %(<DEFAULT>): The Barra PortfolioManager node type is not


supported.

NODE_NOT_FOUND NodeId '%(<DEFAULT>)' not found.

VERSION_EXPIRED '%(<DEFAULT>)': The version has expired.

JOB_CANCELLED '%(<DEFAULT>)' is cancelled.

Errors related to Barra PortfolioManager performance attribution (PA) report and maintenance

NO_SELECTED_COLUMNS_FOUND Selected Column '%(<DEFAULT>)' not found.

SELECTED_COLUMNS_ERROR There is an error for selected column '%(<DEFAULT>)' for the chosen
PA report.

PA_RESULT_NOT_FOUND PA Result is not found for PA report '%(<DEFAULT>)'.

PA_INCONSISTENT_SETTINGS PA has inconsistent Analysis Strategy or Time Series Settings


'%(<DEFAULT>)'.

PA_GROUPING_NOT_DEFINED_FOR_ALLOCA Grouping or Attribute are not defined or not found for Allocation
TION Selection PA job '%(<DEFAULT>)'.

PA_TS_SETTINGS_NOT_DEFINED Time Series Settings are not fully defined. Some required attributes
are missing '%(<DEFAULT>)'.

PA_AS_SETTINGS_BASE_CURRENCY_OR_VA BPM Analysis Strategy Settings are not fully defined, missing base
LUE_NOT_DEFINED currency or base value type. '%(<DEFAULT>)'.

PA_JOB_DATES_OUTSIDE_SUPPORTED_RAN PA Job dates should be defined within supported range: application


GE start date and latest analysis date '%(<DEFAULT>)'.

PA_NOT_END_OF_MONTH_DATES_FOR_MO PA Job dates should be End Of Month for Monthly Return Frequency
NTHLY_JOB Setting '%(<DEFAULT>)'.

PA_INTERNAL_ENGINE_ERROR Internal PA Engine Error'%(<DEFAULT>)'.

Errors Related to Barra PortfolioManager Risk Model Permission

RISK_MODEL_NOT_ACCESSIBLE Risk model not accessible '%(<DEFAULT>)'

INCONSISTENT_TIME_SERIES_SETTINGS Inconsistent Time Series Settings '%(<DEFAULT>)'

The following table lists the status codes that may be returned from an import operation.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 212 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Table 219. Import Status Codes

Error Code Error Description

BOLS001 Success

BOLSS002 Not validated

The following table lists the error codes that may be returned from an instrument terms and conditions
import operation.

Table 220. Instrument Import Error Codes

Error Code Error Description

BOLE001 Unknown failure in Data Validation

BOLE002 Issue date cannot be beyond maturity

BOLE003 Missing bond future underlier

BOLE004 Unsupported bond future type code

BOLE005 Circular Reference

BOLE006 Unsupported instrument ID type

BOLE007 Rating agency name and rating must be either present or absence together.

BOLE008 Asset name too long

BOLE009 Unsupported instrument type

BOLE010 Unsupported currency

BOLE011 Unsupported subsector

BOLE012 Unsupported issuer type

BOLE013 Unsupported country

BOLE014 Inflation protection not available in the currency

BOLE015 Unsupported sector

BOLE016 Unsupported rating agencies

BOLE017 Unsupported rating

BOLE018 Unsupported coupon type

BOLE019 Unsupported coupon frequency

BOLE020 Sinker missing amount issued.

BOLE021 Strike price is not positive

BOLE022 unsupported asset priority

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 213 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE023 unsupported accrual basis

BOLE024 Prerefundable not applicable to non MUNI bond.

BOLE025 Floaters or Floater legs must have rate term if reference rate is EURIBOR LIBOR Swap
Govt CMS or MMD.

BOLE026 Unsupported option style

BOLE027 Unsupported option type

BOLE028 Missing call schedule

BOLE029 Negative notice days is not valid

BOLE030 Muni bonds cannot be floaters

BOLE031 Cannot verify first coupon date is later than first accrual date because first accrual date
has error

BOLE032 Zero or negative implied volatility is not valid

BOLE033 One or more dates are not between instrument issue date and maturity date

BOLE034 Unsupported sink type

BOLE035 Amount sunk is larger than amount issued

BOLE036 Muni bond or Mortgage Back Security must be in USD currency

BOLE037 Invalid underlier. Please check that the underlier exists and it is the correct type for the
derivative.

BOLE038 Schedule contains one or more unknown underliers

BOLE039 Unsupported reference rate

BOLE040 Rate term unverifiable due to invalid reference rate

BOLE041 Unsupported rate term

BOLE042 Missing effective duration

BOLE043 Zero or negative conversion factor is invalid

BOLE044 Total amount sunk is not verifiable due to invalid amount issued

BOLE045 Invalid type of underlier

BOLE046 Schedule contains one or more invalid types of underliers

BOLE047 Missing coupon conversion date for Fixed to Float/Float to Fixed

BOLE048 Missing inflation rate history

BOLE049 Delivery Date is not between underlier issue date and maturity

BOLE050 Expiration date is not between underlier issue date and maturity

BOLE051 Unsupported Japan sub-type

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 214 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE052 First coupon date cannot be earlier than first accrual date

BOLE053 Schedule not applicable to the parent instrument

BOLE054 Unsupported underlying instrument ID type

BOLE055 Exercise schedule is not applicable to the option style

BOLE056 Bermudan option style not applicable to the instrument type

BOLE057 Only European option style is applicable to the instrument type

BOLE058 No term structure and fixed income valuation model for the particular currency

BOLE059 Sink Amount should be a fraction of amount issued. A number less than or equal to
zero or a number greater than one is not valid

BOLE060 Zero or negative Price is not valid

BOLE061 Schedule exists for non-putable and/or non-callable bond

BOLE062 Inflation rate schedule exists for non inflation protected instrument

BOLE063 Sink schedule exists for non sinkable instrument

BOLE064 Negative coupon is not valid

BOLE065 Zero or negative contract size is not valid

BOLE066 Japan sub-type is not applicable to currencies other than Japanese Yen

BOLE067 Missing exercise schedule

BOLE068 Unsupported reset frequency

BOLE069 Negative dividend yield is not valid

BOLE070 Zero or negative par value is not valid

BOLE071 Zero or negative inflation rate is not valid

BOLE072 Negative floor is not valid

BOLE073 Zero and negative cap or periodic cap are not valid

BOLE074 Negative periodic floor is not valid

BOLE075 Life time cap less than floor is not valid. Correct either the cap or the floor.

BOLE076 Coupon conversion date is not between issue date and maturity

BOLE077 Prerefunded Date is not between issue date and maturity

BOLE078 Last coupon Date cannot be beyond maturity

BOLE079 Refund Date is not between issue date and maturity

BOLE080 First accrual date cannot be beyond maturity

BOLE081 First coupon date cannot be beyond maturity

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 215 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE082 Reference rate and/or reset frequency are missing in a floater.

BOLE083 Cannot verify last coupon date is later than first coupon date because first coupon date
has error

BOLE084 Cannot verify last coupon date is later than first accrual date because first accrual date
has error

BOLE085 Cannot verify last coupon date is later than issue date because issue date has error

BOLE086 Last coupon date cannot be earlier than first coupon date

BOLE087 Last coupon date cannot be earlier than first accrual date

BOLE088 Last coupon date cannot be earlier than issue date

BOLE089 Rate term longer than 1 year is not supported by this reference rate

BOLE090 Implied volatility date must be between the option start date and the latest exercise
date

BOLE091 Option Underlier should have the same Currency as parent

BOLE092 Future Underlier should have the same Currency as parent and fixed coupon type

BOLE093 Missing put schedule

BOLE094 Missing sink schedule

BOLE095 User asset id must not be the same as the underlying asset id

BOLE096 Muni bond must have USA as issuer country

BOLE097 Unsupported conversion style

BOLE098 Zero or negative Initial Share Price is not valid

BOLE099 Negative Cash Amount Paid is not valid

BOLE100 Zero or negative Fixed Exchange Rate is not valid

BOLE101 Negative PERCS Cap Yield is not valid

BOLE102 Unsupported conversion type

BOLE103 Zero or negative Max Conversion Ratio is not valid

BOLE104 Zero or negative Conversion Ratio is not valid

BOLE105 Reverse convertibles must not have call options

BOLE106 Convertible bond and its converting stock must have the same country

BOLE107 Zero or negative Trigger Level is not valid

BOLE108 Zero or negative Soft Call Days is not valid

BOLE109 Missing conversion schedule

BOLE110 Convertible bond of PERCS type must have PERCS Cap Yield greater than zero

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 216 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE111 Trigger Level and Soft Call Days fields must both be present or both absent. Importing
only one of them is not permitted.

BOLE112 Negative Amount Issued is not valid

BOLE113 Negative Amount Outstanding is not valid

BOLE114 Zero or negative or 1 Exchange Rate is not valid

BOLE115 Zero or negative Weight is not valid

BOLE116 Negative CDS Spread is not valid

BOLE117 Zero or Negative Deal Spread is not valid

BOLE118 Credit event Start Date not between start date and expiration date

BOLE119 Start date should be before expiration date

BOLE121 Credit Event Start Date is not between basket start date and expiration date

BOLE120 Start date is not in between underlier issuer and maturity dates

BOLE122 IR and FX Swaps must have 2 legs - one short and one long

BOLE123 Currency and quote Currency could not be the same

BOLE124 Currency Swap could have only Fixed coupon legs.

BOLE125 Unsupported spread allocation

BOLE126 Unsupported IR swap leg type value.

BOLE127 Unsupported Date Roll Conventions.

BOLE128 Start date should be before delivery date

BOLE129 Basket should have at least one constituent

BOLE130 Only Regular Convertible Bond could be perpetual

BOLE131 Sector value should be defined for Government Issuer Type

BOLE132 Unsupported Hedge Fund Geo Focus code

BOLE133 Unsupported Hedge Fund Primary Style or Style

BOLE134 Unsupported Hedge Fund Sector

BOLE135 Unsupported Hedge Fund Return Year

BOLE136 Start date should be before end date

BOLE137 Effective date should be before termination date

BOLE138 Unsupported notional amount type

BOLE139 Notional Amount is invalid

BOLE140 Negative Index Level is not valid

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 217 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE141 Date not between effective and termination dates

BOLE142 Swaption start date should be before underlier's start date

BOLE143 Currency and Quote Currency should be different

BOLE144 Zero or negative Pay or Receive Amount is not valid

BOLE145 Unsupported Exchange Notional Type

BOLE146 Settlement Days should be positive and less than 14

BOLE147 Unsupported payment types. Only fixed and floating supported

BOLE148 Total return Swap with Fixed Payment Type requires positive non-zero Fixed Rate

BOLE149 Unsupported total return payment types.

BOLE150 Swaption last exercise date should not be after Underlier's Start Date

BOLE151 First exercise date in schedule should be after Parent's Start Date

BOLE152 Unsupported total return payment types.

BOLE153 Effective and Termination Dates should be between underlier issuer and maturity dates

BOLE154 Swaption underlier could only be an IR Swap with 2 different legs - floating and fixed;
Coupon frequency should be the same on both legs.

BOLE155 Currency Swap could not have cancel schedules since it could not be cancelable

BOLE156 Sinkable bond must have Amount Issued

BOLE157 Currency Swap legs each should have different and not empty contract size defined.

BOLE158 IR Swap legs should not have contract size defined.

BOLE159 IR Swap parent should have contract size defined and legs should not have it.

BOLE160 Currency Swap parent should not have contract size defined and each leg should have
it.

BOLE161 Duplicate years specified. For each fund - monthly returns may only be specified once

BOLE162 The last return value must be on or after Nov. 2006

BOLE163 Return values should be between -100% to 500%

BOLE164 Fund of funds instrument requires at least one non fund of funds style specified in the
style sheet.

BOLE165 Insufficient # of returns. Minimum of 24 monthly returns are required for modeling

BOLE166 Data update is not yet available for the return(s) specified

BOLE167 Unsupported Asset Class Focus

BOLE168 Total return Swap with Floating Payment Type cannot have zero Multiplier

BOLE169 Barrier level should not be negative

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 218 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE170 Barrier end date cannot be after the option expiration date

BOLE171 Barrier hit date has to be in between barrier start and end dates

BOLE172 Barrier start date cannot be after barrier end date

BOLE173 Rebate should not be negative

BOLE174 Only European option has barrier attributes

BOLE175 Only European option has barrier attributes

BOLE176 First limit hit date has to be after start date and before end date

BOLE177 One of the legs must be pegged to inflation curve which is specified through RateIndex
REAL

BOLE178 Negative or zero Order Price is not valid

BOLE181 Negative interest is not valid

BOLE182 Negative principal is not valid

BOLE183 Missing cash flow schedule

BOLE184 The instrument type should be Cash Flow Bond

BOLE185 The instrument type should be blank

BOLE186 The valid barrier types are: UI UO DI DO

BOLE187 There are duplicated barrier type

BOLE188 Double Barrier Option, valid combinations are: (DI UI) (DI UO) (DO UI) and (DO UO)

BOLE189 The rebate in the two legs of a double barrier option should be the same

BOLE190 The RebateAtEnd flag in the two legs of a double barrier option should be the same

BOLE191 Barrier options should have at most 2 barriers

BOLE193 The coupon type in one leg of the inflation swap should be floating.

BOLE194 First accrual date cannot be earlier than issue date

BOLE195 Option expiration date should not be later than the underlying future delivery date

BOLE196 Zero Coupon Swaps must have 2 legs - one fixed and one floating

BOLE197 Coupon rate schedule is not applicable to the fixed coupon type

BOLE198 Bermudan Swaption should not have empty exercise schedule

BOLE199 Unsupported discounting curve.

BOLE200 Cash Flow Asset missing cash flow schedule.

BOLE201 Ex-Right date should be before Redemption date

BOLE202 Hedge Percentage should be between 0 to 100

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 219 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE203 Unsupported Hedge Currency.

BOLE204 Missing Hedge Currency for non-zero hedging.

BOLE205 Negative FRA Rate is not valid

BOLE206 Hedge Percentage and Hedge Currency should not be defined if Hedge is off.

BOLE207 Sale date should be before repurchase date

BOLE208 Unsupported Repo Type

BOLE209 Unsupported Collateral Type

BOLE210 Negative or zero Repo Rate is not valid

BOLE211 Negative or zero Sale Price is not valid

BOLE212 Negative or zero Repurchase Price is not valid

BOLE213 Negative or blank haircut is not allowed

BOLE214 BuySell Repo cannot have non-zero RepoRate value.

BOLE215 BuySell Repo cannot have non-zero Haircut value.

BOLE216 BuySell Repo cannot have non-zero SalePrice value.

BOLE217 BuySell Repo must have RepurchasePrice value.

BOLE218 Classic Repo cannot have non-zero RepurchasePrice value.

BOLE219 Classic Repo must have RepoRate value.

BOLE220 Classic Repo must have SalePrice value.

BOLE221 Unsupported Cap/Floor order type. Order type must be either Cap or Floor.

BOLE222 Irrelevant data fields. Fixed swap leg can only have these fields: Id; Id Type; Accrual
Basis; Coupon; Coupon Frequency; Coupon Type; Leg Type; Contract Size.

BOLE223 Negative total cash flow is not valid

BOLE224 Negative total principle is not valid

BOLE225 Start date should be before settlement date

BOLE226 Settlement date should be before end date

BOLE227 Cap/Floor rate is not positive

BOLE228 An option can only have either of Barrier or Asian feature but not both

BOLE229 Only options of European style could have Asian feature

BOLE230 Unsupported Asian option price average type; only Strike or Price is supported

BOLE231 Number of sampling points is larger than the number of business days between price
averaging start date and price averaging end date

BOLE232 Too many Asian Option attributes for one instrument. There should be one entry in

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 220 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description


Asian Option Attributes worksheet for each Asian option instrument

BOLE233 Average Start date and Number of Sampling Points must be present when Asian Option
Price Pool is not

BOLE234 Number of sampling points must be greater than zero

BOLE235 When there is return Barrier level value for Bonus/Twin-win/Reverse Convertible
Certificate must not be greater than 100%

BOLE236 Certificate underlying instrument weight must total to 100 percent

BOLE237 Invalid number of certificate attributes for one instrument. There should be one entry in
attributes worksheet for each certificate instrument

BOLE238 Participation or Participation Up value must be greater than or equal to 100

BOLE239 Protection value must be greater than 0. It must also not be greater than 100% when
the certificate has a return.

BOLE240 Invalid Reverse Convertible Certificate payment frequency. The frequency can only by
1Y or 6M or 3M.

BOLE241 Participation Down value must be less than or equal to 100 and greater than or equal to
0

BOLE242 Bonus level must be greater than zero

BOLE243 Certificate underlier is missing

BOLE244 Invalid return type

BOLE245 Invalid certificate type

BOLE246 Only No Return is supported for Reverse Certificate

BOLE247 Discount Certificate barrier level must be lower than cap

BOLE248 Missing underliers

BOLE249 Certificate without barrier has barrier hit date

BOLE250 Certificate type and attribute set mismatch

BOLE251 Barrier Up value must be greater than 100%

BOLE252 Barrier Down value must be less than 100%

BOLE253 When there is return Barrier level value for discount certificate must be less than 100%

BOLE254 Strike price for airbag certificate must not be larger than 100%

BOLE255 Barrier Up must be above strike

BOLE256 Participation in Capital Protected Certificate must be greater than 0

BOLE257 Certificate Barrier Level/Barrier Down must be greater than zero

BOLE258 Certificate must not have multiple underliers of the same instrument. Please combine
the weights of the same underlying instrument into one entry

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 221 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE260 Equity Rule-Based Proxy must have Market Capitalization data in the schedule

BOLE261 Market Capitalization must be greater than zero

BOLE262 Specific Risk Multiplier must not be smaller than zero or greater than 100

BOLE263 Specific Risk Level must not be smaller than zero or greater than 100

BOLE264 Unsupported Industry risk factor. Please check to make sure the industry risk factor is
valid for the risk model

BOLE265 Coupon for Barrier Range Reverse Convertible Certificate must not exceed 100%

BOLE266 Bonus level must be above barrier level when a Bonus Certificate has both attributes

BOLE267 Barrier Down must be below strike

BOLE268 Yield To Maturity must not be negative

BOLE269 Yield To Best must not be negative

BOLE270 Yield To Worst must not be negative

BOLE271 Average Life must not be negative

BOLE272 Unsupported Asset Type for Duration Proxy

BOLE273 Duration Proxy must have either Duration and Maturity or Key Rate Durations

BOLE274 Missing Duration Proxy time dimensional data schedule

BOLE275 Protection must be less than Strike Price when an Airbag Certificate has both attributes

BOLE276 Duration Proxy must have Market Data in the schedule

BOLE277 Accrued Interest must not be negative

BOLE278 Unsupported Asset Type for Duration Proxy

BOLE279 Unsupported 8 digit GICS code

BOLE280 Missing Rule-Based Proxy time dimensional data schedule

BOLE281 The gap between entries in equity time dimensional data schedule is greater than the
maximum number of days allowed

BOLE282 Amount outstanding entry must be on a date when there is a sink in the sink schedule

BOLE283 Rate index is not a supported index

BOLE284 Principal Protection must be between 0 and 1

BOLE285 Funded must be either YES or NO

BOLE286 Fixed Recovery must not be smaller than zero or greater-equal than 100

BOLE287 Recovery Rate must not be smaller than zero or greater-equal than 100

BOLE288 Unfunded CDS Baskets must have Deal Spread

BOLE289 Funded CDS Baskets must have Coupon

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 222 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE290 Funded CDS Baskets must have Coupon Type

BOLE291 Floating Funded CDS Baskets must have Margin

BOLE292 Floating Funded CDS Baskets must have Rate Index

BOLE293 Exercise date should be before expiration date

BOLE294 Floating coupon type CLN must have rate index

BOLE295 Floating coupon type CLN must have margin

BOLE296 Swaps with OIS reference rate must have the same currency in both legs

BOLE297 Swaps with OIS reference rate must have 2 legs - one short and one long, one floating
and one fixed

BOLE298 Swaps with OIS reference rate must have Rate Term on floating leg

BOLE299 Swaps with OIS reference rate must have Reset Frequency on floating leg

BOLE300 This instrument has non OIS reference rate and therefore must specify Coupon
Frequency

BOLE301 Swaps with OIS reference rate must have OIS as reference rate on floating leg

BOLE302 Instrument with OIS reference rate must have expiration date within a year from start
date

BOLE303 Bonds with OIS reference rate can only have Corporate as the Issuer Type

BOLE304 Bonds with OIS reference rate can only have Floating as the Coupon Type

BOLE305 Bonds with OIS reference rate can only have Bond as the Instrument Type

BOLE306 Instrument with OIS reference rate must have Rate Term

BOLE307 Instrument with OIS reference rate must have Reset Frequency

BOLE308 Barrier Level must be less than Strike Price

BOLE309 Analytic parser failed to parse file. Correct import file or pass to analytic library
engineers for investigation.

BOLE310 unsupported or restricted model class

BOLE312 Industry factor is incorrectly imported. Provide it either as an attribute or as a model-


industry mapping table

BOLE313 Cash flow schedule contains all zero cash flows.

BOLE314 Country of the derivative and country of the underlying instrument is mismatched

BOLE315 Currency of the derivative and currency of the underlying instrument is mismatched

BOLE316 Invalid property type and region

BOLE317 unsupported underlier name

BOLE318 unsupported volatility frequency

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 223 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE319 Invalid leg coupon type. Cancelable IR swap must have two legs, one fixed and one
floating

BOLE320 Unsupported type. Prepay type or default type must be either absolute or relative

BOLE321 Invalid value. Prepay value or default value must be between 0 and 100 for absolute
type and value must be greater than 0 for relative type

BOLE322 Severity percentage less than 0 or greater than 100 is invalid

BOLE323 Prepay Type of different dates is inconsistent

BOLE324 Default Type of different dates is inconsistent

BOLE325 Invalid type of composite price type

BOLE326 Either deal spread or deal spread schedule must exist

BOLE327 Exposure scalar in Equity Proxy must not be smaller than zero or greater than 100

BOLE328 Common factor risk scalar must not be smaller than zero or greater than 100

BOLE329 Unsupported swap accrual type

BOLE330 Unsupported investment type

BOLE331 Accrual type as at-maturity is only supported for IR Swap and not for foreign currency
swap

BOLE332 Barrier level must be above bonus level for a Reverse Bonus Certificate

BOLE333 Cap must be above barrier level for a Reverse Bonus Certificate

BOLE334 Invalid issuer short name for applying issuer specific risk

BOLE335 Unsupported option valuation model

BOLE336 Indexation end date must not be later than maturity date

BOLE337 Indexation base date must not be later than indexation end date

BOLE338 Switching date must be between indexation base date and indexation end date

BOLE339 Unsupported break-even inflation curve

BOLE340 Unsupported nominal curve

BOLE341 Unsupported discount curve

BOLE342 Unsupported reference index

BOLE343 Inflation to date must be greater than zero

BOLE344 Inflation spread must not be less than zero

BOLE345 Inflation multiplier must be greater than zero

BOLE346 Multiplier to current period must be greater than zero

BOLE347 Inflation cap must not be less than zero

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 224 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE348 Inflation floor must not be less than zero

BOLE349 Annual flat cap floor volatility must not be less than zero

BOLE350 Discount spread basis point must not be less than zero

BOLE351 Inflation cap must be above floor

BOLE352 Unsupported strike type

BOLE353 Unsupported CDS Option swaption type

BOLE354 Unsupported front-end protection type

BOLE355 Number of credits must be greater than zero

BOLE356 Number of defaults must be greater than zero

BOLE357 Cumulative loss must be greater than zero and less than or equal to 100

BOLE358 Invalid credit factor name. Please check the credit factor name belongs to the
instrument currency and the risk model

BOLE359 Currency is not valid and thus cannot validate reference index or BEI Curve or credit
factor relative to it

BOLE360 Number of defaults should not be greater than number of credits

BOLE361 Default adjustments do not apply to CDS Option on single name credit default swap

BOLE362 Upfront strike spread must be greater than zero

BOLE363 Syndicated loan type can only be Par or Distressed

BOLE364 Invalid SIC code

BOLE365 Syndicated loan with fixed coupons must have these fields set properly: reference
rate=LIBOR, Multiplier=0, Margin=Coupon. It must not have floor. Coupon frequency,
reset frequency and Rate term must be the same

BOLE366 Syndicated loan must have either SIC Code or Sector in order to compute appropriate
exposures

BOLE367 Invalid price format. It can only be clean or dirty

BOLE368 Syndicated loan with fixed coupon type must have coupon rate and coupon frequency

BOLE369 Income risk exposure scalar must not be smaller than zero or greater than 100

BOLE370 Quality factor exposure must not be smaller than -3 or greater than 3

BOLE371 Compound Correlation must be set if the CDS Tranche has compound correlation type

BOLE372 Lower and upper Correlation must be set if the CDS Tranche has base correlation type

BOLE373 Attachment point detachment point and upfront amount of a CDS Tranche must be
between 0 and 100

BOLE374 Deal spread must be between 0 and 10000

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 225 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE375 Invalid correlation type

BOLE376 Correlation percentage must be between 0 and 100

BOLE377 Protection must be 1 or greater and Protection End should be less than the number of
underlying constituents

BOLE378 Attachment point must be lower than detachment point

BOLE379 Missing correlations

BOLE380 Protection end must not be less than protection start

BOLE381 Contract period has to be greater than zero

BOLE382 Rate term is not consistent with the reference rate

BOLE383 Invalid averaging type

BOLE384 Invalid lock-out period

BOLE385 FX Swaps are not supported, only IR Swaps are currently supported

BOLE386 Invalid country or currency for the reference rate

BOLE387 DS Tranche correlation start date cannot be later than CDS Tranche underlying
instrument start date

BOLE388 Invalid private equity model

BOLE389 Invalid investment type for the given private equity model

BOLE390 Distressed or Mezzanine type of private equity instrument cannot use industry as proxy.
Defined a proxy portfolio or a system default proxy portfolio will be used

BOLE391 Private Equity Instrument cannot have more than one industry mapping for a given risk
model

BOLE392 Invalid conversion type

BOLE393 Invalid stock price

BOLE394 Invalid trigger price

BOLE395 Invalid trigger conversion ratio

BOLE396 Conversion by price must have stock price in conversion schedule

BOLE397 Hedge currency should be defined

BOLE398 Leverage must be between 0 and 100

BOLE399 Number of assets must be greater than zero

BOLE400 Unsupported value for Model For Greeks field. Only Black or HW are supported.

BOLE401 Allocation percentage must not be less than 0.0 or greater than 100 percent

BOLE402 Duration must not be less than -50.0 or greater than 50

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 226 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE403 Portfolio turnover must not be less than 0.0 or greater than 100 percent

BOLE404 Fees must not be less than 0.0

BOLE405 Breakdown weight must not be less than 0.0 or greater than 100 percent

BOLE406 Invalid return frequency

BOLE407 Invalid investment style

BOLE408 Invalid investment sub-style relative to the investment style

BOLE409 Too few return entries for the specific return frequency

BOLE410 Missing style fund returns

BOLE411 Asset allocation start date must not be later than the last fund return entry date

BOLE412 Missing asset allocation equity region field

BOLE413 Missing asset allocation fixed income region field

BOLE414 Invalid equity allocation confidence level

BOLE415 Invalid equity region enumeration

BOLE416 Invalid equity region confidence level

BOLE417 Invalid equity size tilt enumeration

BOLE418 Invalid equity size tilt confidence level

BOLE419 Invalid equity style tilt enumeration

BOLE420 Invalid equity style tilt confidence level

BOLE421 Missing asset allocation cash region field

BOLE422 Invalid Fixed income allocation confidence level

BOLE423 Invalid fixed income region enumeration

BOLE424 Invalid fixed income region confidence level

BOLE425 Invalid duration confidence level

BOLE426 Missing asset allocation real estate region field

BOLE427 Invalid cash allocation confidence level

BOLE428 Invalid cash region

BOLE429 Invalid cash region confidence level

BOLE430 At least one asset allocation equity region or fixed income region should be provided

BOLE431 Invalid Commodity allocation confidence level

BOLE432 At least one of four asset allocation regions should be provided

BOLE433 Invalid Real estate allocation confidence level

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 227 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE434 Invalid real estate region enumeration

BOLE435 Invalid real estate region confidence level

BOLE436 Equity vega is out of bound

BOLE437 Invalid Equity vega confidence level

BOLE438 Invalid base currency enumeration for hedging

BOLE439 Invalid hedged to base currency confidence level

BOLE440 Portfolio turnover percentage is out of bound

BOLE441 Invalid Portfolio turnover confidence level

BOLE442 Fees is out of bound

BOLE443 Risk portfolio doesn't exist or it is not accessible

BOLE444 Risk portfolio owner doesn't exist or it is not accessible

BOLE445 Invalid equity breakdown type

BOLE446 Invalid equity breakdown value relative to breakdown type

BOLE447 Equity region should also be provided if equity allocation is provided

BOLE448 Invalid equity breakdown confidence level

BOLE449 Equity breakdown weight sum for a given start date and breakdown type is greater than
100.0

BOLE450 Fixed income breakdown weight sum for a given start date and breakdown type is
greater than 100.0

BOLE451 Barra Fund return value percentage must not be less than -100 or greater than 500
percent

BOLE452 Invalid fixed income breakdown type

BOLE453 Invalid fixed income breakdown value relative to breakdown type

BOLE454 Invalid real estate breakdown type

BOLE455 Invalid real estate breakdown value relative to breakdown type

BOLE456 Equity breakdown start date must not be later than the last fund return entry date

BOLE457 Fixed income region should also be provided if fixed income allocation is provided

BOLE458 Invalid fixed income breakdown confidence level

BOLE459 Fixed income breakdown start date must not be later than the last fund return entry
date

BOLE460 Real estate breakdown start date must not be later than the last fund return entry date

BOLE461 Cash region should also be provided if cash allocation is provided

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 228 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BOLE462 Invalid real estate breakdown confidence level

BOLE463 Cash breakdown start date must not be later than the last fund return entry date

BOLE464 Invalid cash breakdown value

BOLE465 Real estate region should also be provided if real estate allocation is provided

BOLE466 Invalid cash breakdown confidence level

BOLE467 Commodity breakdown start date must not be later than the last fund return entry date

BOLE468 Invalid commodity breakdown value

BOLE470 Invalid commodity breakdown confidence level

BOLE471 Hedge fund breakdown start date must not be later than the last fund return entry date

BOLE472 Invalid hedge fund breakdown value

BOLE474 Invalid hedge fund breakdown confidence level

BOLE475 Cash breakdown weight sum for a given start date and breakdown type is greater than
100.0

BOLE476 Commodity breakdown weight sum for a given start date and breakdown type is greater
than 100.0

BOLE477 Hedge fund breakdown weight sum for a given start date and breakdown type is greater
than 100.0

BOLE480 Real estate breakdown weight sum for a given start date and breakdown type is greater
than 100.0

BOLE481 Invalid risk proxy confidence level

BOLE999 N/A

BOLE1000 Invalid - no data

The following error codes are rejection reasons.

Table 221. Import Rejection Codes

Rejection Code Rejection Description

ACCEPTED Accepted

MATURED Security matured

INCORRECT_SECURITY_TYPE Incorrect Security Type

INVALID_ASSET_ID Invalid Asset ID

MISSING_SPECIFIC_RISK Missing Specific Risk

MISSING_PRICE Missing Price

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 229 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Rejection Code Rejection Description

MISSING_EFFECTIVE_PRICE Missing Price

MISSING_UNDERLIER Missing Underlier

MISSING_UNDERLIER_PRICE Missing Underlier Price

INVALID_UNDERLIER Invalid Underlier(s)

INVALID_TNC Invalid T&C

VALUATION_ERROR Valuation Error

MISSING_UNDERLIER_CURRENCY Missing Currency of Underlier

UNDERLIER_DATA_PROBLEM Missing Underlier Data

MISSING_MATURITY_DATE Missing Maturity Date

MISSING_CURRENCY Missing Currency

INVALID_OPTION_TYPE Invalid Option Type

INVALID_OPTION_STYLE Invalid Option Style

PORTFOLIO_ACCESS_VIOLATION Access denied: you do not have permission to the underlying portfolio

CIRCULAR_REFERENCE Circular reference

MISSING_EXPOSURES Missing Factor Exposures

UNSUPPORTED_CURRENCY Currency not supported by risk model

MISSING_PERMISSION Missing Permission

DEFAULT_REJECTION_REASON Missing Asset Data

The following table lists import status error codes for various import jobs.

Table 222. Import Status Error Codes

Error Code Error Description

Summary Codes

IMPS001 OK. Success

IMPS002 Rejects found

IMPS003 OK DELETE. Success deletion

IMPS004 OK CLEAR. Success clear

IMPS005 CANCELLED, job cancelled

Error Codes

IMPE001 Unknown failure

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 230 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE002 Invalid XML schema

Portfolio Errors

IMPE003 Max portfolio count limit exceeded

IMPE004 Invalid owner - user id not found or not active

IMPE005 Import User is not client admin. Cannot import for other users

IMPE006 User Id is empty

IMPE007 Effective Date is empty

IMPE008 Wrong format for Effective Date

IMPE009 Invalid portfolio/tree or attribute name - prohibited chars

IMPE010 Too long portfolio/tree name

IMPE011 Empty portfolio/tree or attribute name

IMPE012 Invalid or empty holdings

IMPE013 Invalid format for holdings

IMPE014 Invalid format for weight

IMPE015 Invalid format for value

IMPE016 Unable to create portfolio node

IMPE017 Duplicated positions are aggregated

IMPE018 Rejected - no price.

IMPE019 Rejected - no risk data

IMPE301 Rejected - store by value flag only supports import by value and by weight portfolio

IMPE302 Unable to import portfolio positions

Rejected Assets

IMPE020 Asset ID not found - but position saved

IMPE021 Asset ID not found - rejected for pf or attr import

IMPE022 Asset ID not valid for date - but position saved

IMPE023 Asset ID not valid for date - rejected

IMPE024 Invalid or unauthorized ID type

IMPE025 Import by value requires currency

IMPE026 Import by value requires valid currency

IMPE027 Nothing to import. No positions imported

Attribute Errors

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 231 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE028 Attribute does not exist.

IMPE029 Attribute name empty

IMPE030 Attribute value too long

IMPE031 No enumerators defined for attribute

IMPE032 Attribute value - incorrect double format.

IMPE033 Attribute value - incorrect date format

IMPE034 Attribute value is not a date

IMPE035 Attribute value type does not match attribute type

IMPE036 User Asset ID is too long

IMPE037 Invalid date format

IMPE038 No attribute values imported.

IMPE039 Attribute duplicate entry ignored

IMPE040 No mapping scheme for the file extension

IMPE041 User ID too long

Internal Errors

IMPE042 Error while connecting to DI module

IMPE043 DI App Queue Message has invalid format

IMPE044 DI RML File does not exist or could not be opened

IMPE045 DI RML File could not be XSLT-transformed to B1 schema

IMPE046 DI ImportJobFile file does not exist or could not be opened

IMPE047 DI ImportJobFile has invalid format. Missing or invalid attribute value

IMPE048 DI ImportJobFile Data error: User Id does not exist or inactive

IMPE049 DI ImportJobFile Data error: Effective Date is missing or invalid

IMPE050 DI ImportJobFile Data error: Transformation map is missing

IMPE051 DI ImportJobFile Data error: Locale is missing

IMPE052 DI ImportJobFile Data error: FileName is missing

IMPE053 DI ImportJobFile Data error: Field is missing

IMPE054 DI ImportJobFile Data error: Origin is missing

IMPE055 Empty attribute in Portfolio or Asset Attribute B1 XML element

IMPE056 User File sent in Import Job is not found in RML

IMPE060 SQL exception while loading Positions or Pf Nodes or Attributes into database

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 232 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE061 SQL exception while saving Import Job to B1 db

IMPE062 Unsupported XSL or CSV Import format - file could not be imported

IMPE063 Unknown error: data row is skipped

IMPE064 Unknown error while evaluating asset-level data: whole Portfolio/Tree or Attributes are
skipped

IMPE065 Unknown error while loading Positions or Pf Nodes or Attributes into database

IMPE066 Rejected - Asset Id is empty or missing

IMPE067 Effective Date is outside the supported date range in B1

IMPE068 Max allowed Job File(s) Size reached

Portfolio Tree Errors

IMPE069 Both Aggregate and Portfolio values could not be empty. Provide at least one value

IMPE070 Cannot create Pf Node. Invalid format for Pf Path

IMPE071 Rejected - Duplicate Pf Node information found

IMPE072 Cannot create pf node in another user's tree. Import User is not client admin.

IMPE073 Cannot create shortcut to Portfolio Node. Portfolio Node for 'portfolio' and 'owner'
values does not exist.

IMPE074 Strategy cannot be found, cannot assign it.

IMPE075 Cannot assign strategy or benchmark due to database error.

IMPE076 Cannot add portfolio to Empty Node.

IMPE077 Rejected - Duplicate Pf Node name from different user trees found

IMPE078 Rejected - Duplicate Pf Node name for different node types found

IMPE079 Rejected - Cannot add Folder as an Aggregate Node

IMPE080 Rejected - Cannot add Portfolio as an Aggregate Node

IMPE081 Rejected - Cannot assign weight to the Root node.

IMPE082 Cannot add Portfolio to Aggregate Node. The Node or Tree for 'Aggregate' and 'owner'
values does not exist.

IMPE083 Cannot create shortcut to Portfolio Node. User does not have access to Portfolio
Node for 'portfolio' and 'owner'

IMPE084 Invalid Benchmark: You do not have permission for this portfolio.

IMPE085 Node contains broken reference to named strategy.

IMPE086 Node contains broken reference to delta strategy.

IMPE087 Benchmark or benchmark owner or both are not found.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 233 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE088 Portfolio description greater than 96 characters. Truncated description.

IMPE089 Strategy exists but its benchmark has been deleted.

IMPE090 Benchmark not found.

IMPE091 Invalid Benchmark: You do not have permission to the benchmark for imported
strategy.

IMPE092 Warning: Invalid Base Currency. Cannot assign it.

IMPE093 Warning: Import successful but strategy overrides ignored since they are not allowed
on system portfolios

IMPE094 Warning: Attribute already exist and would not be updated

IMPE095 Error: Could not create Attribute

IMPE099 Rejected - no data

IMPE100 Invalid Market: You do not have permission to the Market for imported strategy.

IMPE101 Invalid Market: You do not have permission for this portfolio.

IMPE102 Market not found.

IMPE103 Strategy exists but its market has been deleted.

IMPE104 Invalid shortcut path. Portfolio shortcuts can only be added to Aggregate nodes.

IMPE105 Invalid format for curve time period

IMPE106 Duplicate curve time period

IMPE107 upfront curve value should be between -99.9 and 99.9

IMPE108 Curve Attribute value too long

IMPE109 Attribute does not use this import template.

New Import Error Messages

IMPE110 Invalid/Mismatch base value type / base value.

IMPE111 Invalid benchmark hedging input.

IMPE112 Invalid portfolio hedging input.

IMPE113 Missing benchmark hedging currency entries.

IMPE114 Missing portfolio hedging currency entries.

IMPE115 Missing benchmark hedging percentage entries.

IMPE116 Missing portfolio hedging percentage entries.

IMPE117 Invalid benchmark hedging currency entries.

IMPE118 Invalid portfolio hedging percentage entries.

IMPE119 Invalid benchmark hedging percentage entries.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 234 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE120 Invalid portfolio hedging currency entries.

IMPE121 Universe or universe owner or both are not found.

IMPE122 Invalid Universe: You do not have permission to the Market for imported strategy.

IMPE123 Invalid Universe: You do not have permission for this portfolio.

IMPE124 Universe not found.

IMPE125 Strategy exists but its universe has been deleted.

IMPE126 Cannot assign base value type or assigned value due to database error.

IMPE127 Cannot assign benchmark/portfolio hedging settings due to database error.

IMPE128 Cannot assign benchmark hedging settings to cash benchmark.

IMPE129 Curve Attribute does not have any valid timeperiod/value pair

IMPE130 spread curve value should be greater or equal to 0

IMPE131 Implied Volatility Surface has duplicate data points.

IMPE132 Implied Volatility Attribute does not have any valid data point.

IMPE133 Invalid implied volatility data point.

IMPE134 Invalid attribute definition setting.

IMPE135 Association is Asset ID: value type must be text and aggregation scheme must be
count.

IMPE136 Association is Price or Spread: value type must be real number.

IMPE137 Association is Return: value type must be real number and maximum age must be 1
day and aggregation scheme must be market value weighting.

IMPE138 Association is curve or implied vol value type must be text, and aggregation scheme
must be N/A.

IMPE139 Portfolio storage type mismatches with store-by-value flag in import file. Store-by-
holding portfolio cannot accept import with store-by-value or vice versa

IMPE140 The attribute name and type combination has already been used by another user.

IMPE141 Portfolio attribute time series contains date outside the range supported by the
application.

IMPE142 Time series contains unsupported currency.

IMPE143 Unknown portfolio attribute type is encountered. The time series will be ignored.

IMPE144 Portfolio does not exist. Please make sure the portfolio exist before importing time
series for it.

IMPE145 Currency is missing or is invalid.

IMPE146 Invalid intraday adjustment value or type. Value must be a number. Type must be
either price or share.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 235 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE147 Duplicate intraday adjustments for the same instrument on the same day. The later
entry will override the earlier ones.

IMPE148 Intraday adjustments date must not be earlier than latest closing date.

IMPE149 Invalid risk model or the user has not subscribed to the risk model.

IMPE150 Invalid owner.

IMPE151 Invalid portfolio.

IMPE152 Shape or curve shocks are not supported for the given shock object

IMPE153 Country is invalid

IMPE154 Rating is invalid

IMPE155 Commodity name is invalid

IMPE156 No valid interest rate curve for the given currency

IMPE157 No valid interest rate curve for the given shock object

IMPE158 Shock attribute is invalid or is not permitted to be accessed by the user

IMPE159 Shock attribute must be enumerated type in order to have distinct groups

IMPE160 Group filter is invalid for the given attribute

IMPE161 Grouping scheme is invalid for the given attribute

IMPE162 Issuer type is invalid for the given currency

IMPE163 Shock magnitude is not a number

IMPE164 Market data is invalid for the given shock market data category

IMPE165 Duplicate Shock in the same shock category

IMPE166 Foreign exchange shocks cannot be specified on different domestic currencies

IMPE169 Invalid value for relative IR shock flag

IMPE170 Invalid value for relative spread shock flag

IMPE171 Internal error with importing data to vendor instruments

IMPE172 Multiple implied volatility surfaces exist for the same currency on the same analysis
date. Subsequent duplicates are ignored.

IMPE173 Attribute value is missing or of invalid type

IMPE174 Maximum age is missing or invalid. Maximum age must be constant, rolling until next
data date, or a number of days between 1 and 365

IMPE175 Association value is missing or of invalid type

IMPE176 Invalid currency

IMPE177 Invalid exchange rate

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 236 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE178 Portfolio attribute type and data element type mismatch

IMPE179 Invalid portfolio position id priority

IMPE180 Cannot validate portfolio because it cannot be written to database. Please call
representative.

IMPE181 Invalid Identifier(s) format. Prohibited chars were used

PLTC Validation

IMPE182 PLTC Attribute value too long

IMPE183 PLTC Attribute does not have any valid breakpoint/slope pair

IMPE184 No Data: the file is empty or all Asset Records are rejected

IMPE185 Missing Portfolio Value Header: a required header is missing

IMPE186 Missing Currency Header: a required header is missing

IMPE187 Invalid Format: header tag, column header, or delimiter is invalid

IMPE188 Rejected Asset: malformed row record or unrecognized Asset ID

IMPE189 Invalid Value: invalid number for breakpoints or slopes

IMPE190 Invalid Value: sell breakpoint fails to be negative

IMPE191 Invalid Value: sell breakpoints are not provided in ascending order

Interest Rate Validation

IMPE192 Invalid interest rate

IMPE193 Invalid pay frequency

IMPE194 Multiple curves of the same currency and curve type cannot exist in the same curve
set

IMPE195 Invalid Time data point. Valid data point should be greater than zero and no greater
than 99 years.

Market Scenario Factor Spread Data Validation

IMPE196 invalid sector

IMPE197 invalid subsector

IMPE198 invalid rating

IR Curve Data Validation

IMPE199 multiple asset ids of the same instrument is mapped to the same curve

IMPE200 Interest rate curve definition does not exist

IMPE201 invalid curve type

IMPE202 invalid custom series reference name

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 237 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

Market Scenario Setting Importing Validation

IMPE203 Invalid value for the flooring nominal interest rate shocks at zero flag

IMPE204 Cannot import user interest rate curve for currency that does not support the curve
type

IMPE205 user interest rate curve of different currency or type cannot share the same name

IMPE206 BarraOne reserved ids--IA00001 or IA00002 or SAP500D or STXE50D--are not allowed


to be imported as a user defined instrument id

IMPE207 Invalid interest rate curve usage.

IMPE208 Invalid value for the flag to propagate interest rate shock across all vertices

IMPE209 The flag to propagate interest rate shocks across all vertices cannot be set to true
while correlated shocks flag is not set to true. The two flags have to be consistent

IMPE210 Rebalance profile cannot be found

IMPE211 Set simulation VaR limit either as a currency value or a multiple of benchmark but not
both

IMPE212 simulation VaR limit as a currency value must be greater than zero

IMPE213 simulation VaR limit as a multiple of benchmark must be greater than zero and less
than or equal to 100

IMPE214 This setting should have value greater than zero and less than 100

IMPE215 Aggregation scheme cannot be found

IMPE216 Invalid value for absolute vol EQ shock flag

IMPE217 Invalid value for absolute vol IR shock flag

IMPE218 Invalid value for absolute vol FX shock flag

IMPE219 Invalid value for absolute vol OOM shock flag

IMPE220 Invalid format for benchmark weight

IMPE221 Region is invalid

IMPE222 Private Equity Investment Type is invalid

IMPE223 Real Estate Factor Type is invalid

IMPE224 Real Estate Factor Description is invalid

IMPE225 Region-InvestmentType-Country combination is invalid

IMPE226 Factor Type-Country combination is invalid

IMPE227 Factor Type-Factor Description-Country combination is invalid

IMPE228 Client doesn't have permission to import Style Fund instrument

IMPE401 Missing, invalid field

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 238 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

IMPE402 Invalid portfolio

IMPE403 Unpermissioned user

The following table lists import status error codes for various import jobs.

Table 223. Status Values

Error Code Error Description

Success Codes

BDOS001 Success

BDOS002 Not validated

BDOS003 Asset Deleted

Error Codes

BDOE001 Unknown failure in Data Validation

BDOE002 Invalid Instrument Type

BDOE003 Invalid Instrument Attribute Name

BDOE004 Invalid Identifier(s) format. ID cannot starts with chars reserved for synthetic Ids

BDOE005 Invalid IDType - Empty value

BDOE006 Invalid IDType - not supported system IdType

BDOE007 Invalid Identifier - conflicting or duplicate Ids found in User File

BDOE008 Invalid Identifier - conflicting or duplicate Ids found in database

BDOE009 Invalid Attribute value for Double Data Type

BDOE010 Invalid Attribute value for Double Data Type

BDOE011 Invalid Schedule Identifier - No Asset Record for matching asset type found for this ID
in User File

BDOE012 Conflicting Schedule Identifiers - Asset schedules should be listed only with single
asset ID

BDOE013 Conflicting Asset Identifiers - Asset Records should have unique set of IDs

BDOE014 Invalid Identifier(s) format. Prohibited chars were used: \"/\\?|<>:

BDOE015 Empty or Invalid Format for Schedule/History Date field

BDOE016 Invalid Currency

BDOE017 Empty value for required attribute

BDOE018 Invalid data format for attribute

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 239 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BDOE019 Asset not found. Cannot delete.

BDOE020 Cannot create composite. Portfolio for given name and owner does not exist.

BDOE021 Cannot create composite on User Aggregate Node.

BDOE022 Cannot create composite. User does not have access to Portfolio Node for 'portfolio'
and 'owner'

BDOE023 Cannot create composite on Universe Node.

BDOE025 Cannot create composite on System Aggregate Node.

BDOE024 Cannot import portfolio. Client has Dynamic Node(s) with the same name.

BDOE026 Invalid Date format. Do not support dates before 1900-01-01 and after 2500-01-01

BDOE027 Negative or zero contract size for Composite.

BDOE028 Negative or zero default price for Composite.

BDOE029 Info: Empty value for optional attribute

BDOE030 Only Client Admin can import or delete Instruments

BDOE031 Schedule belongs to Invalid Parent

BDOE032 Invalid Boolean field value for callable/putable/sinkable/prerefundable/screwclause/


calibration/isQuanto/inArrears/isPerpetual. Only Yes/Y/True or No/N/False are
supported

BDOE033 ID for user asset cannot be longer than " + IImportStatus.UI_ASSETID_MAXLENGTH + "
chars

BDOE034 ID Type for user asset cannot be longer than " +


IImportStatus.UI_ASSETIDTYPE_MAXLENGTH + " chars

BDOE035 Name for user asset cannot be longer than " +


IImportStatus.UI_ASSETNAME_MAXLENGTH + " chars

BDOE036 User asset Attribute cannot be longer than " +


IImportStatus.UI_ASSETATTRIBUTE_MAXLENGTH
+ " chars

BDOE037 Schedule belongs to Instruments with conflicting IDs.

BDOE038 Cannot save Instrument as Valid due to db error

BDOE039 Underlier ID for user asset cannot be longer than " +


IImportStatus.UI_ASSETID_MAXLENGTH + " chars

BDOE040 Underlier ID Type for user asset cannot be longer than " +
IImportStatus.UI_ASSETIDTYPE_MAXLENGTH + " chars

BDOE041 Cannot create composite on Dynamic Node.

BDOE042 Cannot load Structure Tool deal data. Please check that the file structure is correct. Id
must be on the second line and id type must be present.

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 240 OF 243
BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Error Code Error Description

BDOE043 Not supported User Asset Source.

BDOE044 Proxy portfolio of given name does not exist.

BDOE045 Proxy portfolio must be regular portfolio. Aggregate portfolio is not allowed.

BDOE046 Proxy portfolio must be regular portfolio. Universe portfolio is not allowed.

BDOE047 Proxy portfolio must be regular portfolio. Dynamic portfolio is not allowed.

BDOE048 Login user does not have access permission to the proxy portfolio.

BDOE1000 Invalid Attribute data format for:

© 2025 MSCI Inc. All rights reserved. Please refer to the disclaimer at the end of this document. MSCI.COM | PAGE 241 OF 243
Contact us
msci.com/contact-us

AMERICAS About MSCI


Americas 1 888 588 4567 * MSCI is a leading provider of critical decision
Atlanta + 1 404 551 3212 support tools and services for the global
investment community. With over 50 years of
Boston + 1 617 532 0920
expertise in research, data and technology, we
Chicago + 1 312 675 0545 power better investment decisions by enabling
Monterrey + 52 81 1253 4020 clients to understand and analyze key drivers of risk
New York + 1 212 804 3901 and return and confidently build more effective
San Francisco + 1 415 836 8800 portfolios. We create industry-leading research-
enhanced solutions that clients use to gain insight
São Paulo + 55 11 3706 1360
into and improve transparency across the
Toronto + 1 416 628 1007 investment process.
To learn more, please visit www.msci.com.
EUROPE, MIDDLE EAST & AFRICA
Cape Town + 27 21 673 0100
Frankfurt + 49 69 133 859 00
Geneva + 41 22 817 9777
London + 44 20 7618 2222
Milan + 39 02 5849 0415
Paris 0800 91 59 17 *

ASIA PACIFIC
China North 10800 852 1032 *
China South 10800 152 1032 *
Hong Kong + 852 2844 9333
Mumbai + 91 22 6784 9160
Seoul 00798 8521 3392 *
Singapore 800 852 3749 *
Sydney + 61 2 9033 9333
Taipei 008 0112 7513 *
Thailand 0018 0015 6207 7181 *
Tokyo + 81 3 5290 1555

* toll-free

© 2025 MSCI Inc. All rights reserved. MSCI.COM


BARRA PORTFOLIOMANAGER DEVELOPER’S TOOLKIT REFERENCE GUIDE
JANUARY 2025

Notice and disclaimer


This document and all of the information contained in it, including without limitation all text, data, graphs, charts (collectively, the “Information”) is the property of MSCI Inc. or
its subsidiaries (collectively, “MSCI”), or MSCI’s licensors, direct or indirect suppliers or any third party involved in making or compiling any Information (collectively, with MSCI,
the “Information Providers”) and is provided for informational purposes only. The Information may not be modified, reverse-engineered, reproduced or redisseminated in whole
or in part without prior written permission from MSCI. All rights in the Information are reserved by MSCI and/or its Information Providers.

The Information may not be used to create derivative works or to verify or correct other data or information. For example (but without limitation), the Information may not be
used to create indexes, databases, risk models, analytics, software, or in connection with the issuing, offering, sponsoring, managing or marketing of any securities, portfolios,
financial products or other investment vehicles utilizing or based on, linked to, tracking or otherwise derived from the Information or any other MSCI data, information, products
or services.

The user of the Information assumes the entire risk of any use it may make or permit to be made of the Information. NONE OF THE INFORMATION PROVIDERS MAKES ANY
EXPRESS OR IMPLIED WARRANTIES OR REPRESENTATIONS WITH RESPECT TO THE INFORMATION (OR THE RESULTS TO BE OBTAINED BY THE USE THEREOF), AND TO
THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EACH INFORMATION PROVIDER EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES (INCLUDING, WITHOUT
LIMITATION, ANY IMPLIED WARRANTIES OF ORIGINALITY, ACCURACY, TIMELINESS, NON-INFRINGEMENT, COMPLETENESS, MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE) WITH RESPECT TO ANY OF THE INFORMATION.

Without limiting any of the foregoing and to the maximum extent permitted by applicable law, in no event shall any Information Provider have any liability regarding any of the
Information for any direct, indirect, special, punitive, consequential (including lost profits) or any other damages even if notified of the possibility of such damages. The
foregoing shall not exclude or limit any liability that may not by applicable law be excluded or limited, including without limitation (as applicable), any liability for death or
personal injury to the extent that such injury results from the negligence or willful default of itself, its servants, agents or sub-contractors.

Information containing any historical information, data or analysis should not be taken as an indication or guarantee of any future performance, analysis, forecast or prediction.
Past performance does not guarantee future results.

The Information should not be relied on and is not a substitute for the skill, judgment and experience of the user, its management, employees, advisors and/or clients when
making investment and other business decisions. All Information is impersonal and not tailored to the needs of any person, entity or group of persons.

None of the Information constitutes an offer to sell (or a solicitation of an offer to buy), any security, financial product or other investment vehicle or any trading strategy.

It is not possible to invest directly in an index. Exposure to an asset class or trading strategy or other category represented by an index is only available through third party
investable instruments (if any) based on that index. MSCI does not issue, sponsor, endorse, market, offer, review or otherwise express any opinion regarding any fund, ETF,
derivative or other security, investment, financial product or trading strategy that is based on, linked to or seeks to provide an investment return related to the performance of
any MSCI index (collectively, “Index Linked Investments”). MSCI makes no assurance that any Index Linked Investments will accurately track index performance or provide
positive investment returns. MSCI Inc. is not an investment adviser or fiduciary and MSCI makes no representation regarding the advisability of investing in any Index Linked
Investments.

Index returns do not represent the results of actual trading of investible assets/securities. MSCI maintains and calculates indexes, but does not manage actual assets. Index
returns do not reflect payment of any sales charges or fees an investor may pay to purchase the securities underlying the index or Index Linked Investments. The imposition of
these fees and charges would cause the performance of an Index Linked Investment to be different than the MSCI index performance.

The Information may contain back tested data. Back-tested performance is not actual performance, but is hypothetical. There are frequently material differences between back
tested performance results and actual results subsequently achieved by any investment strategy.

Constituents of MSCI equity indexes are listed companies, which are included in or excluded from the indexes according to the application of the relevant index
methodologies. Accordingly, constituents in MSCI equity indexes may include MSCI Inc., clients of MSCI or suppliers to MSCI. Inclusion of a security within an MSCI index is
not a recommendation by MSCI to buy, sell, or hold such security, nor is it considered to be investment advice.

Data and information produced by various affiliates of MSCI Inc., including MSCI ESG Research LLC and Barra LLC, may be used in calculating certain MSCI indexes. More
information can be found in the relevant index methodologies on www.msci.com.

MSCI receives compensation in connection with licensing its indexes to third parties. MSCI Inc.’s revenue includes fees based on assets in Index Linked Investments.
Information can be found in MSCI Inc.’s company filings on the Investor Relations section of www.msci.com.

MSCI ESG Research LLC is a Registered Investment Adviser under the Investment Advisers Act of 1940 and a subsidiary of MSCI Inc. Except with respect to any applicable
products or services from MSCI ESG Research, neither MSCI nor any of its products or services recommends, endorses, approves or otherwise expresses any opinion
regarding any issuer, securities, financial products or instruments or trading strategies and MSCI’s products or services are not intended to constitute investment advice or a
recommendation to make (or refrain from making) any kind of investment decision and may not be relied on as such. Issuers mentioned or included in any MSCI ESG Research
materials may include MSCI Inc., clients of MSCI or suppliers to MSCI, and may also purchase research or other products or services from MSCI ESG Research. MSCI ESG
Research materials, including materials utilized in any MSCI ESG Indexes or other products, have not been submitted to, nor received approval from, the United States
Securities and Exchange Commission or any other regulatory body.

Any use of or access to products, services or information of MSCI requires a license from MSCI. MSCI, Barra, RiskMetrics, IPD and other MSCI brands and product names are
the trademarks, service marks, or registered trademarks of MSCI or its subsidiaries in the United States and other jurisdictions. The Global Industry Classification Standard
(GICS) was developed by and is the exclusive property of MSCI and S&P Global Market Intelligence. “Global Industry Classification Standard (GICS)” is a service mark of MSCI
and S&P Global Market Intelligence.

MIFID2/MIFIR notice: MSCI ESG Research LLC does not distribute or act as an intermediary for financial instruments or structured deposits, nor does it deal on its own
account, provide execution services for others or manage client accounts. No MSCI ESG Research product or service supports, promotes or is intended to support or promote
any such activity. MSCI ESG Research is an independent provider of ESG data, reports and ratings based on published methodologies and available to clients on a subscription
basis.

Privacy notice: For information about how MSCI collects and uses personal data, please refer to our Privacy Notice at https://www.msci.com/privacy-pledge.

© 2025 MSCI Inc. All rights reserved.

You might also like