Entity Setup
Before any trades can be booked, the target entity must be set up appropriately.
for details.
Reference Data
Storage & Configuration
Eagle models Forward security master file (SMF) as two separate rows in Data Management, each with its own Security Alias (10), linked by a common Primary Asset ID (14). One row represents the buy side and the other represents the sell side.
Include Page | ||||
---|---|---|---|---|
|
Market Data
There are two
methods available for pricing Forwards in Eagle. The first is to load prices the same way as other securities, except values are required on both legs. The other
is to have Eagle calculate prices based on prevailing spot FX rates and forward points, using either Pricing Center or Prices and Exchange Rates
Center. Refer to the
Valuation section for details about this process.
Security Data
There are also two
methods available for creating Forward SMFs depending on your entity-level value of Forward Security Exists.
Yes
). The other is to create SMFs Yes
: SMFs must be created before trades are processed, similar to other securities)No
: SMFs are created on the fly at the time of trade booking
No
). Refer Refer to the Trade
Processing section for details about the latter workflow
Forward SMFs can be set up and maintained using Issue Viewer
or Reference Data Center (RDC). Some data is shared across the legs, while other fields can be unique. Some tag numbers differ between Issue Viewer
and RDC due to architectural differences.
Shared
Primary Asset ID Type (1432)
Primary Asset ID (14)
Processing Security Type (3931) =
FWXXXX
Settlement/Expiration/Maturity Date (38)
Match Broker Indicator (3913): specifies whether the broker is used in the matching criteria for forward trading; select
No
if Forward Position by Broker is set toNo
on your entity, orYes
if it is set toYes
When set to
Yes
you also have to populate the Broker (
8f8), which gets included in the Issue Name concatenation
Sell Side
Issue Name (961): concatenated automatically
Currency (363 or 85
)
Alternate Asset ID (1795) and Type (5501)
FWDXREF (1952 or 11449
)
Internal (1955 or 1976
)
Buy Side
Issue Name (1104 or 961
): concatenated automatically
Currency (313 or 85
)
Alternate Asset ID (2294 or 1795
) and Type (2292 or 5501
)
FWDXREF (2300 or 11449
)
Internal (5300 or 1976
)
NDF Contracts should be set up with the true non-deliverable currency on
one side and the deliverable currency on the other side.
TRADE PROCESSING
There are two options for trading Forwards in Eagle depending on yourTrade Processing
The process for booking trades is also driven by the entity-level value of Forward Security Exists.
Yes
: you must query for the SMF you set up in advanceNo
: you must query for the currency SMF to be bought or sold (CASHGBP
,CASHEUR
, etc.)
Trades are entered using the Book Trade module once entity and reference data have been configured. Enter the appropriate entity, security identifier (for the Forward SMF or the currency SMF), and trade (35)/settle (37) dates and click Submit to query for the security. Right-click it and select Book Foreign Exchange > Buy Currency - Forward Contract or Sell Currency - Forward Contract
Yes
).
Forward Security Exists drives the data requirements at trade time as well. If it is set to No
, you must enter the fields from the Security
Data section in addition to the fields listed below. This also provides the option to create a unique Primary Asset ID automatically by setting Process For Creating Primary Asset ID (2284) = System Generated
.
Sell
Currency Symbol (
363)
Sell Quantity (
366)
Buy Currency Symbol (313)
Buy Quantity (316)
Commission Amount Local (47)
Other Fee Local (3752)
Fee Settlement Date (9357)
Settlement Currency (63): defaulted based on the entity-level Forward Settlement Currency, but can be overridden
Set to the deliverable currency for NDF Contracts
Broker (88)
NDF Contracts
Open
NDF Contract open trades should be booked just like any other Forward.
Fixing
On fixing date, an offsetting transaction must be entered for the non-deliverable currency to a) prevent any cash settlement of the non-deliverable currency and b) determine the net settlement amount of convertible currency. This transaction should have Trade Date = fixing date and Settlement Date = original Settlement Date. Both of the attached NDF spreadsheets show examples.
Roll
NDF Contracts can be rolled forward prior to the fixing date to extend the settlement date out into the future. This is done by entering an offsetting transaction as described in the Fixing section above with Trade Date = roll date, combined with a transaction in the original direction with Trade Date = roll date and the new Settlement Date. The Roll Forward 5-27 worksheet of the attached NDF Lifecycle.xlsx spreadsheet shows an example.
In the example with a roll, two fixing transactions must be entered on fixing date: one to offset the original NDF, and another to offset the roll date offset. These are the steps from the example, which assumes Forward Close Eligible = No
:
- We start by entering NDF A
- On roll date, we book NDF B to offset
NDF A, and we book NDF C with the new Settlement Date - On fixing date, we book NDF D to offset
NDF B, and we book NDF E to offsetNDF C - On the original Settlement Date, both pairs of the offsetting transactions are reduced to zero and realized gain/loss is locked in
- The end result is NDF C outstanding with the new Settlement Date
Cancel & Rebook
Faulty Forward transactions can be cancelled using Cancel Trade or Batch Cancel Trade, with the transaction rebooked using Book Trade. Forwards are not supported in the Cancel & Rebook Trade process.
- Modify Cancel Accounting Date can be used to change the accounting date associated with a cancel
ACCOUNTING
Once a Forward trade is booked, it will be picked up in Eagle’s global workflow. Accounting valuation is calculated when posting unrealized gain/loss and Data Management valuation is calculated in STAR to PACE. These can be scheduled or triggered manually.
- V17 & Above: Accounting Center > Processing and Exceptions > Global Processes
- Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
- Data Management Valuation: Eagle STAR to Eagle PACE Direct Processing > Transfer Data - Batch
- Maturities: Expirations & Maturities > Run Forward Contracts Maturity
- Prior to V17: Global Process Center
- Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
- Data Management Valuation: STAR to PACE Direct Processing > Transfer Data - Batch
- Maturities: Expirations > Mature Forward Contract
Valuation
If Forward prices are being sourced externally, they can be loaded directly to the appropriate leg.
To calculate Forward prices in Eagle, you must use either Prices and Exchange Rates Center or Pricing Center. In either case, the following steps must be completed first.
- A Feed Type of
BFX
exists in Accounting; if it does not, it can be added as described in the Storage & Configuration section near the beginning of this document - The entity-level FX Source has a Feed Type of
BFX
listed as part of its Interfaces Details; this can be added using Add Interfaces Detail - The entity-level elections for Forwards have been populated: Forward Price Source, Forward Position by Broker, Forward Close Eligible, Forward Settlement Currency, and Forward Security Exists
- Note: these fields are not marked as required on the entity setup and there are no defaulted values
- The Forward SMF exists, either from being set up in advance or created on the fly at trade time
- The Forward is held in at least one entity
Prices and Exchange Rates Center
The rates and points Accounting uses to calculate forward prices can be loaded using the Window > FX Rates screen. Enter the Exchange Rate Source, To Currency Symbol, From Currency Symbol, and Effective Date and click SEARCH to submit the query. To Currency is the pricing currency (it should match entity-level Forward Price Source) and From Currency is the local currency of the leg. Effective Date is the date for which you are pricing.
If no spot rate or points have been loaded for the Effective Date, you will see a Tolerance Status of MissingFxRate
. Enter the spot rate and points (7-, 30-, 60-, 90-, 180-, 360-, and 720-day) and click Save Changes, after which the Tolerance Status should change to FxRate Success
.
- If a spot rate already exists for query criteria, it will be pulled into this screen
- The day-over-day spot rates are verified against each other; entering an unrealistic rate may result in a Tolerance Status of
FxRate Failure
- This can be overridden if necessary
- Points can be negative
- Only the points for the lower and upper bounds are required, the rest are optional to improve accuracy
- For example: if the number of days to maturity for a given Forward is 144 days, only the 3- and 6-month points are required to calculate the price
Forward Pricing Trigger
After the spot rate and points have been entered, the calculation can be triggered using the standalone Forward Pricing screen. This uses the ESTAR.PKG_ESTAR.INSERT_UKNOWN_PRICE stored procedure.
- Reprice Flag (1844)
No
orNULL
: prices will only be calculated for Forwards with no price or a zero priceYes
: allows repricing of Forwards that already have a price, if a spot rate or points changed, for example- This requires populating Currency to be Repriced (85), which will cause all held Forwards against that currency (both buy and sell) to be repriced
- Calendar Days Method (1257)
No
: calculation assumes fixed forward point periods, such as 30-, 60-, or 90-daysYes
: calculation uses actual calendar days between Effective Date and Settlement/Expiration/Maturity Date- This requires populating Calendar Name (1941)
Once prices have been calculated, they can be viewed via the Window > Forwards screen. In this window, Forward Source is the entity’s Forward Price Source, not its FX Source. Successful pricing is indicated by a Tolerance Status of Forward Success
. The calculated prices are stored in the PRICE table.
Cross Currency Forwards
Similar steps should be followed to price cross currency forwards, where both currencies differ from the base currency of a fund. The only difference is that two sets of rates and points must be entered. One set is required for each leg against the pricing currency, as indicated by the entity's Forward Price Source.
Forward Pricing Formula
Prices and Exchange Rates Center interpolates forward prices using the below formulas:
- IF DAYS <= 7 THEN (spot rate + 0 + (7day point - 0) * (days - 0) / (7 - 0))
- IF DAYS <=30 THEN (spot rate + 7day point + ((30day point - 7day point) * (days - 7) / (30 - 7)))
- IF DAYS <=60 THEN (spot rate + 30day point + ((60day point - 30day point) * (days - 30) / (60 - 30)))
- IF DAYS <=90 THEN (spot rate + 60day point + ((90day point - 60day point)* (days - 60) / (90 - 60)))
- IF DAYS <=180 THEN (spot rate + 90day point + ((180day point - 90day point)* (days - 90) / (180 - 90)))
- IF DAYS <=360 THEN (spot rate + 180day point + ((360day point - 180day point) * (days - 180) / (360 -180)))
- IF DAYS >360 THEN (spot rate + 360day point + ((720day point - 360day point) * (days - 360) / (720 - 360)))
After the price has been calculated, it is moved to the FX rate column and a price of 1.00
is is used for positional data to reflect any change as currency gain/loss.
In addition to the full walk-through example attached, there are two additional spreadsheets demonstrating the pricing calculations. Forward Price Calculations 8446.xlsx includes multiple different currency pairs, while Forward Price Calculations 8609.xlsx shows two different valuation dates for a single contract.
Pricing Center
Pricing Center differs from Prices and Exchange Rates Center in its data requirements for deriving a price. Pricing Center does not require the lower bound point to be loaded; instead, it substitutes the spot rate as the lower bound.
You have complete flexibility to store forwards points to any level of granularity you desire. The industry standard is a spot rate plus 7-, 30-, 60-, 90-, 180-, 270-, and 360-days. You can also store weekly/monthly points. Once Pricing Center determines the days to maturity of the forward, it gets the two closest lower and upper bound points available.
- Standard Formula = spot + point of lower bound + (point difference between lower and upper bound * (day range left over after getting to lower bound / total days in segment))
The Pricing Center process uses Exchange Rates - FX Rules to create demand for the original source and Exchange Rates - FX Validation Rules to move rates to the target source, which then become the basis for price interpolation. These events can be triggered manually, or scheduled to run as part of your daily workflow. Message Center streams to load exchange rates into Pricing Center are available in CSV and STAR formats: eagle_default_in_csv_pc_addfx and eagle_default_in_star_pc_addfx.
Close
Forwards can be closed prior to settlement date if the entity-level Forward Close Eligible = Yes
. Book an offsetting Forward where the non-Settlement Currency amount exactly offsets the non-Settlement Currency amount from the original trade.
Example: the original trade was BUY 100,000 USD/SELL 135,000 CAD with Settlement Currency = USD. To fully close the position, book an offsetting Forward to BUY 135,000 CAD and SELL the appropriate USD settlement amount.
NDF Contracts
Open
NDF Contract open trades should be booked just like any other Forward. Enter the true non-deliverable currency on one side and the deliverable currency on the other side. Set Settlement Currency to the deliverable currency.
Fixing
On fixing date, an offsetting transaction must be entered for the non-deliverable currency to a) prevent any cash settlement of the non-deliverable currency and b) determine the net settlement amount of convertible currency. This transaction should be booked with the following details:
Trade Date = fixing date
Settlement Date = original Settlement Date
Sell Currency Symbol = Buy Currency Symbol from the original trade
Buy Currency Symbol = Sell Currency Symbol from the original trade
The non-deliverable amount must be exactly equal to the non-deliverable amount from the original trade
The deliverable amount should result in the correct total net settlement amount after being netted against the deliverable amount from the original trade
Example: if the deliverable amount form the original trade was 1,000 USD and the total net settlement amount is 200 USD, use 1,200 USD for the fixing trade (1,200 - 1,000 = 200)
Settlement Currency = deliverable currency
View file | ||
---|---|---|
|
Roll
NDF Contracts can be rolled forward prior to the fixing date to extend the settlement date out into the future. This is done by entering an offsetting transaction as described in the Fixing section above with Trade Date = roll date, combined with a transaction in the original direction with Trade Date = roll date and the new Settlement Date. The Roll 5-27 worksheet of
View file | ||
---|---|---|
|
In the example with a roll, two fixing transactions must be entered on fixing date: one to offset the original NDF, and another to offset the roll date offset. These are the steps from the example, which assumes Forward Close Eligible = No
. The name of each trade is in the Security Type column of each report.
We start by booking NDF (May 5)
On roll date (May 27), we book NDF ROLL FORWARD with the new Settlement Date, and we book NDF SPOT to offset NDF
This prevents double counting during valuation
On fixing date (May 31), we book NDF FIXING to offset NDF, and NDF SPOT FIXING to offset NDF SPOT
This prevents cash from settling in the non-deliverable currency
On the original Settlement Date (June 2), both pairs of the offsetting transactions (
NDF|NDF FIXINGandNDF SPOT|NDF SPOT FIXING) are reduced to zero and realized gain/loss is locked in for the original trade and settled in the deliverable currencyThe end result is NDF ROLL FORWARD outstanding with the new Settlement Date (July 2)
Cancel & Rebook
Faulty Forward transactions can be cancelled using Cancel Trade, with the transaction rebooked using Book Trade. Forwards are not supported in Batch Cancel Trade or the Cancel & Rebook Trade process.
Modify Cancel Accounting Date can be used to change the accounting date associated with a cancel
Accounting
Once a Forward trade is booked, it will be picked up in Eagle’s global workflow. Accounting valuation is calculated when posting unrealized gain/loss and Data Management valuation is calculated in STAR to PACE. These can be scheduled or triggered manually.
V17 & Above: Accounting Center > Processing and Exceptions > Global Processes
Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
Data Management Valuation: Eagle STAR to Eagle PACE Direct Processing > Transfer Data - Batch
Maturities: Expirations & Maturities > Run Forward Contracts Maturity
Prior to V17: Global Process Center
Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
Data Management Valuation: STAR to PACE Direct Processing > Transfer Data - Batch
Maturities: Expirations > Mature Forward Contract
Valuation
Eagle Accounting includes functionality to interpolate Forward prices based on spot and forward rates/points (both are supported). When the same Forward SMF is traded in multiple funds with different base currencies, the entity-level Forward Price Source (2920) allows Eagle Accounting to calculate accurate valuations across all funds (refer to the Entity Setup section for additional information).
If Forward prices are sourced externally, they can be loaded directly to the entity's Forward Price Source for the appropriate leg(s). If you are using the default Eagle sources, you would load the prices directly to 4 GBP
, for example. If you are using custom sources, you would load the vendor prices directly to those sources.
When viewing reports, forward prices are shown in the FX Rate (96) column
The leg that matches a fund's base currency always has an FX Rate of
1.00
, while the other leg is the pricing legBoth legs are pricing legs for Cross Currency Forwards (where the two currencies differ from a fund's base currency)
Price (481) is always shown as
1.00
This applies to interpolated and vendor-provided prices
Prices can be loaded like any other security using the Closing Price (481) field in Add Issue Price, but they are moved to the FX Rate field during STAR to PACE
To interpolate Forward prices in Eagle, you must use either Pricing Center or Prices and Exchange Rates Center. In either case, ensure the following have been completed first.
A Feed Type of
BFX
exists in AccountingIf it does not, it can be added as described in the Storage & Configuration section near the beginning of this document
The entity-level FX Source has a Feed Type of
BFX
listed as part of its Interfaces Details; this can be added using Add Interfaces DetailThe entity-level elections for Forwards have been populated: Forward Price Source, Forward Position by Broker, Forward Close Eligible, Forward Settlement Currency, and Forward Security Exists
Note: these fields are not marked as required on the entity setup and there are no defaulted values
The Forward SMF exists, either from being set up in advance or created on the fly at trade time
The Forward is held in at least one entity
Pricing Center
Pricing Center differs from Prices and Exchange Rates Center in its data requirements for deriving a price. Pricing Center does not require the lower bound point to be loaded; instead, it substitutes the spot rate as the lower bound. Refer to Using Pricing Center for Forward Contracts for step-by-step details about the process.
You have complete flexibility to store forwards points to any level of granularity you desire. The industry standard is a spot rate plus 7-, 30-, 60-, 90-, 180-, 270-, and 360-days. You can also store weekly/monthly points. Once Pricing Center calculates the days to maturity of the forward, it gets the two closest lower and upper bound points available.
Pricing Center has two formulas available for pricing forwards. These are controlled by PACE System Setting 169
. A value of 0
invokes the Fixed Periods formula, while a value of 1
invokes Actual Calendar Days, as shown below. This setting can be checked and changed in System Management Center > System Settings > System Parameters.
Fixed Periods = spot + lower bound point + ((upper bound point - lower bound point) * ((days to maturity - lower bound days) / (upper bound days - lower bound days))
Days to Maturity = settlement date AKA maturity date - valuation date
Days to Maturity Offset can be used to push out the effective valuation date used in the calculation on a per currency pair basis
Example: valuation date = 7/12/2021, settlement/maturity date = 8/25/2021, GBP to USD offset = 2, and GBP to EUR offset = 1
Days to Maturity = 8/25/2021 - 7/12/2021 = 44
GBP to USD Days to Maturity = 44 - 2 = 42
GBP to EUR Days to Maturity = 44 - 1 = 41
Refer to https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1842217109/Using+Pricing+Center+for+Forward+Contracts#Before-You-Start for more information about Days to Maturity Offset
Actual Calendar Days = spot + lower bound point + ((((spot + upper bound point) - (spot + lower bound point)) / (upper bound date - lower bound date)) * (settlement date AKA maturity date - lower point date))
The Pricing Center process uses Exchange Rates - FX Rules to create demand for the original source and Exchange Rates - FX Validation Rules to move rates to the target source, which then become the basis for price interpolation. These events can be triggered manually, or scheduled to run as part of your daily workflow. Message Center streams to load exchange rates into Pricing Center are available in CSV and STAR formats: eagle_default_in_csv_pc_addfx and eagle_default_in_star_pc_addfx.
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Prices and Exchange Rates Center
Prices and Exchange Rates Center was retired in V17 in favor of Pricing Center and its improved functionality. The information below is provided for clients on earlier versions of Eagle Accounting.
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
The rates and points Accounting uses to calculate forward prices can be loaded using the Window > FX Rates screen. Enter the Exchange Rate Source, To Currency Symbol, From Currency Symbol, and Effective Date and click SEARCH to submit the query. To Currency is the pricing currency (it should match entity-level Forward Price Source) and From Currency is the local currency of the leg. Effective Date is the date for which you are pricing. If no spot rate or points have been loaded for the Effective Date, you will see a Tolerance Status of
Forward Pricing TriggerAfter the spot rate and points have been entered, the calculation can be triggered using the standalone Forward Pricing screen. This uses the ESTAR.PKG_ESTAR.INSERT_UKNOWN_PRICE stored procedure.
Once prices have been calculated, they can be viewed via the Window > Forwards screen. In this window, Forward Source is the entity’s Forward Price Source, not its FX Source. Successful pricing is indicated by a Tolerance Status of Forward Pricing FormulaPrices and Exchange Rates Center interpolates forward prices using the below formulas:
After the price has been calculated, it is moved to the FX rate column and a price of In addition to the full walk-through example attached, there are two additional spreadsheets demonstrating the pricing calculations.
|
Cross Currency Forwards
Similar steps should be followed to price Cross Currency Forwards (where the two currencies differ from a fund's base currency). The only difference is that two sets of rates/points must be entered. One set is required for each leg against the fund's base currency. Prices are interpolated for both legs, instead of one leg being pegged at 1.00
.
If vendor prices are being used, they should be loaded directly to the entity's Forward Price Source for both legs.
Reporting
STAR to PACE (S2P)
Almost all reports in Eagle Accounting leverage data from Data Management, which is populated by the S2P process. This will be scheduled as part of the daily workflow, but can also be triggered manually as described in the
Accounting section.
The S2P process creates two rows for each Forward in the POSITION, POSITION_DETAIL, TRADE, and CASH_ACTIVITY tables. The MARKET_VALUE_INCOME column captures the total market value. The following additional logic is also performed for Forwards:
All local market value fields default to the leg quantity
The price stored in the PRICE table is the one calculated by Pricing Center (or Prices and Exchange Rates Center) to be used to value the leg back to the base currency
Price is set to
1.00
in the position and open lot tables
Accounting Reports
Eagle has a core set of accounting reports that can be used to review Forward and other security information. These are designed to support the daily operational workflow for business users, allowing Grid Reports to be easily exported to Excel and customized to provide additional details as needed. Advanced Reports are intended to be client-facing and do not provide the same level of customization.
Insurance Reporting
Include Page | ||||
---|---|---|---|---|
|
Data Management Reporting
General Reporting (OLAP)
OLAP reports provide the maximum level of customization, allowing any column in Data Management to be pulled into a report. These go beyond the Accounting Grid Reports because they are not limited by core queries, can support multiple sources and various types of calculations, and provide drill-down functionality based on user-defined groupings.
Performance
The performance toolkit has full functionality to calculate market value-based performance for Forwards using data supplied by the S2P process. Risk and performance attribution features are available to analyze Forward performance.
Total performance of a Forward is calculated at the leg level
Note: there is an issue with performance when the entity election Forward Close Eligible is set to Yes
. Refer to # 2 in the Other
Notes section for more details.
Automation
Forward security master files (SMFs) and trades can be loaded through the standard Message Center
streams. Unlike other securities, the SMF does not need to be loaded prior to the trade if Forward Security Exists = No
. In this case, loading the trade will spawn an SMF (if necessary) in the same way as manual processing
. Refer to https://eagledocs.atlassian.net/wiki/spaces/GENERICINTER for more information.
Process For Creating Primary Asset ID (2284) must be set to
System Generated
Ensure Trade Ticket Number (761) is populated for all Forward trades because it is required to process cancels
FX rates can be loaded via
Message Center through the default eagle_default_in_csv_fxrate stream
Other Notes
After posting the unrealized gain/loss, verify that the gain/loss values look reasonable.
Performance issue when Forward Close Eligible is set to
Yes
. The Global Professional Services team has created an exporter to correct this issue (refer to our