Input Physical Trades Data

The New Physical Trade function allows users from different departments/teams to access the designated pages to input their data, ensuring a consistent operational workflow and clear delegation of responsibilities for different teams.

Please note that all data input in New Physical Trade will appear in the old Physical Trade page, and vice versa. Trades created in the New Physical Trade page will have their Actions column button disabled, which disallows editing of the trades in the old Physical Trade page.

Alternatively, you may choose to use the old methods to input your data:

1. Manually input physical trades, please access: Input Physical Trades Manually

2. Bulk upload physical trades, please access: Physical Trades 101 - Bulk Upload


3. Input Payment Data in PS Ledger

If this step is not required yet, please proceed to the next step and return to complete this step when necessary.

This section displays the details of your purchase and sale ledgers (payment received from counterparty or paid to counterparty) for all physical trades.

i. Please click on Trade, followed by New Physical Trade from the navigation sidebar on the left to enter the physical trade page,

and you will be directed to the PS Ledger page.

The system will follow this order of priority : Settlement Qty/Price > Estimated Price > Contract Actual Qty/Price > Qty/Provisional Price to calculate data.

Basic Functions

Outside Table:

  • Search Function

Input in the Search function to search for any keys in the table.


  • Filter based on Unassigned/Assigned

All payment items that have not been assigned Contract No. will be displayed in the Unassigned table. Once Contract No. has been added into the payment items and saved successfully, the items will be displayed in the Assigned table.


  • Date Range

The From Date is 1 month before today's date and To Date is today’s date by default. Please feel free to change the dates accordingly and click on the Search button. The dates will remain according to your settings until you log out.


  • Combination

  • Recalculate

  • Allocate

Please refer to below for more information


  • Add/Delete/Save/Undo

+ Add Row button: To add a new trade, click on the + button at the top right corner of the page to add a new row

Delete Row button: To delete the trades, tick the checkbox of the row and click on the Delete button at the top right corner of the page

Save button: When data has been input/updated, click on the Save button at the top right corner or bottom left corner of the page to save your data. Save button will always be loading if no reaction once clicked

Undo button: To undo your previous action, click on the Undo button at the top right corner or bottom left corner of the page


  • Save/Delete Table Layout Template

You can filter the columns (as well as rows) in the table according to your preferences and save the table layout by clicking on the “+” button at the bottom right corner of the page and naming and saving the table layout. For your convenience, whichever layout you last used will be automatically displayed in the table whenever you enter the page.

To delete the table layout, select the table layout and click on the bin button.

Please refer to Table Layout Settings for more information.


Inside Table:

  • Pin Columns

To pin columns to the left or right for individual or multiple headers, click on the icon next to each header


  • Aggregate/Sum up Values in Table

You can now click on an individual cell or highlight multiple cells to view aggregated summary at the bottom of all columns for all quantity and amount columns. In this case, 3 rows of 200 are highlighted so the aggregated summary will be 600. If you click elsewhere, the aggregated summary will reset to default - sum up all columns.

  • Table Height

You can right click in the table and select the table height to determine the number of rows to display in the table

  • small:15 rows

  • middle:20 rows

  • large:25 rows

  • All decimal points for numerical values will follow user’s setting (Setting>My Profile>System Format)

  • Reset Filter

To reset the filter, right-click in the table and click on Reset Filter. Filter will remain in cache until user logs out or click on Reset Filter

ii. All unassigned items (to Contract No.) are displayed in the table by default. You may select from the Unassigned/Assigned drop down list to viewed the unassigned or assigned trades accordingly. All payment items that have not been assigned Contract No. will be displayed in the Unassigned table. Once Contract No. has been added into the payment items and saved successfully, the items will be displayed in the Assigned table.

When COUNTERPARTY ≠ THIRD PARTY, COUNTERPARTY will be highlighted in green

iii. You can choose to upload or add your PS ledger/bank/payment statements items:

Please refer to the definitions below for more information on how to input your data.

Unassigned Table

Please note that all data input in the Unassigned table in PS Ledger and Invoice (Receive) by groups with group type: Risk & Settlement is Company Level which means that all users in the same company group (same company profile) will be able to view the data. Once Contract No. has been assigned to the PSL or invoice items in the Unassigned table, they will appear in the Assigned table once saved.

