Basic Customizing for Stock Investments – Part 2
This is the first part is available here
Assign Update Types for Valuation
FSCM-TRM-TM-General Settings-Accounting-Key Date Valuation-Update Types-Assign Update Types for Valuation
Derived Business Transactions Update Types and Usages
FSCM-TRM-TM-General Settings-Accounting-Derived Business Transactions-Update Types-Define Update Types and Assign Usages
Assigned Update Types for Derived Business Transactions
FSCM-TRM-TM-General Settings-Accounting-Derived Business Transactions-Assigned Update Types for Derived Business Transactions
Define Account Assignment References
FSCM-TRM-TM-General Settings-Accounting-Link to Other Accounting Components-Define Account Assignment References
Because we have a difference in accounting treatment for the price gains between our 2 security classifications, we need 2 account assignment references.
Define Account Assignment Reference Determination
FSCM-TRM-TM-General Settings-Accounting-Link to Other Accounting Components-Define Account Assignment Reference Determination (Securities/Listed Derivatives)
Indicate Update Types as Relevant to Posting
FSCM-TRM-TM-General Settings-Accounting-Link to Other Accounting Components-Indicate Update Types as Relevant to Posting
All of the update types created should be made relevant to posting except for DBN_E001 and DBN_E002 which TRM uses internally when calculating gains and losses.
Define Account Determination
FSCM-TRM-TM-General Settings-Accounting-Link to Other Accounting Components-Define Account Determination
Account Symbols
Business Definition | Number | SAP Definition |
Equity Investment | 1 | Position |
Cash | 3 | Bank Clearing |
Dividend Income | 4.1.4 | Dividend Income |
Unrealized FX Gain | 4.9.4.2 | Increase FX |
Unrealized FX Loss | 4.9.3.2 | Decrease FX |
Realized FX Gain | 4.9.2.1 | Realized Gain FX |
Realized FX Loss | 4.9.1.1 | Realized Loss FX |
Unrealized Price Gain | 4.9.4.4 | Increase Titel |
Unrealized Price Loss | 4.9.3.4 | Decrease Titel |
Realized Price Gain | 4.9.2.2 | Realized Gain Titel |
Realized Price Loss | 4.9.1.2 | Realized Loss Titel |
Technical Clearing | 9.1.3 | Technical Clearing |
OCI – Unrealized Price Gain | 6.1.2.1 | Valuation Titel (positive) |
OCI – Unrealized Price Loss | 6.1.2.2 | Valuation Titel (negative) |
Commission Fee | 4.2.2 | Provision/Fee |
Posting Specifications
Posting Spec | Description | Debit Symbol | Credit Symbol |
11100 | Share Purchase | 1 | 3 |
11200 | Share Sale | 3 | 1 |
11300 | Position to Tech Clearing | 1 | 9.1.3 |
11400 | Tech Clearing to Position | 9.1.3 | 1 |
11500 | Tech Clearing to Bank Clearing | 9.1.3 | 3 |
11600 | Bank Clearing to Tech Clearing | 3 | 9.1.3 |
12100 | Realized Price Gain | 1 | 4.9.2.2 |
12200 | Realized Price Loss | 4.9.1.2 | 1 |
12230 | Price loss from unrealized to realized | 4.9.1.2 | 4.9.3.4 |
12300 | Realized FX Gain | 1 | 4.9.2.1 |
12400 | Realized FX Loss | 4.9.1.1 | 1 |
13200 | Dividend Received | 3 | 4.1.4 |
13500 | Tech Clearing to Dividend Income | 9.1.3 | 4.1.4 |
14300 | Fee Payment | 4.2.2 | 3 |
15100 | Price Gain (P/L) | 1 | 4.9.4.4 |
15200 | Reset Price Gain (P/L) | 4.9.4.4 | 1 |
15230 | Price gain from unrealized to realized | 4.9.4.4 | 4.9.2.2 |
15300 | Balance Sheet Revaluation (gain) | 1 | 4.9.4.2 |
15400 | Reset FX Gain | 4.9.4.2 | 1 |
15430 | Move FX gain from unrealized to realized | 4.9.4.2 | 4.9.2.1 |
15500 | Price Loss (P/L) | 4.9.3.4 | 1 |
15600 | Reset Price Loss (P/L) | 1 | 4.9.3.4 |
15700 | Balance Sheet Revaluation (loss) | 4.9.3.2 | 1 |
15730 | Move FX loss from unrealized to realized | 4.9.1.1 | 4.9.3.2 |
15800 | Reset FX Loss | 1 | 4.9.3.2 |
22310 | Move Realized Security Gain from OCI to P/L | 6.1.2.1 | 4.9.2.2 |
33610 | Move Realized Security Loss from P/L to OCI | 4.9.1.2 | 6.1.2.2 |
23100 | Price Gain (OCI) | 1 | 6.1.2.1 |
23150 | Reset Price Gain (OCI) | 6.1.2.1 | 1 |
23200 | Price Loss (OCI) | 6.1.2.2 | 1 |
23250 | Reset Price Loss (OCI) | 1 | 6.1.2.2 |
Assignment of Update Types to Posting Specs
Update Type | Posting Specification |
SE1110 | 11100 |
SE2210 | 11200 |
SE3303 | 11100 |
SE3313 | 14300 |
SAM5113 | 13200 |
SAM8114 | 13500 |
SAM8115 | 11300 |
RHT0003 | 11300 |
RHT0004 | 11400 |
RHT0005 | 11600 |
RHT0006 | 11500 |
CA0001 | No Posting Spec Required |
CA0002 | No Posting Spec Required |
CA0003 | No Posting Spec Required |
DBN_B001 | 12100 |
DBN_B002 | 12100 |
DBN_B003 | 12200 |
DBN_B004 | 12200 |
DBN_B005 | 12300 |
DBN_B006 | 12300 |
DBN_B007 | 12400 |
DBN_B008 | 12400 |
DBN_E001 | Not relevant to posting |
DBN_E002 | Not relevant to posting |
DBN_E003 | 15230 |
DBN_E004 | 12230 |
DBN_E005 | 15430 |
DBN_E006 | 15730 |
DBNOE003 | 22310 |
DBNOE004 | 22610 |
NV200 | 15100 |
NV201 | 15500 |
NV202 | 15300 |
NV203 | 15700 |
NV250 | 15200 |
NV251 | 15600 |
NV252 | 15400 |
NV253 | 15800 |
NV200OCI | 23100 |
NV201OCI | 23200 |
NV250OCI | 23150 |
NV251OCI | 23250 |
Assignment of GL account to Account Symbol
Number | AAR | GL Account |
1 | STOUSGHFT | 11310100 |
3 | STOUSGHFT | +++++++++5 |
4.2.2 | STOUSGHFT | 73410200 |
4.1.4 | STOUSGHFT | 73410100 |
4.9.1.1 | STOUSGHFT | 73310603 |
4.9.2.1 | STOUSGHFT | 73310603 |
4.9.1.2 | STOUSGHFT | 73210201 |
4.9.2.2 | STOUSGHFT | 73210201 |
4.9.3.2 | STOUSGHFT | 73310503 |
4.9.4.2 | STOUSGHFT | 73310503 |
4.9.3.4 | STOUSGHFT | 73210101 |
4.9.4.4 | STOUSGHFT | 73210101 |
9.1.3 | STOUSGHFT | 11119905 |
1 | STOUSGAFS | 11310100 |
3 | STOUSGAFS | +++++++++5 |
4.2.2 | STOUSGAFS | 73410200 |
4.1.4 | STOUSGAFS | 73410100 |
4.9.1.1 | STOUSGAFS | 73310603 |
4.9.2.1 | STOUSGAFS | 73310603 |
4.9.1.2 | STOUSGAFS | 73210201 |
4.9.2.2 | STOUSGAFS | 73210201 |
4.9.3.2 | STOUSGAFS | 73310503 |
4.9.4.2 | STOUSGAFS | 73310503 |
9.1.3 | STOUSGAFS | 11119905 |
6.1.2.1 | STOUSGAFS | 32320100 |
6.1.2.2 | STOUSGAFS | 32320100 |
Trying it out
For our demonstration, we will use IBM as the issuer and Bank of Montreal as our counterparty and depository bank. Use transaction code BP to enable them in these roles with your company code. The next step is to create a security account. Use transaction TRS_SEC_ACC to create the account.
We also need to create the security we will be trading using FWZZ
At this point, we are ready to enter our first transaction in FTR_CREATE. In the initial screen, we have to specify our company code (1001), transaction type (100-purchase), our counterparty (BMO) and the ID number (IBM_CS).
It is possible to add the commission (expensed or capitalized) directly in the deal by using the “other flows” tab. After saving the deal, we have to settle it in FTR_EDIT as the processing category we selected requires settlement. Once the deal is settled, use TBB1 to post the purchase transaction. Let’s add a manual fee with FWBS.
To be able to fair value our position at month end, we need a closing price. You can use FW17 to enter a price for the security class. Remember that our valuation step requires a closing price. Because we did not configure reset flows for valuation, we need to use the “Mid-Year Valuation with Reset” option in TPM1. Next, let’s pretend IBM declares a dividend of 25 cents per share. We first need to enter a dividend condition on the security class using FWZZ.
Let’s also pretend that we participate in IBM’s DRIP but that they don’t support fractional share ownership. In order to capitalize the dividend, we have to use FWZE and enter the amount and number of shares to capitalize.
Whatever amount is left (3$ in our example) will be expected in the bank sub account. The next business process we will cover is Corporate Actions. Let’s assume IBM announces a 2 for 1 split effective Feb 12th. We must first enter the action using FWK0. We must also activate the action before we can post.
To make the split effective in the sub-ledger, we must post it with FWKB. If you look at our position in TPM12 after posting, the number of units has doubled but the purchase value has not changed.
To finalize this example, let’s sell all of our shares for a big profit. Once the deal is settled and posted with TBB1, we end up with the following entries in the posting journal (TPM20)
Thanks for reading. I hope you have enjoyed this post and that you learned a thing or two in the process.
Hi Mathieu,
very nice document .
Regards,
Naidu
Exceptional Job matt...its awesome to have you in the forum.
Hi Matt,
Just want to understand few steps in the above post below are
1. Do we need to run and post every month valuation (TPM1) until the stock sales process?
2. For stock gain/loss do we use any special G/L like fair value adjustment account?
3. under one ID number if we purchase multiple stocks in different dates , All stocks can we show as one position in TPM12 Report?
Thanks
Prasad
Hi Prasad,
1. Yes, as long as you have a position, you run TPM1 to post the fair value and FX adjustments
2. It is possible to post your adjustments to a GL separate from your position if you want. In that case, you need to associate your update types to positing specification that hit that account symbol instead of "position". Using Post and Reset will also make that process work better as you'll be able to bring the account balances to 0 if the position is sold off.
3. as long as the purchases are made under the same valuation class. In our example we also had securities account as a differentiation. If all parameters are the same you are correct, TPM12 will show only 1 position.
Hello Matthieu
How do we calculate P&L for shares sold? I maintained in the customization node "Assign Consumption Sequence Procedure" FIFO method for my co code as below
After the above customization, my simulation results show me profit as per AVERAGE costing, and not as per FIFO
Is there some setting/simulation step missing?
Appreciate your help
Rgds
Sameer
Did you enable single position management in "Define and assign differentiations"? I unfortunately don't have the time to try it out right now but I believe this is a requirement for the consumption procedure to be taken into account as it will make SAP track the different purchases in different positions. Not having single position management enabled means SAP keeps track of only one qty/dollar value position hence the average cost P&L calculation on sales.
Hi Matt,
I have done below configuration for stock investments.
While doing valuation (TPM1) update types are not triggering properly and actual valuation not getting reset.Please request you to check the below configuration and advice any missing steps.
Business scenario: Monthly basis we run valuation and it supposed to be get reset the valuation for next month.
example scenario:
Market price:250.00 INR as on 31.01.2016
Market value: 625000.00
market price: 220.00 INR as on 28.02.2016
market price: 260.00 INR as on 31.03.2016
TPM1 (security write down as on 28.02.2016)
Security write up as on (31.03.2016)
What a brilliant piece of information this is.