こちらの記事では経理の業務プロセスの中で生成AIが最も活用できるポイントを整理しました。結論としてはキャッシュフローの分析に有用とのことでしたので、ここでは一歩進めて実際にこれをやってみようと思います。
今回使うのはChatGPTの有料版で使用可能なコードインタープリタという機能になります。これはPythonというプログラムをChatGPT上で記述し、実行するための機能です。プログラミングがわからなくても使うことができるのが一番のメリットです。まず使用開始するにはこちらのプロセスが必要ですのでご了承ください。
https://weel.co.jp/media/about-codeinterpreter
この記事にはコードが出てきますが、あくまで計算結果の裏側を見せる目的ですので理解する必要はありません。
架空のデータの準備
まずは架空のデータを作成してもらいました。これについては下記のようにお願いしました。
キャッシュフローの予測に必要なデータを架空のもので良いので過去1年分、月毎でそれぞれつくって表にしてください。シチュエーションとしては売り上げが徐々に下降していて、固定費があがっている状態です。
その回答がこちらです。
月 | 売上 (千円) | 固定費 (千円) | 変動費 (千円) | 在庫 (千円) | 未回収債権 (千円) | 支払予定債務 (千円) | 手元資金 (千円) | 税金 (千円) | 非定期的な支出 (千円) |
---|---|---|---|---|---|---|---|---|---|
1 | 1,088,203 | 207,610 | 435,281 | 500,000 | 217,641 | 150,000 | 200,000 | 163,230 | 42,698 |
2 | 1,001,826 | 210,308 | 400,730 | 500,000 | 200,365 | 150,000 | 200,000 | 150,274 | 5,456 |
3 | 1,012,573 | 222,620 | 405,029 | 500,000 | 202,515 | 150,000 | 200,000 | 151,886 | 20,458 |
4 | 1,057,499 | 230,609 | 423,000 | 500,000 | 211,500 | 150,000 | 200,000 | 158,625 | 18,128 |
5 | 1,020,651 | 251,304 | 408,260 | 500,000 | 204,130 | 150,000 | 200,000 | 153,098 | 35,328 |
6 | 860,227 | 243,403 | 344,091 | 500,000 | 172,045 | 150,000 | 200,000 | 129,034 | 34,694 |
7 | 938,414 | 257,676 | 375,365 | 500,000 | 187,683 | 150,000 | 200,000 | 140,762 | 21,549 |
8 | 865,159 | 255,095 | 346,064 | 500,000 | 173,032 | 150,000 | 200,000 | 129,774 | 23,782 |
9 | 849,385 | 247,197 | 339,754 | 500,000 | 169,877 | 150,000 | 200,000 | 127,408 | 11,122 |
10 | 856,894 | 288,354 | 342,757 | 500,000 | 171,379 | 150,000 | 200,000 | 128,534 | 192 |
11 | 825,384 | 299,553 | 330,154 | 500,000 | 165,077 | 150,000 | 200,000 | 123,808 | 16,521 |
12 | 872,714 | 292,578 | 349,085 | 500,000 | 174,543 | 150,000 | 200,000 | 130,907 | 21,563 |
これを売上と固定費の関係がわかりやすくなるようグラフにしてもらいました。
これを売上と固定費について折れ線グラフで描画してください。項目は文字化けしないよう全て英語に直してください。
Q:今後6ヶ月のキャッシュフローはどうなっている
ではこのデータに対してキャッシュフローの予測をしてもらいましょう。シンプルに「今後6ヶ月を予測してください」と伝えました。
予測された次の6ヶ月(2023年1月から6月)の月毎のキャッシュフローは以下の通りです。ここでのキャッシュフローは、売上から固定費、変動費、税金、非定期的な支出を差し引き、未回収債権を加えた後、支払予定債務を差し引いた金額です。
月 予測されたキャッシュフロー (千円) 1 356,748 2 326,036 3 295,325 4 264,613 5 233,901 6 203,189 これらの予測によると、キャッシュフローは毎月減少していく傾向が見られます。この傾向が続く場合、企業は財務状況の悪化に直面する可能性があります。そのため、売上向上策の実施やコスト削減、資金調達の検討など、財務健全性を維持するための対策が求められます。
ちなみに、この計算結果の裏側ではこのようなコードが走っています。理解する必要はありませんが、「どうしてこの結果になったんだ?」という疑問がある場合は日本語の部分だけでも読んでみると良いでしょう。ここでは
売上と固定費だけを線形回帰で予測(その他は平均値)している
ということだけが分かれば良いと思います。少なくともいい加減な数字を出しているわけではない、というのも重要ですね。
from sklearn.linear_model import LinearRegression
# 次の6ヶ月(2023年1月から6月)のデータを予測するための準備
future_months = pd.date_range(‘2023-01-01′, periods=6, freq=’M’)# 線形回帰モデルを使用して売上と固定費のトレンドを予測
model_sales = LinearRegression().fit(df.index.values.reshape(-1, 1), df[‘Sales’])
model_fixed_costs = LinearRegression().fit(df.index.values.reshape(-1, 1), df[‘Fixed Costs’])# 予測値の計算
predicted_sales = model_sales.predict(future_months.month.values.reshape(-1, 1))
predicted_fixed_costs = model_fixed_costs.predict(future_months.month.values.reshape(-1, 1))# 変動費、在庫、未回収債権、支払予定債務、手元資金、税金、非定期的な支出は過去のトレンドに基づいて推定
# ここでは、過去12ヶ月の平均値を使用
avg_variable_costs = df[‘Variable Costs’].mean()
avg_inventory = df[‘Inventory’].mean()
avg_receivables = df[‘Receivables’].mean()
avg_payables = df[‘Payables’].mean()
avg_cash_on_hand = df[‘Cash on Hand’].mean()
avg_taxes = df[‘Taxes’].mean()
avg_non_regular_expenses = df[‘Non-Regular Expenses’].mean()# 予測データフレームの作成
predicted_df = pd.DataFrame({
‘Month’: future_months.month,
‘Predicted Sales’: predicted_sales,
‘Predicted Fixed Costs’: predicted_fixed_costs,
‘Average Variable Costs’: avg_variable_costs,
‘Average Inventory’: avg_inventory,
‘Average Receivables’: avg_receivables,
‘Average Payables’: avg_payables,
‘Average Cash on Hand’: avg_cash_on_hand,
‘Average Taxes’: avg_taxes,
‘Average Non-Regular Expenses’: avg_non_regular_expenses
})predicted_df.set_index(‘Month’, inplace=True)
predicted_df# 予測された月毎のキャッシュフローを計算 # キャッシュフロー = 売上 – 固定費 – 変動費 – 税金 – 非定期的な支出 + 未回収債権 – 支払予定債務 predicted_cash_flow = predicted_df[‘Predicted Sales’] – predicted_df[‘Predicted Fixed Costs’] – \ predicted_df[‘Average Variable Costs’] – predicted_df[‘Average Taxes’] – \ predicted_df[‘Average Non-Regular Expenses’] + predicted_df[‘Average Receivables’] – \ predicted_df[‘Average Payables’] # 予測されたキャッシュフローをデータフレームに追加 predicted_df[‘Predicted Cash Flow’] = predicted_cash_flow predicted_df[[‘Predicted Cash Flow’]]
Q:いつキャッシュは尽きるのか?
6ヶ月後でも2億円ほどキャッシュはあります。しばらくは大丈夫そうですね。ではどれだけ大丈夫なのでしょうか。今の傾向が続いたとすると、キャッシュが尽きるのがいつか聞いてみました。(ちなみにこの予測のスタートは2022年1月1日になっています)
今後3年間(36ヶ月)のキャッシュフローを予測した結果、現在の手元資金と予測されたキャッシュフローを合計した場合、企業のキャッシュは2023年の第15ヶ月(2024年3月)に尽きると予測されます。
この予測に基づくと、企業は約1年後に資金繰りの問題に直面する可能性があるため、迅速な対策を講じる必要があります。これには、売上向上策の実施、コスト削減、資金調達オプションの検討などが含まれるでしょう。
# 再度コードの実行に必要なライブラリとモデルを準備します
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression# 元のデータの再作成
months = pd.date_range(‘2022-01-01′, periods=12, freq=’M’)
sales = np.array([1.088e+06, 1.001e+06, 1.012e+06, 1.057e+06, 1.020e+06, 860e+03, 938e+03, 865e+03, 849e+03, 856e+03, 825e+03, 872e+03])
fixed_costs = np.array([207610, 210308, 222620, 230609, 251304, 243403, 257676, 255095, 247197, 288354, 299553, 292578])
cash_on_hand = 200000# 線形回帰モデルを使用して売上と固定費のトレンドを予測
model_sales = LinearRegression().fit(np.arange(1, 13).reshape(-1, 1), sales)
model_fixed_costs = LinearRegression().fit(np.arange(1, 13).reshape(-1, 1), fixed_costs)# 今後3年間(36ヶ月)のデータを予測するための準備
future_3_years = np.arange(13, 49).reshape(-1, 1)# 既存の線形回帰モデルを使用して、3年間の売上と固定費を予測
predicted_sales_3_years = model_sales.predict(future_3_years)
predicted_fixed_costs_3_years = model_fixed_costs.predict(future_3_years)# 変動費、税金、非定期的な支出の平均値を計算(過去12ヶ月の平均)
avg_variable_costs = sales * 0.4
avg_taxes = sales * 0.15
avg_non_regular_expenses = 20000 # 固定値と仮定# 3年間のキャッシュフローを計算
predicted_cash_flow_3_years = predicted_sales_3_years – predicted_fixed_costs_3_years – \
avg_variable_costs.mean() – avg_taxes.mean() – \
avg_non_regular_expenses# 現在の手元資金から開始して、キャッシュフローを加算し、キャッシュが尽きる時期を計算
cumulative_cash_3_years = cash_on_hand
month_when_out_of_cash_3_years = Nonefor i, cash_flow in enumerate(predicted_cash_flow_3_years, start=13):
cumulative_cash_3_years += cash_flow
if cumulative_cash_3_years <= 0:
month_when_out_of_cash_3_years = i
breakmonth_when_out_of_cash_3_years
Q:固定費は何%削減する必要がある?
では固定費はどれだけ改善する必要があるのでしょうか。下記のように聞いてみました。
月々の固定費は何%削減するとキャッシュフローは安定しますか?
固定費をわずか0.1%削減するだけで、予測された3年間の総キャッシュフローが現在の状況よりも改善されることが予測されます。これは、固定費が全体的なキャッシュフローに与える影響が大きいことを示しています。
ただし、実際のビジネス運営においては、固定費の削減は慎重に行う必要があります。削減が業務の効率や品質に悪影響を与えないように、どのコストを削減するか、どの程度の削減が適切かを慎重に検討する必要があります。また、固定費削減以外にも、売上を増やす戦略や、その他の費用削減策も併せて考慮することが望ましいでしょう。
同じようにコードも掲載しておきます。どうやら固定費削減の割合を0%から徐々に増やして総当たりする方法をとっているようですね。
# 固定費削減によるキャッシュフローの安定化を計算する
# 現在のキャッシュフローの状況を確認(最初の月の手元資金から予測されるキャッシュフローの合計)
initial_cash_flow = cash_on_hand + predicted_cash_flow_3_years.sum()# 固定費削減の割合を0%から100%まで0.1%刻みで試す
reduction_rates = np.arange(0, 1.001, 0.001)
stable_cash_flow_rate = Nonefor rate in reduction_rates:
# 固定費を削減した場合の新しいキャッシュフローを計算
reduced_fixed_costs = predicted_fixed_costs_3_years * (1 – rate)
new_cash_flow = predicted_sales_3_years – reduced_fixed_costs – \
avg_variable_costs.mean() – avg_taxes.mean() – \
avg_non_regular_expenses
new_total_cash_flow = cash_on_hand + new_cash_flow.sum()# 新しいキャッシュフローが現在のキャッシュフローより高くなった場合、その削減率を記録
if new_total_cash_flow > initial_cash_flow:
stable_cash_flow_rate = rate
breakstable_cash_flow_rate
かなり具体化してきました。もちろん売上を増加させる、利益率をあげる、など様々な方向性が考えられますが、同じように対話していけば良いでしょう。ここでは固定費削減の方向性を検討することにします。
Q:固定費を0.1%下げるにはどんな施策が必要?
ここではさらに固定費の中でも、具体的にどこに手をつけるのが良いか検討してみます。まずは架空の
以下は、架空の固定費の詳細です。これらの数値は、既存の固定費の平均から各カテゴリに割り振られたものです。
カテゴリ 金額 (千円) 家賃 75,158 人件費 100,210 光熱費 25,053 保険 25,053 メンテナンス 12,526 その他 12,526 この表は、固定費を分類別に分けて表示しており、各カテゴリが全体の固定費に占める割合に基づいて金額が割り当てられています。これにより、どのカテゴリが最もコストがかかっているか、どこに削減の余地があるかなどが分かります。例えば、最も高い費用が人件費であり、次いで家賃が続いています。これらの領域は、特にコスト削減の機会を探る際の重要な焦点となるでしょう。
人件費が最大の項目ですが、ではここに真っ先に手をつけて良いものなのでしょうか。せっかくなので、この考え方についても聞いてみましょう。
0.1%の削減は比較的小さな金額ですが、固定費全体に与える影響は限定的でも、特定の領域で効果的な削減を行うことが重要です。0.1%削減を実現するためには、以下のように検討すべきです:
- 全体の固定費に対する0.1%の金額を計算:
- まず、現在の全体の固定費から0.1%の金額を算出します。
- 例: 固定費の平均が約250,000千円の場合、0.1%は約250千円です。
- 最も影響が少ない領域から検討:
- 固定費の中で比較的少額の領域、例えば「Maintenance」や「Other」から削減を検討します。
- これらの領域では小さな変更や効率化でも目標の削減額を達成しやすいです。
- コスト削減の機会の識別:
- 既存の契約やサービスについて見直しを行い、不必要なサービスや費用を削減します。
- 例えば、定期的なメンテナンスサービスの契約内容を見直す、オフィス用品の購入を最適化するなどです。
- 小さな削減でも積み重ねる:
- 0.1%という小さな削減でも、複数の領域で小さな改善を行うことで、全体としての削減効果が期待できます。
このように、0.1%の削減は小さな金額ですが、コスト意識を持って各領域を慎重に見直すことで、効果的に達成することが可能です。
上記の表を基に0.1%の固定費削減を考える場合、以下の領域に手をつけるのが良いでしょう:
- その他カテゴリ:
- 金額が最も少ないため、削減の影響が最小限に抑えられます。
- このカテゴリーには多様な小規模な支出が含まれる可能性があり、無駄を省くことで比較的容易に削減できる可能性があります。
- メンテナンスカテゴリ:
- こちらも比較的少額の領域で、削減による影響が少ない可能性があります。
- メンテナンスのスケジュールや契約内容を見直し、コスト効率の良い方法を模索します。
これらのカテゴリでは、削減によるビジネスへの影響が最小限であるため、削減を最初に検討するのに適しています。ただし、これらの領域で削減を行う際にも、サービスの質や業務の効率に悪影響を与えないように注意が必要です。また、削減の影響を定期的に評価し、必要に応じて調整を行うことが重要です。
結論としては
その他、もしくはメンテナンスカテゴリで25万円程度の削減をする。
という施策になりました。これでかなりやることが明確になったと思います。
まとめ
いかがでしたでしょうか。実際にコードインタープリタを使って経営者の関心ごとであるキャッシュフローについての分析を、コードに関する専門知識なしで進めてきました。
本来はこちらに掲載したようなコードを書いてくれる人を横に置きながら「ああでもないこうでもない」と議論できるのが一番ですが、これだけ気軽に質問して即答してくれるこのツールは経営者にとって非常にありがたい存在だと思います。
しかし、経営者に問われているのは自分が知りたいことをロジカルに伝えるということです。今、何に対して答えを出す必要があるのか?という点をはっきりさせ、その道筋をある程度頭の中で描いて生成AIをガイドしていく必要があります。もちろん、そのための思考の整理についても生成AIを使ってみるのも良いかもしれませんね。
*この記事は生成AIによって半自動的に生成しています。
大好評!「マーケティングのための生成AI活用大全」のダウンロードはこちらから
弊社ではChatbotの開発や生成AIを活用した記事作成なども行っています。弊社の具体的な事例もありますのでご興味がある方はこちらからご覧ください。