Cost Management and Costing Methods

Level: Advanced Module: Financial Management 16 min read Lesson 37 of 47

Overview

  • What you’ll learn:
    • How iDempiere’s costing framework uses Cost Types, Cost Elements, and the M_Cost table to track product costs, and how different costing methods (Standard, Average, FIFO, LIFO, Last PO, Last Invoice) calculate cost differently
    • How to configure costing levels, perform cost adjustments, handle landed costs, and roll up manufactured product costs through BOM costing
    • How costing decisions affect inventory valuation, cost of goods sold, and financial statements, with practical examples comparing methods
  • Prerequisites: Lessons 35-36 — Manufacturing and Distribution (understanding of production cost flow and inventory management)
  • Estimated reading time: 25 minutes

Introduction

Every product in an ERP system has two identities: a physical one (what it is, where it is stored, how much is on hand) and a financial one (what it costs). The financial identity is governed by the costing method — the set of rules that determines how costs are assigned to inventory and how they flow to the income statement when goods are sold.

Costing is one of the most consequential configuration decisions in any ERP implementation. The method you choose affects your balance sheet (inventory valuation), your income statement (cost of goods sold), your tax obligations, and your ability to make informed pricing and production decisions. iDempiere supports multiple costing methods and provides a flexible framework for managing product costs across organizations, warehouses, and cost elements.

The Costing Framework

iDempiere’s costing architecture has three foundational structures: Cost Types, Cost Elements, and the M_Cost table that brings them together.

Cost Types (M_CostType)

A Cost Type represents a complete set of cost records for all products. Most implementations use a single cost type, but the system supports multiple cost types for parallel costing scenarios. For example:

  • Primary cost type: Uses Average Costing for day-to-day operations and financial reporting.
  • Secondary cost type: Uses Standard Costing for management reporting and variance analysis.

Each Accounting Schema (C_AcctSchema) is associated with a primary cost type that determines the costing method used for accounting entries. Additional cost types can maintain parallel cost calculations without affecting the general ledger.

Cost Elements (M_CostElement)

A Cost Element categorizes the type of cost being tracked. iDempiere distinguishes between several cost element types:

Cost Element Type Description Example
Material The direct material cost of the product Raw material purchase price, material component cost in a BOM
Labor Direct labor cost incurred in manufacturing Operator wages for production operations
Burden (Overhead) Indirect manufacturing costs allocated to products Machine depreciation, factory utilities, supervision
Outside Processing Cost of subcontracted operations Vendor charges for outsourced manufacturing steps
Landed Cost Additional costs incurred to bring goods to their final location Freight, customs duties, insurance, handling

Each material cost element is associated with a costing method — the algorithm used to calculate the cost for that element. The costing method is set on the cost element itself (for material-type elements) or derived from the accounting schema configuration.

The M_Cost Table

The M_Cost table is where all cost data converges. Each record in M_Cost represents the current cost of a specific product for a specific combination of:

  • AD_Client_ID / AD_Org_ID: The client and organization (depending on costing level).
  • M_Product_ID: The product.
  • M_CostType_ID: The cost type.
  • M_CostElement_ID: The cost element.
  • C_AcctSchema_ID: The accounting schema.
  • M_AttributeSetInstance_ID: The attribute set instance (for batch/lot-level costing).

Key fields in M_Cost include:

Field Description
CurrentCostPrice The current unit cost for this product/element combination
CurrentQty The current quantity on hand (used for average cost calculations)
CumulatedAmt The total cumulated cost amount (used for average cost: CumulatedAmt / CumulatedQty)
CumulatedQty The total cumulated quantity (running total for average calculation)
FutureCostPrice A planned future cost (used in standard cost updates)
IsCostFrozen Whether the cost is frozen (cannot be changed by transactions)

Costing Methods in Detail

Each costing method uses a different algorithm to determine the unit cost of a product. The choice of method affects both inventory valuation (balance sheet) and cost of goods sold (income statement).

Standard Costing

Under Standard Costing, each product is assigned a predetermined cost that remains fixed until deliberately changed. All inventory transactions are valued at the standard cost, and any difference between the actual cost and the standard cost is recorded as a variance.

How it works:

  • The administrator sets the standard cost in the M_Cost record (CurrentCostPrice).
  • When a product is received from a purchase at $10.50 but the standard cost is $10.00, inventory is debited at $10.00 and the $0.50 difference goes to a Purchase Price Variance account.
  • When goods are sold, COGS is always calculated at the standard cost.
  • Standard costs are periodically reviewed and updated (e.g., annually), with the FutureCostPrice field used to stage the new standard before it goes live.

Advantages: Simplifies cost accounting, enables variance analysis, provides stable product costs for pricing decisions.

Disadvantages: Requires disciplined maintenance of standards, variance accounts can accumulate large balances if standards are stale, does not reflect actual market costs in real time.

Average Costing (Weighted Average)

Average Costing recalculates the unit cost with every receipt transaction by dividing the total inventory value by the total inventory quantity.

How it works:

  • Starting position: 100 units at $10.00 each = $1,000 total value.
  • Receipt: 50 units at $11.00 each = $550.
  • New average: ($1,000 + $550) / (100 + 50) = $1,550 / 150 = $10.33 per unit.
  • All subsequent issues (sales, manufacturing) use $10.33 until the next receipt changes the average.

Advantages: Smooths out price fluctuations, reflects actual costs without manual maintenance, widely accepted for financial reporting.

Disadvantages: Cost per unit changes with every receipt (which can complicate margin analysis), does not track costs by specific purchase lot.

FIFO (First In, First Out)

FIFO assumes that the oldest inventory is sold first. Cost layers are maintained for each receipt, and issues consume the oldest layer first.

How it works:

  • Layer 1: 100 units at $10.00 (received January 5)
  • Layer 2: 50 units at $11.00 (received January 20)
  • Sale of 120 units: 100 units costed at $10.00 (exhausting Layer 1) + 20 units costed at $11.00 (from Layer 2) = COGS of $1,220.
  • Remaining inventory: 30 units at $11.00 = $330.

Advantages: Inventory on the balance sheet reflects the most recent (and presumably most relevant) costs. Matches physical flow for perishable goods.

Disadvantages: In periods of rising prices, FIFO reports higher profits (older, cheaper costs hit COGS) which increases tax liability. Requires tracking cost layers.

LIFO (Last In, First Out)

LIFO assumes that the most recently received inventory is sold first. It is the opposite of FIFO.

How it works:

  • Layer 1: 100 units at $10.00 (received January 5)
  • Layer 2: 50 units at $11.00 (received January 20)
  • Sale of 120 units: 50 units costed at $11.00 (from Layer 2) + 70 units costed at $10.00 (from Layer 1) = COGS of $1,250.
  • Remaining inventory: 30 units at $10.00 = $300.

Advantages: In periods of rising prices, LIFO reports higher COGS and lower profits, reducing tax liability. Better matches current costs to current revenues.

Disadvantages: Inventory on the balance sheet reflects old costs that may not represent current market value. Not permitted under IFRS (only under US GAAP). Requires tracking cost layers.

