Recently , actually not recently but quite some time back one of Reader asked about how to recognize the COGS in past , I have suggested workaround by means of creation of database trigger ,and solution work for him ( You can read about that at Past Dated COGS ) , lately he asked me question about the how Oracle Apps handle COGS for the line that we do ship but not INVOICE , like ATO/PTO etc.
COGS applies to Shippable lines from Inventory and, REVENUE occurs on lines that are invoiced by AR. In the case of ATO and PTO, the lines that are shipped are not necessarily the same lines that are invoiced. Upon Revenue recognition of an invoicable line, AR will notify Costing. Costing follows the below strategy in revenue/COGS matching for configured items (* items)
Revenue / COGS matching for configured items is achieved most logically by matching a shipped line (line with cost) to the Invoicable line that it most closely relates to. If the shipped line is itself invoiced, then the revenue recognition schedule for that line should drive COGS recognition. If the shipped line is not invoiced, COGS for that line should be driven by the revenue recognition for the nearest invoiced line that it rolls up to.