Deferred COGS in Oracle E-Business Suite R12 (With SQL
Queries)
1. What is Deferred COGS?
Deferred COGS represents the cost of goods shipped to the customer but not yet invoiced. Oracle EBS R12 posts
the cost to Deferred COGS at shipment and transfers it to actual COGS only after invoice creation.
2. Accounting Flow
• Ship Confirm Entry: Dr Deferred COGS / Cr Inventory Valuation
• Invoice Entry: Dr COGS / Cr Deferred COGS
3. Deferred COGS Pending Report (SQL)
Use this query to find sales orders whose Deferred COGS is not yet cleared:
SELECT
ooh.order_number,
ool.line_number,
msi.segment1 item_code,
SUM(NVL(cdl.accounted_dr,0) - NVL(cdl.accounted_cr,0)) deferred_cogs_amount
FROM
oe_order_headers_all ooh,
oe_order_lines_all ool,
mtl_system_items_b msi,
cst_cost_distribution_lines cdl
WHERE
ooh.header_id = ool.header_id
AND ool.inventory_item_id = msi.inventory_item_id
AND msi.organization_id = ool.ship_from_org_id
AND cdl.source_line_id = ool.line_id
AND cdl.accounting_line_type = 'Deferred COGS'
GROUP BY
ooh.order_number,
ool.line_number,
msi.segment1
HAVING
SUM(NVL(cdl.accounted_dr,0) - NVL(cdl.accounted_cr,0)) <> 0;
4. Deferred COGS vs Actual COGS (GL Reconciliation SQL)
SELECT
gcc.concatenated_segments account,
SUM(NVL(xal.accounted_dr,0) - NVL(xal.accounted_cr,0)) amount
FROM
xla_ae_headers xah,
xla_ae_lines xal,
gl_code_combinations gcc
WHERE
xah.ae_header_id = xal.ae_header_id
AND xal.code_combination_id = gcc.code_combination_id
AND xah.application_id = 707
AND gcc.concatenated_segments LIKE '%COGS%'
GROUP BY
gcc.concatenated_segments;
5. Check Uncosted Transactions (SQL)
SELECT
transaction_id,
inventory_item_id,
costed_flag
FROM
mtl_material_transactions
WHERE
costed_flag <> 'Y';
6. Interview One-Liners
• Deferred COGS is booked at ship confirmation, not at invoice.
• Deferred COGS is cleared only after AR invoice creation.
• Deferred COGS balance represents shipped but uninvoiced inventory.
— End of Document —