This post introduces the Deferred Cost of Goods Sold (DCOGS) account functionality in Oracle® Cost Management release 12.0.0 and later. This enhancement directly matches the Cost of Goods Sold (COGS) to the revenue, which was not possible previously.
Introduction
In previous versions, the system expensed the value of goods shipped from inventory to COGS even though the shipment might not have earned the revenue. With this enhancement, the system puts the value of goods shipped from inventory in the DCOGS account.
The enhancement makes a change to synchronize the revenue and COGS per the recommendations of generally accepted accounting principles (GAAP). When the software recognizes a percentage of revenue, it moves a matching percentage of the value of goods shipped from inventory to the COGS account from the DCOGS account.
Accounting practice requires that you must recognize revenue and the associated COGS in the same accounting period. This enhancement automates matching the COGS for a sales order line to the revenue billed for that specific sales order line.
The deferral of COGS applies to the following elements:
- Sales orders of both pick-to-order (non-configurable) and assemble-to-order (configurable items).
- Sales orders from the customer-facing operating units. The new accounting flow introduced in version 11.5.10 could drop shipments from these orders.
- Return merchandise authorizations (RMA) that reference a sales order with a deferred COGS. The enhancement accounts for these RMAs by using the original sales order cost to maintain the latest COGS recognition percentage.
Note: If an RMA is tied to a sales order, the system accounts for the distribution of credits between DCOGS and the actual COGS to maintain the existing costing proportions. If an RMA has no sales order, there is no DCOGS.
Set up a DCOGS account
To set up a DCOGS account, navigate to Inventory -> Setup -> Organization -> Parameters -> Other Accounts.

If you upgrade from an older version, the system populates the DCOGS account with the COGS account if the organization parameter is null. You can change this if needed.
COGS data flow
The following image shows the COGS data flow:

The following sections describe how the enhancement handles various situations.
Sales order
The system makes the following changes when you issue a sales order:
-
Sets Cst_cogs_events.COGS_Percentage to
0
. -
Sets Cst_cogs_events.Mmt_Transaction_id to the transaction ID in the Mtl_Material_Transactions table for the sales order issue transaction.
-
Sets Cst_cogs_events.costed to Mtl_Material_Transactions.costed_flag, which is
NULL
when the sales order transaction is costed. -
Sets Cst_cogs_events.Event Type to
1
(where1
signifies Sales Order Issue). -
In the cst_revenue_cogs_match_lines table, the system populates the Deferred_COGS_Acct_id, COGS_Acct_id, Unit_cost, and Original_shipped_Qty columns.
Note: Oe_order_lines_all.Invoice_Interface_Status_Code = Yes
(where Yes
signifies a standard sales order and Not_Eligible
signifies
ship-only lines).
This section shows how the columns integrate the tables and ensure that the data flows seamlessly after entering the sales order and issuing the material.
Revenue recognition and accounting
Note: RA_CUST_TRX_LINE_GL_DIST_ALL.account_set_flag = N
(where
Y
signifies that revenue recognition is not performed and N
signifies that
revenue recognition is run).
After you run the process to collect revenue recognition, make the following changes to match costs and revenue:
-
Set cst_revenue_recognition_lines.potentially_unmatched_flag =
Y
. -
Set cst_revenue_recognition_lines.revenue_recognition_percent =
1
(where1
signifies 100%).
COGS recognition
After you run the revenue recognition program, the system makes the following changes:
-
Sets cst_cogs_events.COGS_percentage to
1
(where1
signifies 100%). -
Sets cst_cogs_events.mmt_transaction_id to the transaction ID in the Mtl_Material_Transactions table for the COGS recognition transaction.
-
Sets cst_cogs_events.Event Type to
3
(where3
signifies COGS recognition). -
Sets cst_revenue_recognition_lines.potentially_unmatched_flag to
Null
. This indicates successful generation of the recognition event and the transaction.
Conclusion
Hopefully, you found the concept of DCOGS accounting and the backend integration between the tables valuable.
Learn more about Databases.
Visit www.rackspace.com and click Sales Chat to start a conversation.
Use the Feedback tab to make any comments or ask questions.