‘Make everything as simple as possible, but not simpler.’
FIA is designed to use the absolute minimum of data. This is because
Data is expensive. Computer power is cheap.
For instance, FIA does not require that you supply risk numbers such as yield to maturity, modified duration, or convexity to run attribution - although these can be used if available. Instead, the program uses the information supplied in the security master file to calculate each security's cash flows. These are then priced using the supplied yield curves to arrive at a price, and hence a return, under a range of market scenarios.
In addition, FIA calculates all risk numbers, including OAS and YTM, as a by-product of the attribution calculation.
For most cases, three sets of data are required:
This section of the wiki is intended as a quick overview of the data needed to run FIA. For more information about each data type, please refer to the appropriate section of this wiki.
Overview of FIA's data requirements
Weights and returns
By design, FIA does not calculate weights and returns, but uses externally supplied values of these quantities. The rationale for this approach is that most clients already have perfectly good systems that perform this function.
The weights and returns file contains the weight, base currency and local currency returns of each security present in the current portfolio, at a range of dates. This information can typically be exported from your existing returns calculation system (for portfolios) or extracted from holdings files (for benchmarks).
On each date, the sum-product of the security weights and the base currency return will equal the overall portfolio return on that date.
- FIA performs extensive checking to ensure that the overall return shown in each attribution report exactly equals the return implied by the supplied weights and returns. However, if the raw data is incorrect, the attribution report will simply reflect this. For this reason, we strongly recommend a quick check that the above condition always holds.
- Benchmark data is represented in exactly the same format as portfolio data.
- Weights can be positive, negative or zero. A zero weight implies that a security is not present in the portfolio.
- If weights on a given day do not sum to one, FIA carries out internal rebalancing so that the weights used internally do meet this condition. This makes it possible to supply, for instance, market weights rather than asset allocations in the weights column.
- The second column in the file contains the name of the current portfolio. A weights and returns file can contain data for more than one portfolio. See Subportfolios for more information.
- The third column in the file contains an identifier for the current security. This can be an ISIN, a CUSIP, or any other unique identifier.
- If base currency returns are available but local currency returns are not, or vice versa, FIA can calculate the value of the missing field using a supplied FX rate file. More information is available here.
Detailed information on the format of the weights and returns file can be found here.
Security master data
The security master data file contains information about each security to be processed in FIA, including identifier, name, credit rating, currency, pricing function, and security-specific information such as maturity dates for bonds.
Securities that are not used in a particular analysis are ignored. This makes it possible to use a single security master file for all your portfolios and benchmarks.
At the very minimum, each security entry should contain
- an identifer, such as an ISIN code;
- a string representing the name of the security, for use on reports;
- a pricing function, indicating which library function should be used to price this function, if risk numbers are not provided;
- a currency;
- one or more yield curves, if required for pricing;
- security-specific data such as maturity date, coupon and coupon frequency for bonds.
Addition information can be supplied to handle a wide range of additional treatments. For instance, if a bond has its credit rating downgraded, the effective date (column 4) can be used to record the date of the downgrade and the new credit rating.
Detailed information on the format of the security master file can be found here.
Yield curve data
The yield curve file contains data for each yield curve supplied to FIA. At each date, a curve name and a range of tenor points is supplied.
The yield curve file can hold data on zero curves, swap curves, par curves, real curves, or any other type.
The only constraint is that, on any date, a curve must hold data for at least three points on the curve. Any set of maturity points is permissible.
Detailed information on the format of the yield curve file can be found here.
Depending on the types of securities held in your portfolio and benchmark, some additional information may be required by FIA.
- for inflation-linked bonds an inflation carry function should be written to column 6 of the security master file, and a history of CPI data should be made available in the index file;
- for floating-rate notes, a value of LIBOR or EURIBOR can be supplied in the index file.
- for portfolios and benchmarks that hold the same securities with different identifiers, a mapping between the two can be set up in the mapping file.
Please refer to section File formats for more information.