When the position file data is sent to Rapptr, a number of validation checks are run on the data to ensure that Rapptr's rules can process it successfully. In order to format your file so that the file will validate, please refer to our Documentation page.
How is the positions file validated?
A number of validation steps take place before the data is sent for checking:
- Is the format well-formed? e.g. Can the XML be parsed and interpreted by Rapptr
- 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.
- For each portfolio in the file:
- Check if the PortfolioId exists in Rapptr
- Check that the NavDate is present and after the InceptionDate
- For each Asset or Instrument in the file:
- Check if the AssetId or InstrumentId is unique (The AssetId must be unique within the portfolio, the InstrumentId must be globally unique)
- 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).
- Depending on AssetClass: Check all properties are valid (e.g. CallPut is not valid on an Equity, an Equity cannot have an underlying InstrumentId)
- Depending on AssetClass: Check that all mandatory properties are present (e.g. IsCashSettled is required for derivatives)
- For each property in the file:
- Validate data type (e.g. is the field a valid Integer / Decimal / Date)?
- 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
If struggling to source certain data points, you can implement temporary solutions. See our Control Rules article for more details on Unknown Values.
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)
- 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