Note: LIFO is prohibited under International Financial Reporting Standards (IFRS) and is primarily used in jurisdictions following US GAAP.

Last PO (Last Purchase Order) Cost

Last PO sets the product cost to the price on the most recent Purchase Order for that product.

How it works:

  • A Purchase Order is completed with a unit price of $10.75 for Product A.
  • The M_Cost record for Product A is updated: CurrentCostPrice = $10.75.
  • All subsequent inventory valuations and COGS calculations use $10.75 until a newer PO is completed.

Advantages: Simple to understand, automatically reflects the latest negotiated purchase price.

Disadvantages: A single PO can change the cost for the entire inventory balance, which may not reflect the actual cost of goods on hand. Sensitive to anomalous PO prices.

Last Invoice Cost

Similar to Last PO, but the cost is updated when the Vendor Invoice (rather than the Purchase Order) is matched and completed.

How it works:

  • A Vendor Invoice is completed with a unit price of $10.80 for Product A.
  • The M_Cost record is updated: CurrentCostPrice = $10.80.

Advantages: Reflects the actual invoiced cost (which may differ from the PO price due to adjustments, discounts, or surcharges).

Disadvantages: Same sensitivity issues as Last PO. Timing depends on when invoices are processed.

Cost Adjustments and Revaluation

After initial cost capture, several mechanisms allow costs to be adjusted.

Manual Cost Adjustment

Administrators can directly update the CurrentCostPrice in the M_Cost record. This is commonly used for:

  • Setting initial standard costs for new products.
  • Updating standard costs during the annual cost roll.
  • Correcting erroneous cost entries.

Cost Revaluation

When the costing method changes, or when standard costs are updated, existing inventory must be revalued. The revaluation process calculates the difference between the old and new cost for the current on-hand quantity and generates an accounting entry:

  • If new cost is higher: Debit Inventory, Credit Inventory Revaluation (gain).
  • If new cost is lower: Debit Inventory Revaluation (loss), Credit Inventory.

The IsCostFrozen flag on the M_Cost record can be set to prevent automatic cost updates from transactions. This is useful when you want to lock in a cost for reporting purposes while allowing transactions to continue at the frozen cost value.

Landed Costs (C_LandedCost)

The purchase price of a product rarely represents its true cost. Freight charges, customs duties, insurance premiums, brokerage fees, and handling charges all contribute to the landed cost — the total cost of getting the product from the supplier to your warehouse.

How Landed Costs Work in iDempiere

  1. Receive the goods: A Material Receipt is completed, recording the initial product cost based on the PO price.
  2. Receive the landed cost invoice: A separate Vendor Invoice is created for the freight, customs, or other charges. On this invoice, you define a Landed Cost allocation.
  3. Allocate the cost: The landed cost is distributed across the products on one or more Material Receipts using a distribution method:
    • By Quantity: Distribute proportionally based on the quantity received on each line.
    • By Value: Distribute proportionally based on the value (cost x quantity) of each receipt line.
    • By Weight: Distribute proportionally based on the weight of each receipt line.
    • By Volume: Distribute proportionally based on the volume of each receipt line.
  4. Update product cost: The allocated landed cost is added to the product’s cost. Depending on the costing method, this may adjust the average cost, create a cost layer adjustment, or be posted to a separate landed cost element.

Landed Cost Accounting

When the landed cost allocation is processed, iDempiere generates accounting entries that debit the product’s inventory account and credit the landed cost clearing account. This ensures that the balance sheet reflects the true cost of inventory, including all costs incurred to acquire and position it.

Cost Roll-Up for Manufactured Items

For products that are manufactured rather than purchased, the cost is not determined by a purchase price — it is calculated by rolling up the costs of all components and operations in the Bill of Materials and Manufacturing Workflow.

BOM Costing Process

The cost roll-up calculates the manufactured product’s cost by summing:

  1. Material cost: For each BOM component, multiply the component’s unit cost by the required quantity (adjusted for scrap percentage). Sum all component costs.
  2. Labor cost: For each workflow operation, multiply the operation’s setup time and run time by the resource’s labor rate. Sum all operation labor costs.
  3. Overhead cost: For each workflow operation, calculate the overhead based on the resource’s overhead rate (which may be a rate per unit, per hour, or a percentage of labor). Sum all operation overhead costs.
  4. Outside processing cost: For subcontracted operations, include the planned cost from the external resource.

The total is the standard manufactured cost of the product. This rolled-up cost is stored in the M_Cost record for the finished product and is used for inventory valuation when the manufactured product is received from a Manufacturing Order.

Multi-Level Roll-Up

If a BOM component is itself a manufactured product with its own BOM, the roll-up must process from the bottom of the product structure upward. The lowest-level components (raw materials) are costed first, then sub-assemblies, then the final product. iDempiere’s cost roll-up process handles this multi-level calculation automatically using the product’s Low Level Code — a value that indicates the deepest level at which a product appears in any BOM.

Material Cost vs. Overhead Allocation

Understanding the distinction between direct and indirect costs is essential for accurate product costing.

Direct Material Cost

Direct materials are the components physically incorporated into the finished product. Their cost is directly traceable to the product through the BOM. Direct material cost is typically the largest component of total product cost in most manufacturing environments.

Direct Labor Cost

Direct labor is the work performed directly on the product during manufacturing. It is tracked through the Manufacturing Workflow operations and reported via Activity Control. Like materials, direct labor is traceable to specific products.

Overhead (Indirect) Costs

Overhead costs cannot be directly traced to individual products — they support the manufacturing process as a whole. Examples include factory rent, utilities, equipment depreciation, quality department salaries, and maintenance costs. These must be allocated to products using a chosen allocation base:

  • Per machine hour: Allocate overhead based on the machine time consumed by each product.
  • Per labor hour: Allocate based on direct labor hours.
  • Percentage of material cost: Apply overhead as a percentage of the direct material cost.
  • Per unit produced: A flat overhead charge per unit.

In iDempiere, overhead allocation is configured through the resource cost rates and the Burden cost element. The Manufacturing Workflow’s resource assignments determine how overhead is applied to each product based on the operations it undergoes.

Costing Level

The costing level determines the granularity at which product costs are maintained. This is configured on the Accounting Schema and can be overridden per product category.

Client Level

A single cost record per product across the entire client. All organizations share the same product cost. This is the simplest approach and is appropriate when all locations purchase from the same suppliers at the same prices.

Organization Level

Separate cost records per product per organization. Each organization can have a different cost for the same product, reflecting local purchasing conditions, different suppliers, or regional price variations. This is the most common setting for multi-organization deployments.

Batch/Lot Level

Separate cost records per product per attribute set instance (lot or batch). This is the most granular level and is required for true FIFO/LIFO costing, where each receipt lot maintains its own cost layer. It is also useful in industries where batch-specific costs must be tracked for regulatory or quality reasons (pharmaceuticals, food, chemicals).

Cost Frozen vs. Dynamic

