Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
jasmine_li
Contributor
0 Kudos

When Price index is defined in the master data of a bond (tcode FWZZ, Basic data tab), sometimes it is not clear how the system calculates the position amount for interest flows. I would like to explain it with an example.

Price Index definition, see customizing:

Financial Supply Chain Management >  Treasury and Risk Management > Basic Functions > Market Data Management > Master Data > Indexes > Define Price Index (table TIDX_PRICE_INDEX)

Index Values are defined in customizing:

Financial Supply Chain Management >  Treasury and Risk Management > Basic Functions > Market Data Management > Manual Market Data Entry > Securities and Indexes > Enter Price Index Values (tcode S_KFM_86000134)

Bond position is created and the cash flow is as below (TPM40):

How does system calculate the Amount in position currency for the interest flow with position value date 01.06.2005) ?

It takes the calculation date as value date, in this case it is 30.05.2005.

1) System will find the related low and high index comparing to this value date:

  wa_priceValueLow

  VALUE_DATE   20050515
  INDEX_VALUE  115.000000

  wa_priceValueHigh

  VALUE_DATE   20050615
  INDEX_VALUE  125.000000

2)  Get the number of days between the low and high index values:

    20050515 ~ 20050615, no.of days 31

3)  Get the number of days between the low index value and the value date:

    20050515 ~ 20050530, no.of days 15

4)  Do the interpolation:

        CALL FUNCTION 'FIMA_INTERPOLIEREN'
    EXPORTING
         
          I_X1          = 0
          I_X2          = nDaysBetweenLow_High         
          I_X3          = nDaysBetweenLow_ValDate
          I_Y1          = IM_LOW_INDEX_VALUE-INDEX_VALUE
          I_Y2          = IM_HIGH_INDEX_VALUE-INDEX_VALUE
     IMPORTING
          E_Y3          = floatIntPolIndexValue

E_Y3 = WRK_Y1 * ( WRK_X2 - I_X3 )

            + WRK_Y2 * ( I_X3 - WRK_X1 ).

WRK_Y1    1.1500000000000000E+02

WRK_X2    3.1000000000000000E+01

I_X3      15

WRK_Y2    1.2500000000000000E+02

I_X3      15

WRK_X1    0.0000000000000000E+00

-> E_Y3      3.7150000000000000E+03


Then E_Y3 = E_Y3 / ( WRK_X2 - WRK_X1 ).
                   = 3.7150000000000000E+03 / (3.1000000000000000E+01 - 0.0000000000000000E+00)
                   =  1.1983870967741936E+02 (float Intpol Index value)

5)   Do the rounding

1.1983870967741936E+02 equal to 119.838710000000

tmpIndexInRatio     1.1983871000000001E+02
tmpRatio                  1.0040000000000001E+02 (Ratio 100.40)

* Index value in No ratio
  indexNoRatio    = tmpIndexInRatio / tmpRatio.

                            = 1.1983871000000001E+02 /  1.0040000000000001E+02
                            = 1.1936126494023904E+00

a. index value in Ratio is rounded to 6 decimals:  119.838710;


b. Check the size of the base ratio, if it is between 100 and 1000 (in this case 100.40),  we add TWO more decimal than the rounding rule states, the real ratio would be rounded to 8 decimals: 1.193612650000.

6)  multiply the position currency amount with the index value

   <l_flow>-index_value =   l_index_value.
multiply <l_flow>-position_amt by l_index_value.


  <l_flow>-index_value  is 1.193612650000


Position amount of interest flow without index (index-clean) is 53000.00.


You will get the position amount of interest: 53000.00 * 1.193612650000 = 63261.47

Related class/method:

CL_STANDARD_CALCULATOR_TRS
    Method  INSERT_PRICE_INDEX

CL_TIDX_PRICE_INDEX_NEW_POS
    Method  IF_TIDX_PRICE_INDEX~GETINDEXFACTOR4DISTFLOWTYPE
    Method   INTERPOLATE
    Method   rounding


Related customizing:

Treasury and Risk Management

> Transaction Manager

> Securities >

Master Data

> Specific Class Data

> Settings for Special Types of

Securities

> Index-Linked Bonds

> Edit Price Index

Here contains the Price index definition, Update Type for Price Index, Values of Price Index. Please find more information in online help.

Related BADI:

BADI   TPM_PRICE_INDEX

Method:

               ADJUST_VALUE_DATE      Adjust Fixing Date (Central)

               ADJUST_INDEX_VALUE    Adjust Interpolated Value (Central)

               ADJ_VALUE_DATE_FOR_COND_FLOW    Adjust Fixing Date for Condition Flows

               ADJ_VALUE_DATE_FOR_DEAL_FLOW     Adjust Fixing Date for Main Transaction Flow

Hope this helps to understand the calculation logic.