Please note that the Assigned table is Group Level, which means that only users in the same group or users who are in the parent group of the users who assigned the contracts will be able to view the assigned PSL or invoice items.

[in MAF Admin account, all view, insert, delete settings for PSL and Invoice (Issue/Receive) are Group; update is Company - for Group Type: Operations and Business; Risk & Settlement is Company for all settings]

Please refer to below for more information on how to input the fields. Cells highlighted in red (indicated with * below) in the table are compulsory fields and are thus necessary to input:

CCY*: Currency of PS Ledger item, must be same as the Currency in put in Trades tab

REMARKS: Remarks

Once the necessary data is input, click on Save to save your data. Please note that once the table is saved, you will not be able to edit any data except Contract No.. To edit other data, you will need to delete the row and reinput the data.


iv. You may choose to assign a contract number before your save or after you save the table. After saving the data, all fields cannot be edited except for Contract No.

To assign a contract number to each payment item, please double click on “Contract No..” field and select, and the relevant fields (Company, Counterparty and Unpayment Amt) will be auto-filled according to the contract’s details in the dropdown list (if data is available).

Here are the items that will be displayed in the Contract No. drop down list:

Please note that:


Assigned Table

Please note that all data input in the Unassigned table in PS Ledger and Invoice (Receive) by groups with group type: Risk & Settlement is Company Level which means that all users in the same company group (same company profile) will be able to view the data. Once Contract No. has been assigned to the PSL or invoice items in the Unassigned table, they will appear in the Assigned table once saved.

Please note that the Assigned table is Group Level, which means that only users in the same group or users who are in the parent group of the users who assigned the contracts will be able to view the assigned PSL or invoice items.

[in MAF Admin account, all view, insert, delete settings for PSL and Invoice (Issue/Receive) are Group; update is Company - for Group Type: Operations and Business; Risk & Settlement is Company for all settings]

Please refer to below for more information on how to input the fields. Cells highlighted in red (indicated with * below) in the table are compulsory fields and are thus necessary to input:

All columns are uneditable after saving except Contract No.

When add new row, all columns are editable except PSL ID, Main Contract No., Qty, Price, Un Payment Amount, as they will be auto filled once Contract No. is selected

CCY*: Currency of PS Ledger item, must be same as the Currency in put in Trades tab

REMARKS: Remarks

Once the necessary data is input, click on Save to save your data. Please note that once the table is saved, you will not be able to edit any data except Contract No.. To edit other data, you will need to delete the row and reinput the data.


If you add or edit in the table and switch to another page or refresh the page without saving, you will be prompted that any unsaved data will be lost.


v. Once all data (all fields highlighted in red are compulsory fields) is filled, please click on Save at the bottom left corner of the page to save the data. The saved data will be calculated and displayed in the relevant columns (PSL Amt, PSL Date, Bal Amt) in the Trades table 2. Trades Tab


vi. Combination

You may choose to combine contracts together (tick multiple rows and click on Combination) to obtain the summed up Amount if the following conditions have been met.

  1. in Unassigned tab only (phy_trade_id empty) - No contract number has been assigned to the payment item yet

  2. only PSL with same THIRD PARTY, BANK, LEDGER TYPE, CCY and COMPANY are allowed to combine and sum up all AMOUNT

  3. DATE will be the latest one

You will be prompted to confirm that you would like to combine the trades together, as once the trades are combined, you will not be able to undo the changes, unless you use the Allocate function to split the trades

Once combined, the trades will be displayed in the table as single row with the Amount summed up accordingly.


vii. Recalculate

Recalculation will only work on trades with contract numbers (in Assigned table). In the event that calculation of any values is incorrect, you may tick the row of the trades and click on the Recalculate button to recalculate the values. When you click on Recalculate, a pop up message will appear indicating that recalculation has been completed and you may save your data.


viii. Allocate

You may bulk-allocate the payment item to different contracts by ticking a row in PS Ledger table and clicking on Allocate, and a pop-up page with 3 panels will appear.

1st Panel: Displays the payment item selected in PS Ledger

2nd Panel: Displays the selected contracts (in 3rd panel) or newly added rows (with no contract number) to be allocated to payment item in 1st panel

3rd Panel: Displays the available contracts (created in Trades tab) for allocation to the payment item in 1st panel

