Positions File Validation


When the positions file data is sent to FundApps, a number of validation checks are run on the data to ensure that FundApps' rules can process it successfully. In order to format your file so that it will validate, please refer to our Documentation page.


Positions File Validation

A number of validation steps take place before the data is sent for checking:

  1. Is the format well-formed? e.g. Can the XML be parsed and interpreted by FundApps.
  2. You can apply data overrides & defaults that are configured in the system. This allows you to correct basic data issues coming from your internal systems.
  3. For each portfolio in the file:
    1. Check if the PortfolioId exists in FundApps
    2. Check that the NavDate is present and after the InceptionDate 
  4. For each Asset or Instrument in the file:
    1. Check if the AssetId or InstrumentId is unique (The AssetId must be unique within the portfolio, the InstrumentId must be globally unique)
    2. Check that all properties are known, no blanks. If not this can cause the validation to fail unless the "Ignore unknown columns" option is set (only possible when uploading files manually in the UI, not available for API uploads).
    3. Depending on AssetClass: Check all properties are valid (e.g. CallPut is not valid on an Equity, an Equity cannot have an underlying InstrumentId)
    4. Depending on AssetClass: Check that all mandatory properties are present (e.g. IsCashSettled is required for derivatives)
  5. For each property in the file:
    1. Validate data type (e.g. is the field a valid Integer / Decimal / Date)?
    2. If the property must be from a list of possible values (e.g. countries, currencies etc.), validate that the value is one of the possible values


Tips & Tricks


  • To make the AssetId unique for cash positions consider appending the Counterparty & perhaps the Account Number to the Currency to make a distinct name for every cash position
  • If your source data system keeps multiple positions in the same instrument consider appending the Counterparty/Custodian to the AssetId to make it unique

Unknown Values

If struggling to source certain data points, you can implement temporary solutions. See our Control Rules article for more details on Unknown Values.


Validation Failures

Additional reasons files can fail validation:

  • Essential properties missing (any properties with a red checkmark on the Documentation page)
  • Positions file references a portfolio that does not exist in the environment
  • An Instrument references a component InstrumentID that is not present in the positions file
  • An Instrument references its own InstrumentID as its component
  • An invalid input (formatting issues) 
    • Blank/null values for 'Decimal' properties
    • Incorrect format - different properties require different formats (string, list, decimal, boolean)
  • InstrumentId has to be different from PortfolioId 
  • Providing underlying that is not valid for that asset class 
  • Processing issues caused by one-off specific incidents



You can find the reason why a file has failed via the Upload Positions view after the file upload attempt was made. Alternatively, if you select "Validate File" from Previous Uploads you will then be shown the Validation Results.


Was this article helpful?
0 out of 0 found this helpful
Share article