Management has many decisions to make, another part of that is the incremental analysis, which analyzes the costs of various alternatives to outsourcing. Incremental analysis involves:
whether to accept an order at a special price
make or buy
sell or process more
retain or replace equipment
eliminate an unprofitable segment
allocate limited resources
7.1 Management Decision Making
Part of being involved in management is making decisions, and is a key function to the role. There are some important steps in the process, we will make a easy function to help practice making functions and to aid in the concept.
Show the code
def decision_making():print(" - Decision Making Process -")def step1():print("1. Identify the problem, and assign responsibility")def step2():print("2. Determine and evaluate possible courses of action")def step3():print("3. Make a decision")def step4():print("4. Review the results of the decision")#-- inside the main function step1() step2() step3() step4()
Now call the decision making function
Show the code
decision_making()
- Decision Making Process -
1. Identify the problem, and assign responsibility
2. Determine and evaluate possible courses of action
3. Make a decision
4. Review the results of the decision
7.2 Incremental Analysis
In the function of decision making is evaluating options for actions to take. Incremental analysis is used to determine the financial expenses that change under alternative courses of action. Incremental analysis uses three concepts:
relevant cost factors that are costs and revenues (differ for each option) and that they occur in the future
opportunity costs is the loss of one opportunity in favor of another
sunk costs are costs already incurred that won’t change or can be avoided by decisions (not relevant costs)
7.3 Incremental Analysis Types
7.3.1 Puchase Order
Decision to accept an order at special price or reject. Company data is in the data dictionary.
Purchase order function is made to help in making a decision
Show the code
def purchase_order(maufacturing_data: dict): total_cost_per_unit = manuf_data['variable_costs_per_unit'] + manuf_data['fixed_costs_per_unit'] offer_price = manuf_data['offer']['price_per_unit'] var_manuf_costs = manuf_data['variable_costs_per_unit'] * manuf_data['offer']['purchase'] exp_revenue = manuf_data['offer']['price_per_unit'] * manuf_data['offer']['purchase'] net_income_offer = exp_revenue - var_manuf_costsprint("\n -- Incremental Analysis: Purchase Order --")if total_cost_per_unit > offer_price:print("Reject offer (based on cost alone)")print("Variable manufacturing costs will be ${:,}".format( var_manuf_costs))print("Expected revenue for order ${:,}".format(exp_revenue))print("Net income from order ${:,}".format(net_income_offer))purchase_order(manuf_data)
-- Incremental Analysis: Purchase Order --
Reject offer (based on cost alone)
Variable manufacturing costs will be $16,000
Expected revenue for order $22,000
Net income from order $6,000
7.3.2 Make or Buy
Company decision to make parts or buy them.
look for costs that change
ignore costs that don’t change
opportunity costs can make a difference
If this company decides to purchase items, all variable costs and one quarter of the fixed costs will be eliminated.
def make_buy(prod_data: dict): tot_costs =sum( list(product_cost_data.values() )[:-3] ) prod_costs = prod_data['production_costs'] avg_cost_per_unit = tot_costs / prod_costsprint("Make")print("Average cost per unit ${:,}".format(avg_cost_per_unit))print("Total costs to make ..... ${:,}".format(tot_costs))#--- purchase fixed_cost_elim = prod_data['eliminated_costs'] purch_fixed_costs = prod_data['fixed_manuf_overhead'] * (1- fixed_cost_elim ) tot_purch_price = prod_data['purchase_price'] * prod_costs tot_purch_costs = purch_fixed_costs + tot_purch_priceprint("\nBuy")print("purchase fixed costs ${:,}".format(purch_fixed_costs))print("purchase price ${:,}".format(tot_purch_price))print("Total cost to buy ..... ${:,}".format(tot_purch_costs))print("Net income from purchase ${:,}".format( tot_costs - tot_purch_costs) )make_buy(product_cost_data)
Make
Average cost per unit $1.0
Total costs to make ..... $166,000.0
Buy
purchase fixed costs $18,000.0
purchase price $149,400.0
Total cost to buy ..... $167,400.0
Net income from purchase $-1,400.0
A function to help in deciding whether to sell or process further
Show the code
def sell_process( prod_data: dict):print("Incremental analysis: Sell or Process") net_income_sell = prod_data['price'] -\ prod_data['var_production_cost'] -\ prod_data['fixed_production_cost'] price_delta = prod_data['process']['price'] - prod_data['price'] var_costs = prod_data['var_production_cost'] + prod_data['process']['var_production_cost'] var_costs_delta = prod_data['var_production_cost'] - var_costs prod_costs = prod_data['fixed_production_cost'] + prod_data['process']['fixed_production_cost'] prod_costs_delta = prod_data['fixed_production_cost'] - prod_costs net_income_process = prod_data['process']['price'] -\ var_costs -\ prod_costs net_income_delta = price_delta + prod_costs_delta +\ var_costs_delta print("Net income (Sell) ..... $", net_income_sell)print("Net income (Process) ..... $", net_income_process)print("Total Net income revenues ..... $", net_income_delta)# print(var_costs_delta)# print(prod_costs_delta)# print(net_income_delta)if net_income_process < net_income_sell:print(" It is advised to sell without further processing")sell_process( furniture )
Incremental analysis: Sell or Process
Net income (Sell) ..... $ 5
Net income (Process) ..... $ 4
Total Net income revenues ..... $ -1
It is advised to sell without further processing
7.3.4 Retain or Sell
Sunk costs are not relevant to incremental analysis
Show the code
machines = {'old_machine': {'original_price': 160e3,'accumulated_depreciation': 120e3,'estimated_life_yrs': 4,'scrap_revenue': 24e3# machines sold to scrap dealer },'new_machine': {'original_price': 240e3,'accumulated_depreciation': 0,'estimated_life_yrs': 4,'estimated_cost_savings': 55e3 }}
Show the code
def retain_replace( machine_data: dict): cost_savings_replace = machines['new_machine']['estimated_cost_savings'] * machines['new_machine']['estimated_life_yrs'] new_machine_cost = machines['new_machine']['original_price'] sale_proceeds = machines['old_machine']['scrap_revenue'] net_savings = cost_savings_replace + (-1* new_machine_cost) + sale_proceedsprint("- Incremental Analysis: Retain or Replace - ")print("Replace Equipment ............... ${:,}".format(cost_savings_replace))print("New machine cost ............... ${:,}".format(new_machine_cost))print("Proceeds from old machine ...... ${:,}".format(sale_proceeds))print("Net incremental savings ......... ${:,}".format(net_savings))if net_savings >0:print("\tPurchasing new machines will increase net income by ${:,}".format(net_savings))retain_replace(machines)
- Incremental Analysis: Retain or Replace -
Replace Equipment ............... $220,000.0
New machine cost ............... $240,000.0
Proceeds from old machine ...... $24,000.0
Net incremental savings ......... $4,000.0
Purchasing new machines will increase net income by $4,000.0
7.3.5 Eliminate Segment
focus on the relevant costs, the data that changes under the alternate courses of action.
This company makes various accessories such as hats and scarves. The hats and scarves line had a net loss of 30,000 dollars. If this company eliminates the hats & scarves, $20,000 fixed costs will remain.
a function to determine if both hats and scarves should be eliminated
Show the code
def elim_segment( products: dict): sales_continue = products['hats_scarves']['sales'] var_costs = products['hats_scarves']['var_expenses'] contrib_margin = sales_continue - var_costs fixed_costs = products['hats_scarves']['fixed_expenses'] net_income = contrib_margin - fixed_costs# no sales, no var costs, no contribution margin elim_fixed =0- products['hats_scarves']['elim_fixed_costs'] net_income_delta = (fixed_costs + elim_fixed ) - contrib_marginprint("- Incremental Analysis: Eliminate Segment -")print("Continue --")print(" Sales ............... ${:,}".format(sales_continue))print(" Variable costs ...... ${:,}".format(var_costs))print(" Contribution margin ...... ${:,}".format(contrib_margin))print(" Fixed costs .............. ${:,}".format(fixed_costs))print(" Net income ............... ${:,}".format(net_income))print("Eliminate --")print(" Net income ............... ${:,}".format(elim_fixed))print("\nTotal net income ..... ${:,}".format(net_income_delta))if net_income_delta >0:print("Eliminating product line(s) results in net income of ${:,}".format(net_income_delta))elim_segment( accessories)
- Incremental Analysis: Eliminate Segment -
Continue --
Sales ............... $400,000.0
Variable costs ...... $310,000.0
Contribution margin ...... $90,000.0
Fixed costs .............. $120,000.0
Net income ............... $-30,000.0
Eliminate --
Net income ............... $-20,000.0
Total net income ..... $10,000.0
Eliminating product line(s) results in net income of $10,000.0
7.3.6 Allocate Resources
A company that sells 3 types of an item, machine time is limited. The company requires more machine times to manufacture the second and third type item.