FIA system requirements
FIA is a stand-alone C++ program that reads in CSV files and exports CSV and XLS files, using a command-line/configuration file driven interface. The interface and system requirements have deliberately been kept simple to assist deployment, speed, ease of installation, and use in batch mode. In practice, this results in a highly robust and configurable system that is simple to deploy and integrate, and runs extremely quickly.
We have also developed an optional GUI for use under Windows that allows the user to set up the attribution options and to run the program interactively.
FIA runs under Windows 7, Windows XP (32 and 64-bit), Solaris/Sparc, Linux (Ubuntu, Red Hat, CentOS, Solaris 10) and OS X. The program is written in C++ and is readily portable to other environments.
The program includes multi-threading capabilities and uses all available processor cores, although this is configurable by the user.
- C++: Visual C++ Runtime Redistributable for Windows, libstd++ library for Linux
- LibXL: third-party library that allows a C++ program to generate Excel reports without requiring any Windows components. The library uses one external DLL/shared library.
All these files are provided with the system.
FIA does not use a database. CSV files are read into memory and processed internally.
FIA was developed using Microsoft Visual C++, gcc, STL and Boost. The code is cross-platform and uses a single set of files for Windows, Unix and Mac, with #ifdefs to cover minor differences between environments.
FIA runs a considerable number of detailed data consistency checks before beginning processing. If an issue is found, a diagnostic message indicating the exact line and column number of the issue is returned to the user. Processing then terminates in a controlled manner.
Interface with external systems
One of FIA’s core aims was to make data requirements as simple as possible.
FIA requires the following files in CSV format:
- Weight and returns file, exported from existing performance measurement system or benchmark vendor as a CSV file. We anticipate the user will run a batch process on a regular basis to generate these files.
- Security definition file containing security master data, such as bond names, ID codes, coupons, maturity dates etc. This is supplied as a CSV file with varying numbers of columns. This file can either be set up by the user using Excel or a text editor, or may be exported from the existing performance measurement system. The same security master file can be used for all portfolios.
- Yield curve file, containing historical values of zero coupon rates. We can supply this data for most sovereign curves, or the user may decide to use their own data from an in-house database, Bloomberg etc.
The same yield curve and security master files may be used for all portfolios.
Detailed formats and examples are available in the ‘FIA User Guide’ and on our web site.
The program may be driven entirely by command-line prompts, but for convenience we recommend the use of configuration files which store the various values of the program’s arguments. These files can be set up or modified in any text editor.
Pre-formatted benchmark data is available for any major benchmark from RIMES Data.
FIA exports data in a number of formats, including XLS and CSV. These files may then either be used as-is or read into a local reporting system or data warehouse for use elsewhere.