先入先出法と移動平均法:在庫評価を実装の目線で比べる
確認日 2026-10-31(調べ方)・制度は変わることがあります。個別の判断は公式の資料と専門家に確かめてください。
先入先出法は古い仕入から順に払い出したとみなす方法で、移動平均法は仕入のたびに平均単価を計算し直す方法です。同じ取引でも売上原価と期末在庫の金額が変わります。実装の差も大きく、先入先出法は仕入の山(ロット)を残し、移動平均法は数量と金額の残高だけで計算できます。基準は評価方法を区分ごとに選び、継続して適用することを求めています。
基準が認める評価方法
棚卸資産の評価に関する会計基準は、評価方法として個別法、先入先出法、平均原価法(総平均法または移動平均法)、売価還元法を挙げています(第6-2項)。後入先出法は平成20年の改正で選べなくなりました。方法は事業や棚卸資産の種類などの区分ごとに選び、継続して適用します(第6-3項)。
この基準は、評価方法が期末在庫の金額を出すだけでなく、売上原価の計算にもつながることを説明しています(第26-2項)。期首在庫+当期仕入=売上原価+期末在庫という式で、片方が決まればもう片方も決まるからです。
| 方法 | 考え方 | 持つデータの例 | 計算の時点 |
|---|---|---|---|
| 個別法 | 1点ごとの実際の原価 | シリアル番号ごとの原価 | 払出のつど |
| 先入先出法 | 古いものから払い出したとみなす | 仕入ごとの残数量と単価 | 払出のつど |
| 移動平均法 | 仕入のたびに平均単価を更新 | 数量と金額の残高 | 仕入と払出のつど |
| 総平均法 | 期間の合計で平均単価を計算 | 期間の仕入合計 | 期末や月末にまとめて |
| 売価還元法 | 売価の合計に原価率を掛ける | 売価の合計と原価率 | 期末 |
税法も近い内容を定めています。法人税法施行令第28条は、原価法として個別法、先入先出法、総平均法、移動平均法、最終仕入原価法、売価還元法などを挙げ、低価法も選べるとしています。評価方法は事業の種類と資産の区分ごとに選定し、所定の期限までに届け出ます(第29条)。選定しなかった場合は、最終仕入原価法による原価法です(第31条)。
一方、最終仕入原価法は会計基準の評価方法には含まれていません。基準は、期間の損益をゆがめないと考えられる場合などに限って容認される方法と説明しています(第34-4項)。税務と会計で方法が異なる可能性がある点は、要件を聞くときの確認事項です。
同じ取引で計算を比べる
同じ商品Aについて、10月の取引で比べます。期首の在庫はないものとします。
| 日付 | 取引 | 数量 | 単価 | 金額 |
|---|---|---|---|---|
| 10/1 | 仕入 | 100 | 100 | 10,000 |
| 10/5 | 払出 | 60 | ||
| 10/10 | 仕入 | 60 | 130 | 7,800 |
| 10/20 | 払出 | 80 |
| 方法 | 10/5の払出 | 10/20の払出 | 売上原価 | 期末在庫 |
|---|---|---|---|---|
| 先入先出法 | 60×100=6,000 | 40×100+40×130=9,200 | 15,200 | 2,600 |
| 移動平均法 | 60×100=6,000 | 80×118=9,440 | 15,440 | 2,360 |
| 総平均法 | 月末にまとめて | 月末にまとめて | 140×111.25=15,575 | 2,225 |
移動平均法の118円は、10月10日の仕入後の数量100個と金額11,800円(残り4,000円+仕入7,800円)から出した単価です。総平均法は、合計17,800円を160個で割った111.25円です。どの方法でも、売上原価と期末在庫の合計は17,800円で変わりません。方法が変えているのは、原価を今期と来期のどちらに多く配るかです。
先入先出法の実装
先入先出法では、仕入ごとの残数量を持ち、払出のときに古い順に減らします。1回の払出が複数のロットにまたがるので、払出とロットの紐づけを別のテーブルに残します。
先入先出法:10/20の払出で2つのロットを消費する
| 借方 | 金額 | 貸方 | 金額 |
|---|---|---|---|
| 売上原価 | 9,200 | 商品 | 9,200 |
stock_lots| lot_id | received_on | unit_cost | qty_in | qty_left |
|---|---|---|---|---|
| 1 | 10/01 | 100 | 100 | 0 |
| 2 | 10/10 | 130 | 60 | 20 |
10/20 の時点の状態。lot 1 は使い切り、lot 2 は 20 個残る
先入先出法のテーブルの例
stock_lots
- lot_id PK
- item_id FK
- received_on
- unit_cost
- qty_left
stock_issues
- issue_id PK
- item_id FK
- issued_on
- qty
issue_lot_links
- issue_id FK
- lot_id FK
- qty
- amount
- stock_lots 1 — N issue_lot_links
- stock_issues 1 — N issue_lot_links
同じ商品を同時に払い出す処理が走ると、ロットの残数量を取り合います。品目単位で順番に処理する、または行ロックをかけるといった制御が必要です。処理順は業務の日付順と一致させます。遅れて入ってきた払出をどのロットに当てるかは、後述の再計算の問題になります。
移動平均法の実装
移動平均法は、品目ごとに数量と金額の2つの残高があれば計算できます。単価は金額÷数量で求めます。
移動平均法:残高を2列で持つ
| 借方 | 金額 | 貸方 | 金額 |
|---|---|---|---|
| 売上原価 | 9,440 | 商品 | 9,440 |
stock_balances| item_id | as_of | qty | amount | unit_cost |
|---|---|---|---|---|
| A | 10/05 | 40 | 4,000 | 100 |
| A | 10/10 | 100 | 11,800 | 118 |
| A | 10/20 | 20 | 2,360 | 118 |
割り切れない単価が出たとき、単価を丸めて保存し、それに数量を掛けて残高を計算すると、在庫がゼロになっても金額が残ることがあります。編集部の設計の例としては、払出金額を丸めて残高から引き、最後の払出で残高をすべて落とす方法があります。
移動平均法の難しさは、過去の仕入を修正したときです。10月10日の単価を直すと、それ以降の払出の原価が全部変わります。設計の例として、次の方法があります。
- 締めた月は再計算せず、差額を当月の調整として計上する
- 締めていない月の分だけ、対象品目を日付順に再計算するバッチを用意する
- 再計算の前後の差額を一覧に出し、経理が承認してから仕訳を作る
再計算の範囲は締め処理のルールに従って決めます。
売上原価の仕訳:二つの持ち方
売上原価の記帳には、大きく二つの持ち方があります。簿記の教材で最初に習う三分法は、仕入を費用で記録し、決算で期首と期末の在庫を振り替えて原価を出します。もう一つは、払出ごとに計上する売上原価対立法です。受注から入金までの流れで売上と同時に原価を出すなら、後者が合います。
| 借方 | 金額 | 貸方 | 金額 |
|---|---|---|---|
| 繰越商品 | 2,360 | 仕入 | 2,360 |
仕入17,800円から2,360円を差し引き、売上原価15,440円が残ります
棚卸減耗と評価損
帳簿の数量と実地棚卸の数量が違えば、棚卸減耗です。先ほどの移動平均法の例で、帳簿20個に対し実際は18個だったとします。
| 借方 | 金額 | 貸方 | 金額 |
|---|---|---|---|
| 棚卸減耗損 | 236 | 商品 | 236 |
残った18個の価値が下がった場合は別の話です。基準は、期末の正味売却価額が取得原価より下がっていれば、正味売却価額を貸借対照表価額とし、差額を当期の費用とすると定めています(第7項)。正味売却価額は、売価から見積の追加費用などを引いた金額です。判断と切下げは原則として個別品目ごとに行います(第12項)。この切下額は売上原価とするのが基本です。製造に関連して不可避に発生するものは製造原価、臨時の事象によるもので多額なら特別損失とします(第17項)。
たとえば18個の正味売却価額が1個100円なら、切下額は18×18=324円です。
評価損は単価を下げる
| 借方 | 金額 | 貸方 | 金額 |
|---|---|---|---|
| 商品評価損 | 324 | 商品 | 324 |
stock_adjustments| item_id | reason | qty_diff | amount_diff |
|---|---|---|---|
| A | shrinkage | -2 | -236 |
| A | write_down | 0 | -324 |
方法を選ぶときにシステムで見ること
評価方法は経理が決めますが、データの持ち方に強く影響します。要件定義では次を確認します。
- 区分ごとに方法が違うか(商品と原材料で別など)
- 月次で原価を出す必要があるか。総平均法は月次総平均の形もあり、月末まで原価が確定しません
- 倉庫を分けて評価するのか、全社で1つの単価にするのか
- 外貨建て仕入や付随費用(運賃など)を単価に含めるか
- 返品の戻し単価を、出庫時の単価にするか現在の単価にするか
よくある質問
- 先入先出法と移動平均法は、どちらが有利ですか?
- 有利不利で一律には決まりません。仕入単価が上がる局面では、先入先出法のほうが売上原価が小さくなりやすい傾向です。業種、在庫の性質、システムの負担を見て会社が選び、継続して適用します。
- 評価方法を選ばないと、税務ではどうなりますか?
- 法人税法施行令第31条により、選定しなかった場合などは最終仕入原価法による原価法になります。
- 移動平均法の単価が割り切れないときはどうしますか?
- 編集部の設計の例では、数量と金額の残高を正として持ち、単価は表示用に計算します。払出金額の端数は丸めて、残高の金額に差を残さない形にします。丸めの桁と方法は経理と決めます。
- 棚卸減耗と評価損の違いは何ですか?
- 減耗は数量が帳簿より少ないこと、評価損は数量はあるが価値が下がったことです。テーブルでは、減耗は数量を減らし、評価損は単価を下げる動きになります。
出典