The IsCostFrozen flag on the M_Cost record controls whether the cost is updated automatically by transactions:

  • Dynamic (not frozen): Every qualifying transaction (receipt, invoice match, landed cost allocation) recalculates the product cost. This is the default behavior and is appropriate for Average, FIFO, LIFO, Last PO, and Last Invoice methods.
  • Frozen: Transactions are valued at the frozen cost but do not change it. This is typically used with Standard Costing — the standard cost is frozen, and variances are captured in separate accounts. It can also be used temporarily during period-end closing to prevent cost changes while financial reports are being prepared.

Practical Examples Comparing Costing Methods

Consider a product with the following transactions during January:

Date Transaction Qty Unit Price
Jan 2 Opening inventory 100 $10.00
Jan 10 Purchase receipt 50 $11.00
Jan 15 Sale 80 (issue)
Jan 25 Purchase receipt 60 $10.50
Jan 28 Sale 70 (issue)

Standard Costing (Standard = $10.00)

  • Jan 15 sale: 80 x $10.00 = $800 COGS. Jan 10 receipt variance: 50 x ($11.00 – $10.00) = $50 unfavorable.
  • Jan 28 sale: 70 x $10.00 = $700 COGS. Jan 25 receipt variance: 60 x ($10.50 – $10.00) = $30 unfavorable.
  • Total COGS: $1,500. Ending inventory: 60 units x $10.00 = $600. Total variance: $80.

Average Costing

  • After Jan 10 receipt: (100 x $10.00 + 50 x $11.00) / 150 = $10.33.
  • Jan 15 sale: 80 x $10.33 = $826.67 COGS. Remaining: 70 units, $723.33 value.
  • After Jan 25 receipt: ($723.33 + 60 x $10.50) / 130 = $1,353.33 / 130 = $10.41.
  • Jan 28 sale: 70 x $10.41 = $728.72 COGS. Remaining: 60 units.
  • Total COGS: $1,555.39. Ending inventory: 60 units x $10.41 = $624.61.

FIFO

  • Jan 15 sale (80 units): 80 from Layer 1 (100 @ $10.00) = $800. Layer 1 remainder: 20 @ $10.00.
  • Jan 28 sale (70 units): 20 from Layer 1 @ $10.00 ($200) + 50 from Layer 2 @ $11.00 ($550) = $750.
  • Total COGS: $1,550. Ending inventory: 60 units @ $10.50 = $630.

LIFO

  • Jan 15 sale (80 units): 50 from Layer 2 @ $11.00 ($550) + 30 from Layer 1 @ $10.00 ($300) = $850.
  • Jan 28 sale (70 units): 60 from Layer 3 @ $10.50 ($630) + 10 from Layer 1 @ $10.00 ($100) = $730.
  • Total COGS: $1,580. Ending inventory: 60 units @ $10.00 = $600.

Impact Comparison

Method Total COGS Ending Inventory Gross Profit Impact
Standard ($10.00) $1,500 + $80 variance $600 Highest reported profit (before variance)
Average $1,555 $625 Moderate
FIFO $1,550 $630 Higher profit (older costs in COGS)
LIFO $1,580 $600 Lower profit (newer costs in COGS)

Key Takeaways

  • iDempiere’s costing framework is built on three pillars: Cost Types (sets of cost data), Cost Elements (categories of cost like material, labor, overhead), and the M_Cost table that stores the actual cost records for each product/element/schema combination.
  • Standard Costing uses predetermined costs with variances captured separately; Average Costing recalculates with each receipt; FIFO and LIFO maintain cost layers consumed in chronological or reverse order; Last PO and Last Invoice use the most recent transaction price.
  • Landed costs (freight, duties, insurance) are allocated to products from separate vendor invoices using quantity, value, weight, or volume distribution methods, ensuring the balance sheet reflects the true acquisition cost.
  • Cost roll-up for manufactured items sums material, labor, overhead, and outside processing costs through the BOM and workflow structure, with multi-level roll-up handling sub-assemblies automatically.
  • The costing level (Client, Organization, Batch/Lot) determines the granularity of cost tracking, and the IsCostFrozen flag controls whether transactions automatically update costs or capture variances.
  • The choice of costing method has a direct and measurable impact on reported COGS, inventory valuation, gross profit, and tax liability — as demonstrated by the comparative example where the same transactions produce different financial outcomes under each method.

What’s Next

The next lesson covers Multi-Currency and Multi-Organization Accounting — how iDempiere handles transactions in multiple currencies, performs currency conversion, calculates unrealized gains and losses, manages inter-organization transactions, and supports financial consolidation across a multi-company structure.

繁體中文翻譯

概述

  • 您將學到:
    • iDempiere 的成本框架如何使用成本類型、成本要素和 M_Cost 資料表來追蹤產品成本,以及不同的成本計算方法(標準、平均、先進先出、後進先出、最後採購單、最後發票)如何以不同方式計算成本
    • 如何配置成本層級、執行成本調整、處理到岸成本,以及透過 BOM 成本計算來彙總製造產品成本
    • 成本決策如何影響庫存估價、銷貨成本和財務報表,並透過實際範例比較各種方法
  • 先修條件:第 35-36 課 — 製造與配銷(了解生產成本流程和庫存管理)
  • 預估閱讀時間:25 分鐘

導論

ERP 系統中的每個產品都有兩個身份:物理身份(它是什麼、存放在哪裡、現有多少)和財務身份(它的成本是多少)。財務身份由成本計算方法控管——決定如何將成本分配到庫存,以及在商品售出時成本如何流向損益表的規則集。

成本計算是任何 ERP 實施中最具影響力的配置決策之一。您選擇的方法會影響資產負債表(庫存估價)、損益表(銷貨成本)、稅務義務,以及做出明智的定價和生產決策的能力。iDempiere 支援多種成本計算方法,並提供靈活的框架來管理跨組織、倉庫和成本要素的產品成本。

成本框架

iDempiere 的成本架構有三個基礎結構:成本類型、成本要素,以及將它們結合在一起的 M_Cost 資料表。

成本類型(M_CostType)

成本類型代表所有產品的一套完整成本記錄。大多數實施使用單一成本類型,但系統支援多種成本類型以用於平行成本計算場景。例如:

  • 主要成本類型:使用平均成本法進行日常營運和財務報表。
  • 次要成本類型:使用標準成本法進行管理報表和差異分析。

每個會計模式(C_AcctSchema)關聯一個主要成本類型,決定用於會計分錄的成本計算方法。額外的成本類型可以維持平行成本計算而不影響總帳。

成本要素(M_CostElement)

成本要素對追蹤的成本類別進行分類。iDempiere 區分幾種成本要素類型:

成本要素類型 說明 範例
Material(材料) 產品的直接材料成本 原材料採購價格、BOM 中的材料組件成本
Labor(人工) 製造中發生的直接人工成本 生產作業的操作員工資
Burden(間接費用) 分配到產品的間接製造成本 機器折舊、工廠水電、監管費用
Outside Processing(外包加工) 委外作業的成本 外包製造步驟的供應商費用
Landed Cost(到岸成本) 將商品運送到最終地點所產生的額外成本 運費、關稅、保險、搬運費

每個材料成本要素關聯一個成本計算方法——用於計算該要素成本的演算法。成本計算方法設定在成本要素本身(材料類型要素)或從會計模式配置衍生。

