{"id":17661,"date":"2026-01-27T08:21:58","date_gmt":"2026-01-27T08:21:58","guid":{"rendered":"https:\/\/tenthplanet.in\/idempiere\/?p=17661"},"modified":"2026-07-07T08:03:39","modified_gmt":"2026-07-07T08:03:39","slug":"how-cost-queue-works-in-idempiere","status":"publish","type":"post","link":"https:\/\/tenthplanet.in\/idempiere\/how-cost-queue-works-in-idempiere\/","title":{"rendered":"How Cost Queue Works in iDempiere"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Cost Queue<\/strong> determines which inventory cost is consumed next during issues or shipments. It holds actual receipt layers waiting to be used and acts as the operational bridge between inventory quantities and costing logic, enabling FIFO and Average PO costing to work correctly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What the Cost Queue Represents<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each Cost Queue record represents <strong>real stock received at a specific cost and date<\/strong>. These are not calculated estimates or forecasts. They are created only from completed and posted transactions and remain available until their quantity is fully consumed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because of this, the Cost Queue acts as the operational bridge between <strong>physical stock movement<\/strong> and <strong>financial costing logic<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"654\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue.png\" alt=\"\" class=\"wp-image-17680\" title=\"\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-300x192.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-768x491.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each record in the queue is a real, auditable inventory layer waiting to be consumed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Cost Queue Is Created<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cost Queue entries are created automatically whenever inventory value increases. Users never create or edit these records manually. The system generates them in response to inbound or value-increasing events.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typical triggers include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Completion of material receipts or inbound movements<\/li>\n\n\n\n<li>Inventory increases<\/li>\n\n\n\n<li>Cost adjustments that raise stock value<\/li>\n\n\n\n<li>Capitalization of landed costs such as freight<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each inbound event creates a new queue row containing the received quantity, unit cost, remaining quantity, and source document reference.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Relationship Between Cost Queue and Costing Method<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Cost Queue behaves differently depending on the active costing method defined in the Accounting Schema.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>FIFO<\/strong>, the queue is consumed strictly in order (oldest first)<\/li>\n\n\n\n<li>In <strong>Average PO<\/strong>, the queue still exists but is used to recalculate weighted averages<\/li>\n\n\n\n<li>In <strong>Standard Cost<\/strong>, the queue is largely informational unless variances are posted<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"484\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-1.png\" alt=\"\" class=\"wp-image-17681\" title=\"\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-1.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-1-300x142.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-1-768x363.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The queue adapts automatically based on this configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Cost Queue Is Consumed<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cost Queue entries are reduced when inventory leaves the system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This occurs when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Shipment is completed<\/li>\n\n\n\n<li>Inventory is issued<\/li>\n\n\n\n<li>Goods are consumed in production<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"382\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-2.png\" alt=\"\" class=\"wp-image-17682\" title=\"\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-2.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-2-300x112.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CostQueue-2-768x287.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When stock is issued, iDempiere reads the Cost Queue, selects the appropriate layer, and reduces its remaining quantity. If one layer is exhausted, the system moves to the next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guarantees traceable, rule-based cost consumption.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Understanding Cost Queue Fields<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each row in the Cost Queue explains both <em>where the cost came from<\/em> and <em>what remains<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key fields include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Current Quantity<\/strong> \u2013 original inbound quantity<\/li>\n\n\n\n<li><strong>Current Cost Price<\/strong> \u2013 unit cost for that layer<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These fields allow users to trace shipment costs back to specific purchase events.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Cost Queue Matters for Shipments<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When a shipment is posted, iDempiere does <strong>not<\/strong> look at:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sales Order price<\/li>\n\n\n\n<li>Invoice value<\/li>\n\n\n\n<li>Discounted selling amount<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It looks only at the Cost Queue. This explains why shipment accounting amounts often differ from sales totals. The system is consuming inventory cost, not revenue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cost Queue vs Product Cost<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Product Cost provides a summarized view of the current unit cost. The Cost Queue provides the detailed explanation behind that value. Both are required to fully understand inventory valuation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Product Cost answers <em>\u201cWhat is the cost now?\u201d<\/em><br>Cost Queue answers <em>\u201cWhich exact cost is being used, and why?\u201d<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both views are required for full costing transparency.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Business Value of Cost Queue<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Cost Queue ensures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Accurate cost traceability<\/li>\n\n\n\n<li>Audit-ready inventory valuation<\/li>\n\n\n\n<li>Correct FIFO and Average PO behavior<\/li>\n\n\n\n<li>Clear explanation for cost variances<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It eliminates \u201cblack box\u201d costing by exposing every cost layer in the system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Outcome<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After understanding Cost Queue:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shipment posting amounts become predictable<\/li>\n\n\n\n<li>Inventory consumption is fully traceable<\/li>\n\n\n\n<li>Cost discrepancies can be explained without assumptions<\/li>\n\n\n\n<li>Audits can trace costs back to original purchases<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cost Queue turns inventory costing from a calculation into a visible, logical flow.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Cost Queue determines which inventory cost is consumed next during issues or shipments. It holds actual receipt layers waiting [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-17661","post","type-post","status-publish","format-standard","hentry","category-master"],"acf":[],"_links":{"self":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/17661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/comments?post=17661"}],"version-history":[{"count":1,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/17661\/revisions"}],"predecessor-version":[{"id":19921,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/17661\/revisions\/19921"}],"wp:attachment":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/media?parent=17661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/categories?post=17661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/tags?post=17661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}