定期発注で輸送モードを変えると物流コストはどうなるか?アプリで簡単シミュレーション
「在庫は増えるけど船便でまとめて送るのが安いか、航空便で小ロットで送るのが安いか検討したい」
「隣の国なんだからクロスボーダートラックで送れば2、3日で着くけど輸送コストが高い。船便だと輸送コストは安いけどリードタイムが長いので在庫コストがかかる。トータル物流コストとしてはどちらが得なんだろう」
国際物流に携わっていれば多くの人が遭遇する悩みですね。
これをシミュレーションするためには「送る量」を決めなくてはなりません。
これはつまり「発注量」です。
そこで定期発注方式で安全在庫理論に基づいた発注を行った場合の発注量と、それに伴うトータル物流コスト(輸送コスト、保管コスト、欠品コストの和)を一挙にシミュレーションできるアプリを作りました。
本記事ではその使い方を解説します。
尚、定期発注方式の考え方については下記の記事で解説しています。
適正在庫を維持するための発注数の決め方をわかりやすく【定期発注方式の場合】
またPythonによるシミュレーション方法については下記で解説しています。
【定期発注方式】PythonのInventorizeライブラリで適正在庫シミュレーションしてみた
必要なデータの入力
シミュレーションに必要なデータはサイドバーにある【条件設定画面】で入力して下さい。
「需要データの読み込み」、「訓練データと検証データの比率」、「発注関連パラメータ」、「物流コスト」に大きく分かれています。
スマホの場合は画面左上にある「>」をクリックすると
このような【条件設定画面】が現れます。
需要データの読み込み
シミュレーションしたい商品アイテムの日別の需要データを下記のようにExcel等で入力した後、csv形式ファイルで保存してアップロードして下さい。
日付を入力する必要はありません。
100日分以上の需要データを取得することをお勧めします。
上限はありません。
デフォルトでは下記グラフのような180日分のデータが入っています。
訓練データと検証データの比率
安全在庫理論では需要の平均と標準偏差を使いますが、これらは過去データから計算します。
一方、シミュレーションは「まだ見ぬデータ」でするものなので、過去データとシミュレーションするデータに分けます。
そして過去データを訓練データ、シミュレーションするデータを検証データと呼ぶことにします。
ここでは検証データの比率を指定します。
デフォルトでは70%になっています。
アップロードした需要データの前半30%を訓練データとし、後半70%を検証データにするということです。
発注関連パラメータ
ここでは納品リードタイム、発注サイクル、許容欠品率を指定します。
デフォルトではそれぞれ3日、7日、5%になっています。
物流コスト
ここでは輸送コスト、保管コスト、欠品コストを指定します。
輸送コストとは1回当たりの発注で納品されるまでにかかる輸送コストです。
FOB契約の場合は海上輸送費+保険費用+揚げ地での輸入諸掛かり、CIF契約の場合は揚げ地での輸入諸掛かりが主な輸送コストになります。
保管コストは商品アイテム1個を1日保管するのにかかるコストです。
長期在庫が陳腐化する損失をコストに含める場合は、この保管コストに上乗せして下さい。
欠品を100%避けることはできません。
欠品コストは商品アイテムが1個欠品した時に生じる損失です。
消費者向けの商品を取り扱っている会社の場合は上代と下代の差でよいと思いますが、工場向けの部品サプライヤの場合は生産ラインがストップすることによる損失補填額になる場合もあります。
シミュレーション結果の見方
サイドバーの条件設定を変えるたびに、メイン画面に表示されるシミュレーション結果が更新されます。
シミュレーション結果は「在庫推移」と「物流コスト」に分かれています。
在庫推移
ここでは毎日のモノの動きのシミュレーション結果を表示します。
表示される項目は次の通りです。
需要:顧客の需要数
出荷:基本的には需要と等しくなりますが、在庫切れの場合は在庫分しか出荷されません
庫内在庫:倉庫内にある在庫数
トータル在庫:庫内在庫に輸送途中の在庫を加えた数
発注:発注数
補充目標:発注日にこの数になるように発注数を決める。つまり発注数=補充目標-庫内在庫になります
入庫:発注のリードタイム日数後に発注された数量が入庫します
欠品:需要に対して庫内在庫が足りない分が欠品になります
以上のシミュレーション結果のサマリーとして次の項目が表示されます。
安全在庫: √(リードタイム)×需要の標準偏差×安全係数。詳しくは安全在庫の役割りと標準偏差を使った計算方法をわかりやすく解説します。を参照下さい
平均在庫: シミュレーション期間中における庫内在庫の平均
サービス率: 欠品になった日数÷シミュレーション日数
充足率: 欠品になった総数÷需要の総数
そして最後に、シミュレーション期間における庫内在庫の推移がグラフで表示されます。
物流コスト
シミュレーション期間中における物流関連のコストが次のように表示されます。
トータル輸送コスト: 輸送コスト単価✕発注回数
トータル保管コスト: ∑輸送コスト単価✕庫内在庫数
トータル欠品コスト: 欠品コスト単価✕欠品総数
トータルロジスティクスコスト: 上記3コストの合計
船便と陸送便で物流コストを比較
具体的に下記のような事例をシミュレーションしてみましょう。
カンボジアの某商社はタイから商品Aをコンテナを使った船便で毎週輸入しており、コンテナ当たりの輸送コストは15万円です。
リードタイムは20日かかっています。
これをクロスボーダートラックを使った輸入に切り替えると、輸送コストはコンテナ当たり30万円に上がりますが、リードタイムは3日に削減されます。
この商社はクロスボーダートラックに切り替えるべきでしょうか?
商品Aの需要、許容欠品率、保管コスト単価、欠品コスト単価はすべて本アプリのデフォルト値と同じとします。
船便の場合は次のようになります。
クロスボーダートラック便では次のようになります。
従って、クロスボーダートラックを使う方がトータル物流コストは安くなります。
しかし、この結果は条件により変わってきます。
扱っている商品の欠品の粗利が少なくて、欠品コストが半分になると次のようになります。
船便の場合
クロスボーダートラック便の場合
今度は船便の方が安くなりました。
まとめ
このように本アプリを使って輸送モードによるトータル物流コストを比較することができます。
しかし、本アプリでは発注当たりの輸送コストを固定としています。
実際には発注量により輸送コストが変わるケースがほとんどだと思います。
そのようなケースにも対応するアプリについてはこちらをどうぞ。