M_Cost 資料表

M_Cost 資料表是所有成本資料匯聚之處。M_Cost 中的每筆記錄代表特定產品在以下特定組合下的當前成本:

  • AD_Client_ID / AD_Org_ID:用戶端和組織(取決於成本層級)。
  • M_Product_ID:產品。
  • M_CostType_ID:成本類型。
  • M_CostElement_ID:成本要素。
  • C_AcctSchema_ID:會計模式。
  • M_AttributeSetInstance_ID:屬性集實例(用於批次/批號層級成本計算)。

M_Cost 中的關鍵欄位包括:

欄位 說明
CurrentCostPrice 此產品/要素組合的當前單位成本
CurrentQty 當前庫存數量(用於平均成本計算)
CumulatedAmt 累計成本總額(用於平均成本:CumulatedAmt / CumulatedQty)
CumulatedQty 累計數量總計(用於平均計算的持續總計)
FutureCostPrice 計畫的未來成本(用於標準成本更新)
IsCostFrozen 成本是否凍結(無法被交易變更)

成本計算方法詳述

每種成本計算方法使用不同的演算法來確定產品的單位成本。方法的選擇會影響庫存估價(資產負債表)和銷貨成本(損益表)。

標準成本法

在標準成本法下,每個產品被賦予一個預定成本,在刻意變更之前保持固定。所有庫存交易按標準成本估價,實際成本與標準成本之間的任何差異都記錄為差異

運作方式:

  • 管理員在 M_Cost 記錄中設定標準成本(CurrentCostPrice)。
  • 當以 $10.50 採購收到產品但標準成本為 $10.00 時,庫存以 $10.00 借記,$0.50 的差額記入採購價格差異科目。
  • 商品售出時,銷貨成本始終按標準成本計算。
  • 標準成本會定期審查和更新(例如每年),FutureCostPrice 欄位用於在新標準生效前暫存。

優點:簡化成本會計、支援差異分析、為定價決策提供穩定的產品成本。

缺點:需要紀律性地維護標準、若標準過時差異科目可能累積大額餘額、無法即時反映實際市場成本。

平均成本法(加權平均)

平均成本法在每次收貨交易時重新計算單位成本,方法是將庫存總值除以庫存總量。

運作方式:

  • 起始狀態:100 個單位,每個 $10.00 = 總值 $1,000。
  • 收貨:50 個單位,每個 $11.00 = $550。
  • 新平均值:($1,000 + $550) / (100 + 50) = $1,550 / 150 = $10.33 每單位。
  • 所有後續出庫(銷售、製造)使用 $10.33,直到下次收貨改變平均值。

優點:平滑價格波動、反映實際成本無需人工維護、廣泛被財務報表接受。

缺點:每次收貨都會改變單位成本(可能使毛利分析複雜化)、不按特定採購批次追蹤成本。

先進先出法(FIFO)

FIFO 假設最舊的庫存先被售出。為每次收貨維護成本層,出庫先消耗最舊的層。

運作方式:

  • 第 1 層:100 個單位,$10.00(1 月 5 日收貨)
  • 第 2 層:50 個單位,$11.00(1 月 20 日收貨)
  • 銷售 120 個單位:100 個按 $10.00 計算(消耗第 1 層)+ 20 個按 $11.00 計算(來自第 2 層)= 銷貨成本 $1,220。
  • 剩餘庫存:30 個單位,$11.00 = $330。

優點:資產負債表上的庫存反映最近的(且可能最相關的)成本。符合易腐商品的實際物流。

缺點:在價格上漲期間,FIFO 報告較高利潤(較舊、較便宜的成本進入銷貨成本),增加稅務負擔。需要追蹤成本層。

後進先出法(LIFO)

LIFO 假設最近收到的庫存先被售出。它是 FIFO 的相反。

運作方式:

  • 第 1 層:100 個單位,$10.00(1 月 5 日收貨)
  • 第 2 層:50 個單位,$11.00(1 月 20 日收貨)
  • 銷售 120 個單位:50 個按 $11.00 計算(來自第 2 層)+ 70 個按 $10.00 計算(來自第 1 層)= 銷貨成本 $1,250。
  • 剩餘庫存:30 個單位,$10.00 = $300。

優點:在價格上漲期間,LIFO 報告較高的銷貨成本和較低利潤,降低稅務負擔。更好地將當前成本與當前收入匹配。

缺點:資產負債表上的庫存反映舊成本,可能不代表當前市場價值。IFRS 下不允許使用(僅在 US GAAP 下允許)。需要追蹤成本層。

注意:LIFO 在國際財務報導準則(IFRS)下被禁止,主要在遵循 US GAAP 的管轄區使用。

最後採購單成本(Last PO)

Last PO 將產品成本設定為該產品最近一張採購單的價格。

運作方式:

  • 一張採購單以產品 A 的單價 $10.75 完成。
  • 產品 A 的 M_Cost 記錄更新:CurrentCostPrice = $10.75。
  • 所有後續的庫存估價和銷貨成本計算使用 $10.75,直到更新的採購單完成。

優點:簡單易懂,自動反映最新的協商採購價格。

缺點:單一採購單可以改變整個庫存餘額的成本,可能不反映現有商品的實際成本。對異常的採購單價格敏感。

最後發票成本(Last Invoice)

與 Last PO 類似,但成本在供應商發票(而非採購單)完成比對時更新。

運作方式:

  • 一張供應商發票以產品 A 的單價 $10.80 完成。
  • M_Cost 記錄更新:CurrentCostPrice = $10.80。

優點:反映實際開票成本(可能因調整、折扣或附加費而與採購單價格不同)。

缺點:與 Last PO 相同的敏感性問題。時機取決於發票何時處理。

成本調整與重估

初始成本擷取後,有多種機制可以調整成本。

手動成本調整

管理員可以直接更新 M_Cost 記錄中的 CurrentCostPrice。常用於:

  • 為新產品設定初始標準成本。
  • 在年度成本彙總時更新標準成本。
  • 更正錯誤的成本分錄。

成本重估

當成本計算方法變更,或標準成本更新時,現有庫存必須重新估價。重估流程計算當前庫存數量的新舊成本差異,並產生會計分錄:

  • 如果新成本較高:借記庫存,貸記庫存重估(收益)。
  • 如果新成本較低:借記庫存重估(損失),貸記庫存。

M_Cost 記錄上的 IsCostFrozen 標記可以設定以防止交易自動更新成本。這在您希望鎖定成本用於報表目的,同時允許交易以凍結成本值繼續進行時很有用。

到岸成本(C_LandedCost)

產品的採購價格很少代表其真實成本。運費、關稅、保險費、經紀費和搬運費都構成到岸成本——將產品從供應商運到您倉庫的總成本。