Any contracts created in Trades tab with the same Company Name, Third Party (Counterparty) and Currency as the selected payment item in PSL in 1st panel will appear in the 3rd panel for selection. You can click on the row in the 3rd panel to allocate the payment to the contracts, and the selected contract(s) will appear in the 2nd panel.

To allocate the payment item in 1st panel into smaller values that are not available for selection in the contracts in 3rd panel, you can click on Add Row in the 2nd panel to add a new row and input the Amount, which will be deducted from the Amount in 1st panel accordingly. Once you add a new row, the new row’s fields will be autofilled with the same details as the contract (Date, Company, Bank, Third Party, Ledger Type, Des, Ccy). You can add the contract number for the newly added rows in the Unassigned table in PS Ledger. To remove the allocation of the contracts in 2nd panel, you can tick the row and click on Delete Row and the contract will return back to the 3rd panel.

1st Panel:

The first panel displays the selected payment details input in PS Ledger tab, if values are available, they will appear in the table

2nd Panel:

To allocate contracts to the payment, you can click on the contracts in 3rd panel and the contracts will automatically appear in the 2nd panel.

Once contracts are selected, the 2nd panel displays the contract details input in Trades tab, if values are available, they will appear in the table.

3rd Panel:

PS ledger allocate 2nd panel amt did not change bug fixed

when add new row in 2nd panel and input amt, the amt in 1st panel does not get deducted accordingly

seems like happen for trades with no contracts in 3rd panel


Validation Note:

Once PS Ledger data has been saved successfully, the following columns for each trade in the New Physical Trade table will be reflected automatically.


Logic for PSL/Invoice:

Group Function - User Access Management

Group-level(ops) personnel are not allowed to modify or delete PSL and invoicing information imported under company-level accounts. They can only assign under the contract number or split(allocate) the records.

Non-creator should only be allowed to edit following columns:

ps ledgers:

CONTRACT NO.

REMARKS

invoice:

INVOICE ID

CONTRACT NO.

logic in FE

  1. this is only apply to update manually in table and user is not creator

    1. if there is psl_id, then only allow to update columns above

    2. if there is no psl_id, it means new insert data, then all columns are allowed to edit

  2. only creator is able to delete rows manually in table (select row and press delete button)

for testing:

  1. delete row with contract_no

  2. unassign contract_no

  3. assign contract_no

  4. insert new row with contract_no

  5. update row with contract_no (update anything)

  6. all the above actions without contract_no

for 1 to 5 point, payment amt, invoice_amt and invoice qty should be update accordingly, to check if the number is correct

  1. Allocate enhancement-add a checkbox (Select All) on the far left of the 3rd panel

Remove the setting to keep two decimal places of qty columns in PSL & INVOICE

Remove the setting to keep two decimal places of following qty columns :

RECEIVE TABLE

INV QTY

ISSUE TAB, LOWER TABLE

INV QTY

ALLOCATE WINDOW OF PSL

3rd panel: QTY

ALLOCATE WINDOW OF RECEIVE

1st panel: INV QTY

2nd panel: INV QTY

3rd panel: QTY

inv qty will be unlimited dp, amt will be 2dp

the rest not indicated above wont change

In PSL, RECEIVE, ISSUE and allocate window of PSL & RECEIVE

once user clicked save button, if no response, make this button always show loading( user can’t click it again until there is response)

Click on fields to view the aggregated summary in PSL and INVOICE

in RECEIVE table, ISSUE (both upper and lower table), allocate window of PSL & RECEIVE(only 3rd panel), for all amt and qty related columns, add similar function; Also in PSL table

  1. Save validation in PSL/RECEIVE allocate window logic

save enable validation new logic

  1. in PSL window, if any of the point validate check failed, can not save

    1. in the 1st panel, if latest sign of amount is different from initial sign of amount, highlight in red

    2. in the 3rd panel, if sign of un payment amt is different from contract amt, highlight in red

  2. in PSL window, should in red but still can save (new added):

    1. in the 3rd panel, if sign of un payment amt is different from contract amt, highlight in red

  3. in RECEIVE window, if any of the point validate check failed, can not save

    1. in the 1st panel, if latest sign of amount is different from initial sign of amount, highlight in red

    2. in the 3rd panel, if sign of un inv amt is different from contract amt, highlight in red

    3. in the 1st panel or in 3rd panel

      1. if one of un inv qty and un inv amt is 0, the other is not 0, highlight in red which which is no 0

