Valuation reconciliation in LUSID is a simple but powerful construct that returns the difference between two aggregations.
The call is similar to holdings reconciliation in that there is a left and right hand side to the reconciliation request, and the function returns the unit differences (this will shortly be extended to other result sets such as curve risk).
The power lies in the sheer variety of reconciliation scenarios that can be constructed, given each side of the reconciliation is an aggregation request in itself. Clients are able to control:
The instrument set to compare
The market data source for each instrument
The market rules for this data source
The pricing model to be used as well as its configuration
The aggregation return parameters, their grouping, sorting and their operations where appropriate
The asAt and effectiveAt on each side as in holdings reconciliations
It therefore becomes easy to construct an API call to show, for instance, the pricing difference between two books of swaps that appear to reconcile in terms of holdings and properties, evaluate the impact on the same swap book of a change to the main finance end of day curve, run a 1 day difference on a bond portfolio to check the impact on accruals across a coupon date or switch pricing models on an option book to assess model performance.
The valuation reconciliation feature can be accessed using the ReconcileInline API, which takes a set of in-memory instruments so you can model scenarios without recourse to booking.
The hierarchy of the constructed call can be represented by the below tables. The main call (table 1) is to reconcile two sides, each with their own instrument sets across scopes and with aggregations specified.
Within each aggregation (table 2), the timeframe can be defined for each side, and the recipe and aggregation metrics are set. Within each side's recipe (table 3), one can specify pricing vendor, model and parameters and market data location and ruleset per instrument.
Table 1: The reconciliation call parameter set
Table 2: The aggregation parameter sets
Table 3: The recipe parameter sets