移動平均法は、仕入れ等の受入れのたびに、受入れ前の在庫金額と今回受入金額を、受入れ後の数量で割って単価を更新する方法です。通常の払出しではその時点の平均単価を使い、払出しのたびに新しい平均単価へ変えるわけではありません。
次の例では、途中計算を分数のまま保持し、単価は説明用、金額は表示用に小数第2位へ四捨五入します。表示済みの数値を次の計算に使いません。実装では十分な精度を持つ数値と、通貨単位・端数残差の処理方針を定めます。
3月末:20個×300円=6,000円。4月2日に50個×280円=14,000円を受け入れると、70個・20,000円となり、平均単価は20,000÷70=285.714285…円です。同日に10個を払い出す原価は2,857.14円、残り60個の在庫金額は17,142.86円です。
4月4日に20個を同じ平均単価で払い出すと、払出原価は5,714.29円、残り40個の在庫金額は11,428.57円です。4月5日に60個×320円=19,200円を受け入れると、100個・30,628.57円となり、丸め前金額から求める新しい平均単価は306.285714…円です。
4月5日に50個を払い出すと、払出原価は15,314.29円、残り50個の在庫金額も15,314.29円です。全払出しの原価を丸め前の数値から集計すると23,885.71円、期末在庫は15,314.29円で、期首と仕入の合計39,200円へ一致します。各行の表示金額を足すと端数差が出ることがあるため、表示と内部計算を区別します。