in the 1st panel, if latest sign of INV QTY is different from initial sign of INV QTY, highlight in red

Now that we have lifted the restriction on positive and negative signs, should we allow them to save when the "un payment" in the 3rd panel is displayed in red? The save validation should only apply to the 1st panel of PSL&RECEIVE and 3rd panel of RECEIVE window

In PSL table, contract no dropdown list:

delete the contract/ledger type filter condition

for all rows, show

  1. same company

  2. ccy == ccy

  3. un_payment_amt is not 0

 

In PSL allocate window:

delete the contract/ledger type filter condition

in the last panel, show contracts

  1. same company

  2. third party == counterparty

  3. ccy == ccy

  4. un_payment_amt is not 0

 

if un_payment_amt in 3rd panel has reverse sign compared to the amt in 1st panel,

once click contracts in 3rd panel, amt in 2nd panel would not be filled by un_payment_amt, but leave it empty

Final Calculation Logic:

  1. when we do portfolio P/L calculation, we use phy_trade actual qty (otherwise qty) and actual_price (otherwise ested_price) in phy_pricing table, which means in settlement tables controlled by risk department

  2. for contract_amt, psl, invoice, we use contract_actual_qty (qty) and contract_actual_price (provisional_price) to calculate.

    1. BE in dropdown list in psl, invoice

    2. FE un_inc_amt, un_payment_amt in psl, invoice table

    3. FE contract_amt … in phy_trade table

The right logic should be: for each trade, once they key the price and qty but not yet record PSL or INVOICE for this contract, PSL AMT, INV QTY, INV AMT should be 0 and BAL AMT , UN INV QTY , UN INV AMT should not be null.

Initial BAL AMT, UN INV QTY, UN INV AMT formulas have no change

FE issue of delete contract no before save in PSL tab

In PSL, when assign contract no, COUNTERPARTY will auto fill. If user tried to delete contract no before save, COUNTERPART should change back to blank, now it would not.

add more columns in 3rd panel of allocate window - PSL and RECEIVE

add these columns in 3rd panel of allocate window

PSL

INVOICE MONTH

ACTUAL PEICE FLAG

EXECUTION STATUS

STOCK DATE

WH NAME & STATUS

STOCK QTY

UNSTOCK QTY

PSL AMT

PSL DATE

INV QTY

INV AMT

UN INV QTY

UN INV AMT

REMARKS

tick rows and view the aggregated summary in PSL and INVOICE

in RECEIVE table, ISSUE (both upper and lower table), allocate window of PSL & RECEIVE(only 3rd panel), for all amt and qty related columns, add similar function:

  1. in both psl and receive allocate window

if selected row from 3rd panel, still remain in the 3rd panel (it means the selected contract un_payment_amt or un_inv_qty or un_inv_amt is not 0)

please highlight amt, inv qty cell in the row in 2nd panel. Green(Green is for amount that is not equal to contract amt)

For all contracts in 3rd panel (no matter PURCHASE or SALE contracts), when click or select the contract

In 2nd panel, we just create a new PSL record and fill the AMOUNT column with UN PAYMENT AMT in 3rd panel :

If UN PAYMENT AMT<0, auto PSL record whose LEDGER TYPE = RECEIVE

If UN PAYMENT AMT >0, auto a PSL record whose LEDGER TYPE = PAID

 

so please remove currently logic if sign of UN PAYMENT AMT is different from sign of PSL in the first panel, the amt will be auto empty.

this is the special case, when UN PAYMENT AMT sign is different from sign of PSL AMT in the 1st panel.

update amt in phy_trade table

update inv_amt, payment_amt, inv_qty in phy trade

when

  1. delete assigned psl rows accordingly

  2. un-assigned or assign contract to psl rows accordingly

  3. if payment_amt empty, do not save as 0, save as null

test:

  1. assign contract to psl and check phy trade table the amts are updated accordingly

  2. un-assign contract from psl and check phy trade the amts are updated accordingly

  3. delete psl and check related phy trade amts are updated accordingly.