見出し画像

CVP分析をpythonを使って理解した勉強メモ

問1 変動比率を求める
問2 損益分岐点売上高を求める
問3 目標売上利益を達成する売上高を求める

まず、計算に使用するCVP分析のクラスを定義する

# CVP分析
class CVP():
   def __init__(self):
       self.sales = 0 # 売上高
       self.v = 0 # 変動費
       self.f = 0 # 固定費
   
   # 変動費率の算定
   def vrate(self):
       return self.v / self.sales

   # 損益分岐点売上高
   def breakevenpointsales(self):
       return int(self.f / (1 - self.vrate()))

   # 目標利益達成売上高
   def targetprofitsales(self, target):
       return int((self.f + target) / (1 - self.vrate()))


実際の数値を入れて計算してみる。面倒くさいので、数値は1000分の1にした。

cvp = CVP()
cvp.v = (805 + 420 + 70)
cvp.f = (650 + 515 + 440 + 285)
cvp.sales = 3500

# 第1問
answer_1 = int( cvp.vrate() * 100 )
print('変動費率:',answer_1,'%')

# 第2問
answer_2 = cvp.breakevenpointsales()
print('損益分岐点売上高:',answer_2)

# 第3問
target = 630
answer_3 = cvp.targetprofitsales(target)
print('目標利益',target,'達成売上高:',answer_3)

変動費率: 37 %
損益分岐点売上高: 3000
目標利益 630 達成売上高: 4000


計算結果が正しく表示された。これを今度はnumpyとmatplotlibを使って図表にしてみる。

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 5))
ax = fig.add_subplot(111)
sale = np.arange(1,5000)    

# 売上高
sales = sale
ax.plot(sale, sales, color='gray')

# 変動費
vc = sale * cvp.vrate() + cvp.f
ax.plot(sale, vc, color='gray')

# 固定費
fc = sale * 0 + cvp.f
ax.plot(sale, fc, ls = '--', color = 'gray')

# 損益分岐点売上高
bep = cvp.breakevenpointsales()
ax.axvline(bep, ls = ':', color = 'red')

# 目標利益達成売上高
tps = cvp.targetprofitsales(target)
ax.axvline(tps, ls = ':', color = 'blue')
plt.show()    

結果

画像1