iDempiere 中的到岸成本運作方式

  1. 收貨:完成物料收貨單,根據採購單價格記錄初始產品成本。
  2. 收到到岸成本發票:為運費、關稅或其他費用建立單獨的供應商發票。在此發票上定義到岸成本分配。
  3. 分配成本:使用分配方法將到岸成本分配到一個或多個物料收貨單的產品:
    • 按數量:根據每行收貨數量按比例分配。
    • 按金額:根據每行收貨的價值(成本 x 數量)按比例分配。
    • 按重量:根據每行收貨的重量按比例分配。
    • 按體積:根據每行收貨的體積按比例分配。
  4. 更新產品成本:分配的到岸成本加入產品成本。根據成本計算方法,這可能調整平均成本、建立成本層調整,或記入單獨的到岸成本要素。

到岸成本會計

當到岸成本分配處理時,iDempiere 產生借記產品庫存科目和貸記到岸成本清算科目的會計分錄。這確保資產負債表反映庫存的真實成本,包括取得和定位庫存所發生的所有成本。

製造品項的成本彙總

對於製造而非採購的產品,成本不由採購價格決定——而是透過彙總物料清單和製造工作流程中所有組件和作業的成本來計算。

BOM 成本計算流程

成本彙總透過加總以下項目來計算製造產品的成本:

  1. 材料成本:對每個 BOM 組件,將組件的單位成本乘以所需數量(經廢料百分比調整)。加總所有組件成本。
  2. 人工成本:對每個工作流程作業,將作業的設定時間和運行時間乘以資源的人工費率。加總所有作業人工成本。
  3. 間接費用成本:對每個工作流程作業,根據資源的間接費用率計算間接費用(可以是每單位、每小時的費率,或人工的百分比)。加總所有作業間接費用。
  4. 外包加工成本:對委外作業,包含外部資源的計畫成本。

合計即為產品的標準製造成本。此彙總成本儲存在成品的 M_Cost 記錄中,並在製造工單收貨時用於庫存估價。

多層級彙總

如果 BOM 組件本身是具有自身 BOM 的製造產品,彙總必須從產品結構的底部向上處理。最低層組件(原材料)先計算成本,然後是半成品,最後是成品。iDempiere 的成本彙總流程使用產品的最低層級代碼——指示產品在任何 BOM 中出現的最深層級的值——自動處理此多層級計算。

材料成本與間接費用分攤

了解直接成本和間接成本的區別對於準確的產品成本計算至關重要。

直接材料成本

直接材料是物理上組成成品的組件。其成本可透過 BOM 直接追溯到產品。在大多數製造環境中,直接材料成本通常是產品總成本中最大的部分。

直接人工成本

直接人工是製造過程中直接對產品執行的工作。透過製造工作流程作業追蹤,並透過活動控制回報。與材料一樣,直接人工可追溯到特定產品。

間接費用(間接成本)

間接費用無法直接追溯到個別產品——它們支援整個製造過程。範例包括工廠租金、水電、設備折舊、品質部門薪資和維護成本。這些必須使用選定的分攤基礎分攤到產品:

  • 按機器工時:根據每個產品消耗的機器時間分攤間接費用。
  • 按人工工時:根據直接人工時數分攤。
  • 材料成本百分比:以直接材料成本的百分比計算間接費用。
  • 每單位生產量:每單位的固定間接費用。

在 iDempiere 中,間接費用分攤透過資源成本費率和 Burden 成本要素配置。製造工作流程的資源指派決定如何根據產品經歷的作業將間接費用分攤到每個產品。

成本層級

成本層級決定產品成本維護的細微程度。這在會計模式上配置,並可在每個產品類別上覆寫。

用戶端層級

整個用戶端的每個產品只有一筆成本記錄。所有組織共享相同的產品成本。這是最簡單的方式,適用於所有據點以相同價格從相同供應商採購的情況。

組織層級

每個產品每個組織有獨立的成本記錄。每個組織可以對同一產品有不同成本,反映當地採購條件、不同供應商或區域價格差異。這是多組織部署中最常見的設定。

批次/批號層級

每個產品每個屬性集實例(批次或批號)有獨立的成本記錄。這是最精細的層級,也是真正的 FIFO/LIFO 成本計算所必需的,其中每次收貨批次維護自己的成本層。它也適用於必須追蹤批次特定成本的行業(製藥、食品、化學品)以符合法規或品質要求。

成本凍結與動態

M_Cost 記錄上的 IsCostFrozen 標記控制成本是否由交易自動更新:

  • 動態(未凍結):每筆合格交易(收貨、發票比對、到岸成本分配)都會重新計算產品成本。這是預設行為,適用於平均、FIFO、LIFO、Last PO 和 Last Invoice 方法。
  • 凍結:交易按凍結成本估價但不改變它。這通常用於標準成本法——標準成本被凍結,差異記入單獨的科目。也可在期末結帳期間暫時使用,以防止在編製財務報表時成本變動。

比較成本計算方法的實例

假設一個產品在一月份有以下交易:

日期 交易 數量 單價
1/2 期初庫存 100 $10.00
1/10 採購收貨 50 $11.00
1/15 銷售 80 (出庫)
1/25 採購收貨 60 $10.50
1/28 銷售 70 (出庫)

標準成本法(標準 = $10.00)

  • 1/15 銷售:80 x $10.00 = $800 銷貨成本。1/10 收貨差異:50 x ($11.00 – $10.00) = $50 不利差異。
  • 1/28 銷售:70 x $10.00 = $700 銷貨成本。1/25 收貨差異:60 x ($10.50 – $10.00) = $30 不利差異。
  • 銷貨成本合計:$1,500。期末庫存:60 個單位 x $10.00 = $600。差異合計:$80。

平均成本法

  • 1/10 收貨後:(100 x $10.00 + 50 x $11.00) / 150 = $10.33。
  • 1/15 銷售:80 x $10.33 = $826.67 銷貨成本。剩餘:70 個單位,$723.33 價值。
  • 1/25 收貨後:($723.33 + 60 x $10.50) / 130 = $1,353.33 / 130 = $10.41。
  • 1/28 銷售:70 x $10.41 = $728.72 銷貨成本。剩餘:60 個單位。
  • 銷貨成本合計:$1,555.39。期末庫存:60 個單位 x $10.41 = $624.61。

先進先出法(FIFO)

  • 1/15 銷售(80 個單位):80 個來自第 1 層(100 @ $10.00)= $800。第 1 層剩餘:20 @ $10.00。
  • 1/28 銷售(70 個單位):20 個來自第 1 層 @ $10.00($200)+ 50 個來自第 2 層 @ $11.00($550)= $750。
  • 銷貨成本合計:$1,550。期末庫存:60 個單位 @ $10.50 = $630。

後進先出法(LIFO)

  • 1/15 銷售(80 個單位):50 個來自第 2 層 @ $11.00($550)+ 30 個來自第 1 層 @ $10.00($300)= $850。
  • 1/28 銷售(70 個單位):60 個來自第 3 層 @ $10.50($630)+ 10 個來自第 1 層 @ $10.00($100)= $730。
  • 銷貨成本合計:$1,580。期末庫存:60 個單位 @ $10.00 = $600。

影響比較

方法 銷貨成本合計 期末庫存 毛利影響
標準($10.00) $1,500 + $80 差異 $600 最高報告利潤(差異前)
平均 $1,555 $625 中等
FIFO $1,550 $630 較高利潤(較舊成本入銷貨成本)
LIFO $1,580 $600 較低利潤(較新成本入銷貨成本)

