R12 Order Management: Revenue-COGS Matching Part I

By Jag - September 02, 2012

It is a relief to see this much awaited functionality. We heard our accounting departments complaining about the period mismatches in for our COGS and Revenue accounting for one order. We ship an order on the last day of the month and COGS gets posted to this month, but if the invoice is created with next period’s GL date as the current AR period is closed by the time the order is invoiced. Now all that is changed. Revenue-COGS matching is a standard functionality now. In simple terms, this means, COGS for an order line will be recognized only if the revenue is recognized for that line making sure that the revenue and COGS are posted in the same month.
All of us have spent a lot of time working on COGS accounting workflow to achieve what we want for our clients/companies. In some cases we even customized Revenue accounting generation (avoiding auto accounting logic) by using ra_interface_distributions_all table. We had a handle on accounts generation in this process but not on the actual events of accounting recognition.
We all know this. When we ship the order and run the Interface Trip Stops program, inventory gets reduced and orders get updated to move forward in the workflow to the next activity. Interface Trip Stops program calls the OE_FLEX_COGS_PUB to generate the COGS account as per design. This gets passed on to the mtl_material_transactions table in the distribution_account column. When Cost Manager runs, distribution_account from mtl_material_transactions is picked up to generate accounting as shown.
                                Cr Inventory Material account $100
                                            Dr COGS Account $100
The role of COGS workflow is not changed. It is still the same which generates the account of our choice per workflow design. It still passes the generated account to the mtl_material_transactions table into the distribution_account column. But what changed in R12 is accounting. In order to match Revenue with COGS accounting in terms of timing, COGS account cannot be used at the time shipping. Instead revenue recognition process of the invoice for that order line should generate COGS accounting.
To achieve this, a new account called Deferred COGS account is introduced at the inventory organization parameters level. So when the order shipped instead of the above entries the entry will be
                       Cr Inventory Material account             $100
                                    Dr Deferred COGS Account    $100
When you invoice is this order line, if you have no revenue recognition policies or specialized accounting rules, revenue should be instantly recognized (upon running revenue recognition program).
After revenue is recognized, the following programs need to be run to relieve deferred COGS value and debit actual COGS account.
Record Order Management Transactions: This program collects all the transactions that belong to transaction types Sales order issue and Logical Sales Order Issue which are not costed and the order line is invoiceable. The source table is mtl_material_transactions. This program inserts rows into two tables: cst_cogs_events and cst_revenue_cogs_match_lines. This program is not necessary to run. When not run, Cost Manager will insert rows into these tables. So from implementation considerations, this program is not required to be run.
Collect Revenue Recognition Information: This program collects invoice line information of the order line after the revenue is recognized. The source tables are ra_customer_trx_lines_all and ra_cust_trx_line_gl_dist_all. It will check the percentage of the revenue recognized (we can recognize revenue partially for a specific order line based on accounting rule or contingency rules) and inserts that information into this table: cst_revenue_recognition_lines. Also the table cst_revenue_cogs_control table is updated with the latest run date with high date of this parameter, which is used in the next run of the same program.
Generate COGS Recognition Events: The role of this program is to record a logical material transaction, which is used to create final COGS entry. This program takes information from the above tables and creates one logical inventory transaction in mtl_material_transactions with a new transaction type called COGS Recognition. In the same program these transactions will be costed (not by the cost manager) creating the following accounting entries. The COGS account in this entry is taken from the distribution_account in mtl_material_transactions table (which was generated earlier by COGS workflow).
                                Cr Deferred account                     $100
                                              Dr COGS Account             $100
  • Share:

You Might Also Like

0 comments