Calculate Net Asset Values

There are several steps involved in the process of calculating NAVs from values received from a Web Service.

  1. The updated NAV values for each fund are sent to OIPA via a FileReceived SOAP request.

  2. The AsFilePreInsertUvNavCalculationProcessorBll Java class is called using the <PreInsert> element in the FileReceived configuration.

  3. The AsFilePreInsertUvNavCalculationProcessorBll Java class calls the CalculateNetAssetValue business rule.

  4. The CalculateNetAssetValue business rule calculates the Bid and Offer price based upon the Bare price and returns the values.

  5. The Bare, Bid, and Offer prices are inserted into the AsNetAssetValue table.

OIPA comes with one installed PreInsert extension called AsFilePreInsertUvNavCalculationProcessorBll. It is used for calculating unit values on AsNetAssetValue records that are to be inserted through the request.

Note: Refer to the File section for additional information on the AsFile Web Service.

AsFilePreInsertUvNavCalculationProcessorBll

Configuring com.adminserver.pas.webservice.bll.AsFilePreInsertUvNavCalculationProcessorBll as a PreInsert object, makes an AsFile record process this extension before insert.

This extension reads over all AsNetAssetValue objects available for insert and populates UnitValue and OfferUnitValue column values from a configured calculation. The configuration for this calculation is available in a business rule called CalculateNetAssetValues.

The CalculateNetAssetValues rule is looked up for each AsNetAssetValue object and is overriable by the net asset value’s FundGUID and then that fund’s PlanGUID. The rule is configured with a Math element (see the XML Configuration Guide Math documentation for how to configure math variables) that executes a math engine.

The extension would be configured in the AsFile record as follows:

<File>

<PreInsert>

<Object NAME=”com.adminserver.pas.webservice.bll.AsFilePreInsertUvNavCalculationProcessorBll”>

</Object>

</PreInsert>

<File>

Note: There aren’t any parameters needed for this extension.

CalculateNetAssetValues Business Rule

Output Mapping

There is a configurable OutputMapping element that maps math variables to the AsNetAssetValue column values. There are two OutputMapping elements that can be configured in the rule.

  • Bid: The new UnitValue for the AsNetAssetValue object.

  • Offer: The new OfferUnitValue for the AsNetAssetValue object.

Each takes a math variable for the new value.

Input Mapping

There is also an InputMapping element that is used for configuring FIELD values that are available during math processing. There are four InputMapping elements that can be configured in the rule. Each is hard-coded with a value.

  • PlanGuid: The PlanGuid from the fund of the net asset value.

  • FundGuid: The FundGuid from the net asset value.

  • EffectiveDate: The system date.

  • Bare: The BareUnitValue from the net asset value.

Each value is configurable by FIELD name only.

<CalculateNetAssetValues>

<InputMapping>

<PlanGuid>Fund:PlanGuid</PlanGuid>

<FundGuid>Fund:FundGuid</FundGuid>

<EffectiveDate>Fund:EffectiveDate</EffectiveDate>

<Bare>Fund:Bare</Bare>

</InputMapping>

<Math>

<MathVariable VARIABLENAME=”BareUnitValue” TYPE=”FIELD” DATATYPE=”DECIMAL”>Fund:Bare</MathVariable>

<MathVariable VARIABLENAME=”BidValue” TYPE=”EXPRESSION” DATATYPE=”DECIMAL”>Bare * (1 - .5 / 2)</MathVariable>

<MathVariable VARIABLENAME=”OfferValue” TYPE=”EXPRESSION” DATATYPE=”DECIMAL”>Bare * (1 - .4 / 2)</MathVariable>

</Math>

<OutputMapping>

<Bid>BidValue</Bid>

<Offer>OfferValue</Offer>

</OutputMapping>

</CalculateNetAssetValues>

This sample uses the current net asset value’s BareUnitValue to calculate two variable values (BidValue and OfferValue). These variables are then used as the new UnitValue (Bid) and OfferUnitValue (Offer) for the AsNetAssetValue record.