重點整理

  • iDempiere 的成本框架建立在三大支柱上:成本類型(成本資料集)、成本要素(如材料、人工、間接費用等成本分類),以及儲存每個產品/要素/模式組合實際成本記錄的 M_Cost 資料表。
  • 標準成本法使用預定成本,差異單獨擷取;平均成本法每次收貨重新計算;FIFO 和 LIFO 維護按時間順序或逆序消耗的成本層;Last PO 和 Last Invoice 使用最近的交易價格。
  • 到岸成本(運費、關稅、保險)從獨立的供應商發票分配到產品,使用數量、金額、重量或體積分配方法,確保資產負債表反映真實的取得成本。
  • 製造品項的成本彙總透過 BOM 和工作流程結構加總材料、人工、間接費用和外包加工成本,多層級彙總自動處理半成品。
  • 成本層級(用戶端、組織、批次/批號)決定成本追蹤的細微程度,IsCostFrozen 標記控制交易是自動更新成本還是擷取差異。
  • 成本計算方法的選擇對報告的銷貨成本、庫存估價、毛利和稅務負擔有直接且可衡量的影響——如比較範例所示,相同交易在不同方法下產生不同的財務結果。

下一步

下一課涵蓋多幣別與多組織會計——iDempiere 如何處理多幣別交易、執行匯率換算、計算未實現匯兌損益、管理組織間交易,以及支援多公司架構下的財務合併。

日本語翻訳

概要

  • 学習内容:
    • iDempiereの原価フレームワークが原価タイプ、原価要素、M_Costテーブルを使用して製品原価をどのように追跡し、異なる原価計算方法(標準、平均、FIFO、LIFO、最終PO、最終請求書)がどのように異なる方法で原価を計算するか
    • 原価レベルの設定、原価調整の実行、諸掛原価の処理、BOM原価計算による製造品の原価積上げ方法
    • 原価計算の決定が在庫評価、売上原価、財務諸表にどのように影響するか、各方法を比較する実用的な例を含む
  • 前提条件:第35-36課 — 製造と流通(生産コストフローと在庫管理の理解)
  • 推定読了時間:25分

はじめに

ERPシステムのすべての製品には二つの身元があります:物理的な身元(何であるか、どこに保管されているか、いくつあるか)と財務的な身元(いくらかかるか)です。財務的な身元は原価計算方法——在庫への原価配賦方法と、商品販売時に原価がどのように損益計算書に流れるかを決定するルールの集合——によって統制されます。

原価計算は、あらゆるERP導入において最も重要な設定決定の一つです。選択する方法は、貸借対照表(在庫評価)、損益計算書(売上原価)、税務上の義務、そして価格設定や生産に関する情報に基づいた意思決定能力に影響します。iDempiereは複数の原価計算方法をサポートし、組織、倉庫、原価要素にわたる製品原価を管理するための柔軟なフレームワークを提供します。

原価フレームワーク

iDempiereの原価アーキテクチャには三つの基盤構造があります:原価タイプ、原価要素、そしてそれらを統合するM_Costテーブルです。

原価タイプ(M_CostType)

原価タイプは、すべての製品の原価記録の完全なセットを表します。ほとんどの導入では単一の原価タイプを使用しますが、システムは並行原価計算シナリオのために複数の原価タイプをサポートします。例えば:

  • 主要原価タイプ:日常業務と財務報告に平均原価法を使用。
  • 副次原価タイプ:管理報告と差異分析に標準原価法を使用。

各会計スキーマ(C_AcctSchema)は主要原価タイプに関連付けられ、会計仕訳に使用される原価計算方法を決定します。追加の原価タイプは総勘定元帳に影響を与えることなく並行原価計算を維持できます。

原価要素(M_CostElement)

原価要素は追跡する原価の種類を分類します。iDempiereはいくつかの原価要素タイプを区別します:

原価要素タイプ 説明
Material(材料) 製品の直接材料費 原材料の購入価格、BOM内の材料部品原価
Labor(労務) 製造で発生する直接労務費 生産作業のオペレーター賃金
Burden(間接費) 製品に配賦される間接製造原価 機械の減価償却、工場の光熱費、管理費
Outside Processing(外注加工) 外注作業の原価 外注製造工程のベンダー費用
Landed Cost(諸掛原価) 商品を最終場所に届けるために発生する追加原価 運賃、関税、保険料、荷役費

各材料原価要素は原価計算方法——その要素の原価を計算するために使用されるアルゴリズム——に関連付けられます。原価計算方法は原価要素自体(材料タイプ要素の場合)に設定されるか、会計スキーマの設定から導出されます。

M_Costテーブル

M_Costテーブルはすべての原価データが集約される場所です。M_Costの各レコードは、以下の特定の組み合わせにおける特定製品の現在原価を表します:

  • AD_Client_ID / AD_Org_ID:クライアントと組織(原価レベルに依存)。
  • M_Product_ID:製品。
  • M_CostType_ID:原価タイプ。
  • M_CostElement_ID:原価要素。
  • C_AcctSchema_ID:会計スキーマ。
  • M_AttributeSetInstance_ID:属性セットインスタンス(バッチ/ロットレベルの原価計算用)。

M_Costの主要フィールドは以下のとおりです:

フィールド 説明
CurrentCostPrice この製品/要素の組み合わせの現在単位原価
CurrentQty 現在の手持数量(平均原価計算に使用)
CumulatedAmt 累計原価総額(平均原価に使用:CumulatedAmt / CumulatedQty)
CumulatedQty 累計数量合計(平均計算の累計合計)
FutureCostPrice 計画された将来原価(標準原価の更新に使用)
IsCostFrozen 原価が凍結されているか(取引で変更不可)

原価計算方法の詳細

各原価計算方法は異なるアルゴリズムを使用して製品の単位原価を決定します。方法の選択は在庫評価(貸借対照表)と売上原価(損益計算書)の両方に影響します。

標準原価法

標準原価法では、各製品に意図的に変更されるまで固定される予定原価が割り当てられます。すべての在庫取引は標準原価で評価され、実際原価と標準原価の差額は差異として記録されます。

仕組み:

  • 管理者がM_Costレコードに標準原価(CurrentCostPrice)を設定する。
  • 製品が$10.50で購入されたが標準原価が$10.00の場合、在庫は$10.00で借方記入され、$0.50の差額は購入価格差異勘定に計上される。
  • 商品販売時、売上原価は常に標準原価で計算される。
  • 標準原価は定期的に見直し・更新され(例:年次)、FutureCostPriceフィールドが新標準の適用前の仮登録に使用される。

利点:原価会計を簡素化、差異分析を可能にし、価格設定の決定に安定した製品原価を提供。

欠点:標準の規律ある維持が必要、標準が陳腐化すると差異勘定に大きな残高が蓄積される可能性、実際の市場原価をリアルタイムに反映しない。

平均原価法(加重平均)

平均原価法は、在庫総額を在庫総数量で除することにより、入庫取引ごとに単位原価を再計算します。

