FIA has a large number of configuration options. These allow all aspects of the calculation to be tailored to your input data formats, investment model and reporting requirements.
Only a small number of quantities must be set in order to run an analysis. In all other cases, FIA provides sensible defaults.
Configuration can be carried out in a configuration file, as settings in the GUI, via calls to the local API, or over the Web API. However, the names and settings of FIA's variables are identical in all cases. In this section, we focus on how to set up a configuration file, as the settings are virtually identical for other modes.
Click here for information on setting up a configuration file.
|FileHeaders||Boolean||Treat first line in each file as a header, showing names of columns|
|PortfolioFile||String||Name of portfolio weights and returns file, including file path if required|
|BenchmarkFile||String||Name of benchmark weights and returns file, including file path if required|
|SecurityFile||String||Name of security definitions file, including file path if required|
|YieldCurveFile||String||Name of yield curve data file, including file path if required|
|FXFile||String||Name of exchange rate file, including file path if required, containing currency codes, dates and rates.|
|IndexFile||String||Name of file containing time series such as inflation indices, LIBOR and paydown schedules|
- Values for SecurityFile and PortfolioFile must be supplied
- File names can include a path. For instance, C:\FIA_data\my_data\security_master.csv is an allowable value. Relative paths, such as .\FIA_data\my_data\security_master.csv, can also be used.
- The benchmark file is optional. If no benchmark is specified, the program will run attribution on the supplied portfolio only and generate an appropriate set of reports unless the analysis includes allocation, in which case FIA will generate an error message and halt.
|StartDate||String||Date at which calculation begins. If not supplied, FIA uses the earliest date available|
|EndDate||String||Date at which calculation ends. If not supplied, FIA uses the latest date available|
|DateFormat||String||User-supplied format for parsing dates from all files|
|SecurityDateFormat||String||User-supplied format for parsing dates in security file|
|PortfolioDateFormat||String||User-supplied format for parsing dates in portfolio returns files|
|BenchmarkDateFormat||String||User-supplied format for parsing dates in benchmark returns files|
|YieldCurveDateFormat||String||User-supplied format for parsing dates in yield curve files|
|FXDateFormat||String||User-supplied format for parsing dates in exchange rate files|
|IndexDateFormat||String||User-supplied format for parsing dates in index file|
Click here for more information about date formats.
General reporting settings
|BasisPoints||Boolean||If active, shows all returns in terms of basis points. Otherwise all returns are shown as percentages.|
|ndp||Integer||Integer-valued switch between 0 and 12. Sets how many decimal places are used for reporting.|
|TotalsAtTop||Boolean||Controls whether totals on interactive reports should appear above or below the raw data.|
|Smoothing||String||Name of smoothing algorithm to use when reporting. Valid values are Carino and Geometric|
|SortDescending||Boolean||In interactive reports, controls whether results are shown in ascending or descending order|
|BatchID||Integer||Assigns a number to each report's name. If not set, a random number is assigned|
|LookThrough||Boolean||If true, all holdings in sub-portfolios are displayed as if they are holdings in the top level portfolio.
If false, holdings in sub-portfolios are displayed in aggregate
|RootLevelOnly||Boolean||If true, no reports are generated for sub-portfolios|
|ReportSectors||String||Configures the hierarchy and data shown in a drill-down report.
See here for more information.
File-based reporting settings
The following table describes the various file-based reporting options available within FIA.
|ReportDirectory||String||Name of the directory to which reports are written. Can contain any valid directory string for your operating system, including relative paths, such as
c:\mydata, .\, .\mydata, ./mydata
If not set, reports are written to the current active directory.
|SingleExcelReportFile||String||Name of Excel workbook to which all Excel reports are written.
If set, all reports are written into separate worksheeets within workbook If not set, all Excel reports are written to separate workbooks
Note that the Excel suffix should not be provided.
|ZipFile||String||If set, all reports are written into a compressed Zip file with this name, and the originals erased|
|LogoFile||String||Name of logo file in JPG format
If set, the given logo file is inserted into every Excel worksheet
|CSVreport||Boolean||Generate CSV reports|
|XLSreport||Boolean||Generate Excel reports|
If ReportDirectory does not exist, FIA will try to create it before running reports. If this is unsuccessful (for instance, if FIA does not have sufficent permissions on your system) the program will abort with an error message.
Directories are not case sensitive on Windows systems, but are case sensitive on Linux and Unix systems.
FIA's reporting options are controlled from the configuration file. In this section, we described the options available.
Click on the name of the report for more information.
|SummaryAttributionReport||Boolean||Generate summary report|
|InteractiveAttributionReport||Boolean||Generate hierarchical report|
|PortfolioRiskNumberReport||Boolean||Generates history of portfolio and benchmark risk numbers (YTM, MD, C, Z-spread, leverage) at each date over calculation interval|
|SecurityRiskNumberReport||Boolean||Generates report showing risk numbers for all securities in portfolio and benchamrk at last date in calculation interval|
|SecurityAttributionReport||Boolean||Shows attribution returns for all securities in portfolio and benchamrk over calculation interval|
|MaturityExposureReport||Boolean||Shows allocation to maturity buckets at last date in calculation interval. Maturity buckets are defined here|
|DurationExposureReport||Boolean||Shows allocation to duration buckets at last date in calculation interval. Duration buckets are defined here|
|DateRiskReport||Boolean||Shows aggregated attribution returns at portfolio level over calculation interval. Both daily and cumulative reports are generated.|
|SQLDataReport||Boolean||Generates file of normalised returns, ready for import into an SQL data table|
|ExPostRiskReport||Boolean||Generates ex-post risk statistics|
|CurveReport||Boolean||Generates report on yield curve movements. If more than one yield curve is supplied, Excel reports are written to separate worksheets in the same workbook.|
|StressReport||Boolean||Generates stress report|
|TreeMapReport||Boolean||Generate data for use in heat map|
Interactive reports can be extensively configured. Click here for more information.
|TimeReturnLabel||String||Label for time/coupon return. Only used when CouponDecomposition set to AGGREGATED|
|RunningYieldLabel||String||Label for return due to runninh yield. Only used when CouponDecomposition set to PULL_TO_PAR|
|PullToParLabel||String||Label for return due to pull to par effects. Only used when CouponDecomposition set to PULL_TO_PAR|
|RiskFreeCarryLabel||String||Label for return due to risk free yield. Only used when CouponDecomposition set to CREDIT_CARRY|
|CreditCarryLabel||String||Label for return due to pull to par effects. Only used when CouponDecomposition set to CREDIT_CARRY|
|RolldownLabel||String||Label for rolldown return|
|ResidualReturnLabel||String||Label for residual return|
|SovereignCurveReturnLabel||String||Label for return due to changes in sovereign curve|
|CapitalCurveReturnLabel||String||Label for return due to changes in capital return|
|DurationCurveReturnLabel||String||Label for return due to parallel changes in the sovereign curve. Only used when SovereignCurveDecomposition set to DURATION|
|NonParallelCurveReturnLabel||String||Label for return due to non-parallel changes in the sovereign curve. Only used when SovereignCurveDecomposition set to DURATION|
|ShiftReturnLabel||String||Label for return due to parallel shift in sovereign curve. Only used when SovereignCurveDecomposition set to STB|
|TwistReturnLabel||String||Label for return due to steepening or flattening in sovereign curve. Only used when SovereignCurveDecomposition set to STB|
|CurvatureReturnLabel||String||Label for return due to increasing or decreasing curvature in sovereign curve. Only used when SovereignCurveDecomposition set to STB|
|ConvexityReturnLabel||String||Label for return due to convexity.|
|SpreadReturnLabel||String||Label for return due to movements in the country or sector spread|
|FXReturnLabel||String||Label for return due to changes in exchange rates|
|UnattributedReturnLabel||String||Label for return to due unattributed securities|
|TotalReturnLabel||String||Label for sum of all returns|
FIA allows the names of any of the displayed sources of risk to be changed. For instance, to change Residual to Credit, set
in the configuration file. Note that no quotation marks are required.
|CarryDecomposition||String||Valid values are NONE, AGGREGATED, PULL_TO_PAR, CREDIT_CARRY|
|BaseToLocal||Calculate local returns from base returns for portfolio and benchmark, using supplied FX rates|
|LocalToBase||Calculate base returns from local returns for portfolio and benchmark, using supplied FX rates|
|PortfolioBaseToLocal||Calculate local returns from base returns for portfolio only, using supplied FX rates|
|PortfolioLocalToBase||Calculate base returns from local returns for portfolio only, using supplied FX rates|
|BenchmarkBaseToLocal||Calculate local returns from base returns for portfolio only, using supplied FX rates|
|BenchmarkLocalToBase||Calculate base returns from local returns for portfolio only, using supplied FX rates|
|Silent||Do not show diagnostics when running at console|
|n_cores||Number of CPU cores to use in the calculation. A value of zero or less than zero uses all cores available.|