Inspect Product
Introduction
The GUI's "Inspect Product" tab shows fully detailed product definitions including descriptions of mandatory and optional fields and included cashflow types (and their fields). It also shows the all important linkage between a product and the list of curves and rates required to price it.
All of this information is maintained in the product code within the risk engine, and is actually used by the risk engine to interpret the trade data sent to it for calculations. Thus the product definitions are always up to date and can be compared with the actual trade inputs to quickly resolve mapping errors or valuation discrepancies.
Sample Product Definition
Sample CSV
You can quickly see the relationship between the product definition and a sample trade file. The field names in the product definition above are replicated in the product header in the csv file.
Vector Risk Trade Csv,Template creation date: 2013-03-14
LoadTrades,2012-09-17
TradeID,FXForward,Default,Fields, ... ,PayAmount,PayCurrency,RecAmount,RecCurrency,MaturityDate
337,FXForward,Default,Fields, ... ,50000000,JPY,841390,SGD,2015-01-13
338,FXForward,Default,Fields, ... ,50000000,JPY,835290,NZD,2015-01-08
note: Fields required to categorize the trade (such as the book and counterparty it belongs to) have been stripped out of the CSV sample to allow it to fit on the page here.
Sample XML
It is also easy to see how the following xml sample aligns to the product definition. In this example the categorisation fields - book, counterparty etc) have been left in but it is easy to see how the fields align to the product definition.
<?xml version="1.0" encoding="utf-8"?>
<BoundaryRider Container Version="8.0">
<WorkflowTradeSet xmlns:xsd="
http://www.w3.org/2001/XMLSchema
" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
">
<calcDate>2013-01-22T00:00:00+11:00</calcDate>
<taskName>LoadTrades</taskName>
<trades>
<WorkflowTrade>
<book>FXForward_SYD</book>
<location>A</location>
<trader>A</trader>
<counterparty>One</counterparty>
<pool>A</pool>
<industry>A</industry>
<sourceCurrency>USD</sourceCurrency>
<sourceMtm>0</sourceMtm>
<sourceNotional>1</sourceNotional>
<trade>
<product>FXForward</product>
<representation>Default</representation>
<sourceSystem>Demo</sourceSystem>
<sourceID>FXF1000</sourceID>
<linkID>0</linkID>
<creditProtection>false</creditProtection>
<fields>
<Field>
<name>PayAmount</name>
<value>1000000</value>
</Field>
<Field>
<name>PayCurrency</name>
<value>USD</value>
</Field>
<Field>
<name>RecAmount</name>
<value>977995</value>
</Field>
<Field>
<name>RecCurrency</name>
<value>AUD</value>
</Field>
<Field>
<name>MaturityDate</name>
<value>2013-09-30</value>
</Field>
</fields>
</trade>
</WorkflowTrade>
</trades>
</WorkflowTradeSet></BoundaryRider Container>
Name/Value Pairs
All products conform to the same object model; that is a list of fields (specified as name/value pairs). This object model allows new products to be added to the system without affecting existing product mappings.