仕組み:

  • 開始状態:100個 × $10.00 = 総額 $1,000。
  • 入庫:50個 × $11.00 = $550。
  • 新しい平均:($1,000 + $550) / (100 + 50) = $1,550 / 150 = $10.33/個。
  • 次の入庫で平均が変わるまで、その後のすべての出庫(販売、製造)は$10.33を使用。

利点:価格変動を平準化、手動メンテナンスなしで実際原価を反映、財務報告で広く受け入れられている。

欠点:入庫ごとに単位原価が変わる(利益率分析を複雑にする可能性)、特定の購入ロットごとの原価追跡ができない。

先入先出法(FIFO)

FIFOは最も古い在庫が先に販売されると仮定します。各入庫に対して原価層が維持され、出庫は最も古い層から消費されます。

仕組み:

  • 第1層:100個 × $10.00(1月5日入庫)
  • 第2層:50個 × $11.00(1月20日入庫)
  • 120個の販売:100個を$10.00で計算(第1層を消費)+ 20個を$11.00で計算(第2層から)= 売上原価 $1,220。
  • 残在庫:30個 × $11.00 = $330。

利点:貸借対照表上の在庫が最新の(そしておそらく最も関連性の高い)原価を反映。生鮮品の物理的な流れに一致。

欠点:物価上昇期にFIFOは高い利益を報告し(古い安い原価が売上原価に入る)、納税額が増加。原価層の追跡が必要。

後入先出法(LIFO)

LIFOは最も最近入庫された在庫が先に販売されると仮定します。FIFOの逆です。

仕組み:

  • 第1層:100個 × $10.00(1月5日入庫)
  • 第2層:50個 × $11.00(1月20日入庫)
  • 120個の販売:50個を$11.00で計算(第2層から)+ 70個を$10.00で計算(第1層から)= 売上原価 $1,250。
  • 残在庫:30個 × $10.00 = $300。

利点:物価上昇期にLIFOは高い売上原価と低い利益を報告し、納税額を軽減。当期原価を当期収益により適切に対応。

欠点:貸借対照表上の在庫が古い原価を反映し、現在の市場価値を表さない可能性。IFRSでは使用不可(US GAAPのみ)。原価層の追跡が必要。

注意:LIFOは国際財務報告基準(IFRS)で禁止されており、主にUS GAAPに従う管轄地域で使用されます。

最終PO原価(Last PO)

Last POは製品原価をその製品の最新の購買オーダーの価格に設定します。

仕組み:

  • 製品Aの単価$10.75で購買オーダーが完了する。
  • 製品AのM_Costレコードが更新される:CurrentCostPrice = $10.75。
  • 新しいPOが完了するまで、以降のすべての在庫評価と売上原価計算は$10.75を使用。

利点:理解が簡単、最新の交渉済み購入価格を自動的に反映。

欠点:単一のPOで在庫残高全体の原価が変わる可能性があり、手持在庫の実際原価を反映しない場合がある。異常なPO価格に敏感。

最終請求書原価(Last Invoice)

Last POと類似していますが、原価は仕入先請求書(購買オーダーではなく)が照合・完了した時点で更新されます。

仕組み:

  • 製品Aの単価$10.80で仕入先請求書が完了する。
  • M_Costレコードが更新される:CurrentCostPrice = $10.80。

利点:実際の請求原価を反映(調整、割引、追加料金によりPO価格と異なる場合がある)。

欠点:Last POと同じ感度の問題。タイミングは請求書がいつ処理されるかに依存。

原価調整と再評価

初期原価の取得後、原価を調整するためのいくつかのメカニズムがあります。

手動原価調整

管理者はM_CostレコードのCurrentCostPriceを直接更新できます。一般的な用途:

  • 新製品の初期標準原価の設定。
  • 年次原価積上げ時の標準原価更新。
  • 誤った原価入力の修正。

原価再評価

原価計算方法が変更された場合、または標準原価が更新された場合、既存の在庫を再評価する必要があります。再評価プロセスは、現在の手持数量に対する新旧原価の差額を計算し、会計仕訳を生成します:

  • 新原価が高い場合:在庫を借方、在庫再評価(利益)を貸方。
  • 新原価が低い場合:在庫再評価(損失)を借方、在庫を貸方。

M_CostレコードのIsCostFrozenフラグを設定して、取引による自動原価更新を防止できます。これは、報告目的で原価をロックしつつ、凍結原価値で取引を継続させたい場合に有用です。

諸掛原価(C_LandedCost)

製品の購入価格がその真の原価を表すことはまれです。運賃、関税、保険料、仲介手数料、荷役費はすべて諸掛原価——仕入先から倉庫に製品を届けるための総原価——を構成します。

iDempiereにおける諸掛原価の仕組み

  1. 商品の入庫:入庫伝票を完了し、PO価格に基づく初期製品原価を記録する。
  2. 諸掛原価の請求書受領:運賃、関税、その他の費用に対する別の仕入先請求書を作成する。この請求書上で諸掛原価の配賦を定義する。
  3. 原価の配賦:配賦方法を使用して、一つまたは複数の入庫伝票の製品に諸掛原価を配分する:
    • 数量基準:各行の入庫数量に比例して配分。
    • 金額基準:各入庫行の金額(原価 × 数量)に比例して配分。
    • 重量基準:各入庫行の重量に比例して配分。
    • 容積基準:各入庫行の容積に比例して配分。
  4. 製品原価の更新:配賦された諸掛原価が製品原価に加算される。原価計算方法に応じて、平均原価の調整、原価層の調整、または別の諸掛原価要素への計上が行われる。

諸掛原価の会計処理

諸掛原価の配賦が処理されると、iDempiereは製品の在庫勘定を借方、諸掛原価清算勘定を貸方とする会計仕訳を生成します。これにより、貸借対照表が在庫の取得・配置に発生したすべての原価を含む真の原価を反映することが保証されます。

製造品目の原価積上げ

購入ではなく製造される製品の場合、原価は購入価格では決定されず、部品表と製造ワークフロー内のすべての部品と作業の原価を積み上げて計算されます。

BOM原価計算プロセス

原価積上げは以下を合計して製造製品の原価を計算します:

  1. 材料費:各BOM部品について、部品の単位原価に所要量(スクラップ率で調整済み)を乗じる。すべての部品原価を合計する。
  2. 労務費:各ワークフロー作業について、作業の段取時間と実行時間にリソースの労務レートを乗じる。すべての作業労務費を合計する。
  3. 間接費:各ワークフロー作業について、リソースの間接費率(単位当たり、時間当たり、または労務費の割合)に基づいて間接費を計算する。すべての作業間接費を合計する。
  4. 外注加工費:外注作業について、外部リソースからの計画原価を含める。

合計が製品の標準製造原価です。この積上げ原価は完成品のM_Costレコードに保存され、製造オーダーから製造品が入庫される際の在庫評価に使用されます。

多層レベル積上げ

BOM部品自体が独自のBOMを持つ製造品の場合、積上げは製品構造の最下層から上方に処理する必要があります。最下層の部品(原材料)が最初に原価計算され、次に半製品、そして最終製品の順です。iDempiereの原価積上げプロセスは、製品の最低レベルコード——任意のBOMにおいて製品が出現する最深レベルを示す値——を使用して、この多層レベル計算を自動的に処理します。

材料費と間接費配賦

直接費と間接費の区別を理解することは、正確な製品原価計算に不可欠です。

直接材料費

直接材料は完成品に物理的に組み込まれる部品です。その原価はBOMを通じて製品に直接追跡可能です。ほとんどの製造環境において、直接材料費は通常、製品総原価の最大の構成要素です。

直接労務費

直接労務は製造中に製品に直接行われる作業です。製造ワークフロー作業を通じて追跡され、活動管理により報告されます。材料と同様に、直接労務は特定の製品に追跡可能です。

間接費(間接原価)

間接費は個々の製品に直接追跡できません——製造プロセス全体を支援するものです。例として、工場賃料、光熱費、設備の減価償却、品質管理部門の給与、保守費用があります。これらは選択した配賦基準を使用して製品に配賦する必要があります:

  • 機械時間当たり:各製品が消費した機械時間に基づいて間接費を配賦。
  • 労働時間当たり:直接労働時間に基づいて配賦。
  • 材料費の割合:直接材料費の割合として間接費を適用。
  • 生産単位当たり:単位当たりの固定間接費。

iDempiereでは、間接費配賦はリソースの原価率とBurden原価要素を通じて設定されます。製造ワークフローのリソース割当が、製品が経る作業に基づいて各製品への間接費の適用方法を決定します。

原価レベル

原価レベルは製品原価が維持される粒度を決定します。これは会計スキーマで設定され、製品カテゴリごとに上書きできます。

クライアントレベル

クライアント全体で製品ごとに単一の原価レコード。すべての組織が同じ製品原価を共有します。これは最もシンプルなアプローチで、すべての拠点が同じ仕入先から同じ価格で購入する場合に適しています。

組織レベル

製品ごと・組織ごとに別々の原価レコード。各組織は同じ製品に異なる原価を持つことができ、現地の調達条件、異なる仕入先、地域的な価格差を反映します。複数組織の展開で最も一般的な設定です。

バッチ/ロットレベル

製品ごと・属性セットインスタンス(ロットまたはバッチ)ごとに別々の原価レコード。これは最も細かいレベルで、各入庫ロットが独自の原価層を維持する真のFIFO/LIFO原価計算に必要です。また、法規制や品質上の理由でバッチ固有の原価を追跡する必要がある業界(医薬品、食品、化学品)にも有用です。

原価凍結と動的原価

M_CostレコードのIsCostFrozenフラグは、原価が取引によって自動的に更新されるかどうかを制御します:

  • 動的(凍結なし):すべての適格な取引(入庫、請求書照合、諸掛原価配賦)が製品原価を再計算します。これはデフォルトの動作で、平均、FIFO、LIFO、Last PO、Last Invoice方法に適しています。
  • 凍結:取引は凍結原価で評価されますが、原価は変更されません。これは通常、標準原価法で使用されます——標準原価が凍結され、差異は別の勘定で把握されます。期末決算中に一時的に使用して、財務報告書の作成中に原価変動を防止することもできます。

原価計算方法を比較する実例

1月中に以下の取引がある製品を想定します:

日付 取引 数量 単価
1/2 期首在庫 100 $10.00
1/10 購入入庫 50 $11.00
1/15 販売 80 (出庫)
1/25 購入入庫 60 $10.50
1/28 販売 70 (出庫)

標準原価法(標準 = $10.00)

  • 1/15 販売:80 × $10.00 = $800 売上原価。1/10 入庫差異:50 × ($11.00 – $10.00) = $50 不利差異。
  • 1/28 販売:70 × $10.00 = $700 売上原価。1/25 入庫差異:60 × ($10.50 – $10.00) = $30 不利差異。
  • 売上原価合計:$1,500。期末在庫:60個 × $10.00 = $600。差異合計:$80。

平均原価法

  • 1/10 入庫後:(100 × $10.00 + 50 × $11.00) / 150 = $10.33。
  • 1/15 販売:80 × $10.33 = $826.67 売上原価。残:70個、$723.33 価値。
  • 1/25 入庫後:($723.33 + 60 × $10.50) / 130 = $1,353.33 / 130 = $10.41。
  • 1/28 販売:70 × $10.41 = $728.72 売上原価。残:60個。
  • 売上原価合計:$1,555.39。期末在庫:60個 × $10.41 = $624.61。

先入先出法(FIFO)

  • 1/15 販売(80個):80個を第1層(100 @ $10.00)から = $800。第1層残:20 @ $10.00。
  • 1/28 販売(70個):20個を第1層 @ $10.00($200)+ 50個を第2層 @ $11.00($550)= $750。
  • 売上原価合計:$1,550。期末在庫:60個 @ $10.50 = $630。

後入先出法(LIFO)

  • 1/15 販売(80個):50個を第2層 @ $11.00($550)+ 30個を第1層 @ $10.00($300)= $850。
  • 1/28 販売(70個):60個を第3層 @ $10.50($630)+ 10個を第1層 @ $10.00($100)= $730。
  • 売上原価合計:$1,580。期末在庫:60個 @ $10.00 = $600。

影響の比較

方法 売上原価合計 期末在庫 粗利益への影響
標準($10.00) $1,500 + $80 差異 $600 最高の報告利益(差異前)
平均 $1,555 $625 中程度
FIFO $1,550 $630 高い利益(古い原価が売上原価に)
LIFO $1,580 $600 低い利益(新しい原価が売上原価に)

重要ポイント

  • iDempiereの原価フレームワークは三つの柱の上に構築されています:原価タイプ(原価データのセット)、原価要素(材料、労務、間接費などの原価分類)、そして各製品/要素/スキーマの組み合わせの実際の原価レコードを保存するM_Costテーブルです。
  • 標準原価法は予定原価を使用し差異を別途把握します。平均原価法は入庫ごとに再計算します。FIFOとLIFOは時系列または逆順で消費される原価層を維持します。Last POとLast Invoiceは直近の取引価格を使用します。
  • 諸掛原価(運賃、関税、保険)は数量、金額、重量、または容積の配分方法を使用して別の仕入先請求書から製品に配賦され、貸借対照表が真の取得原価を反映することを保証します。
  • 製造品目の原価積上げは、BOMとワークフロー構造を通じて材料費、労務費、間接費、外注加工費を合計し、多層レベルの積上げが半製品を自動的に処理します。
  • 原価レベル(クライアント、組織、バッチ/ロット)が原価追跡の粒度を決定し、IsCostFrozenフラグが取引が自動的に原価を更新するか差異を把握するかを制御します。
  • 原価計算方法の選択は、報告される売上原価、在庫評価、粗利益、納税額に直接的かつ測定可能な影響を与えます——比較例が示すように、同じ取引が各方法で異なる財務結果を生みます。

次のステップ

次のレッスンでは多通貨・多組織会計を扱います——iDempiereが複数通貨での取引をどのように処理するか、通貨換算、未実現為替差損益の計算、組織間取引の管理、そして多法人構造にわたる財務連結のサポートについて学びます。

You Missed