Process cost accounting is about the process involved in mass producing products that are identical or similar in nature. To calculate production costs the process costing is used.
Process cost accounting involves:
process costing for manufacturing and service companies
determining the similarities and differences between job-order cost and process cost systems
operations costing
cost flow
manufacturing costs assignment (journal entries)
weighted average method
physical unit flow
equivalent units of production
unit production costs
cost reconciliation schedule
production cost report
equivalent units and production cost report
FIFO method, equivalent units, weighted average
4.1 Process Cost Systems
Manufacturing process cost systems is to apply costs to similar products that are mass produced in a continuous way.
Similarities and differences between job order and process cost systems is that costs are tracked through the series of manufacturing processes and not by individual jobs.
Job order cost flow:
direct materials, labor, manufacturing overhead
work in process inventory
finished goods inventory
cost of goods sold
Process cost flow:
direct materials, labor, manufacturing overhead
work in process (department A)
work in process (department B)
finished goods inventory
cost of goods sold
The similarities of job order cost and process cost systems, are manufacturing cost elements, both have costing systems track materials, labor and overhead. The accumulation of the costs of materials, labor and overhead are all debited costs. Lastly, the flow of costs are debited in both costing system but the methods used do differ between them.
The differences are the number of work in process accounts used, job order costing uses only one process account. The documents used to track costs, as process costs system summarizes the costs in a production cost report for each department and job cost systems tally individual jobs then sums the cost in a cost sheet when the job is finished. The process cost system the unit cost is the total manufacturing costs for the period divided by the units produced during the period, unlike job cost system job cost divided by units produced.
Operating costs is the hybrid approach using both process cost and job order cost systems.
4.2 Manufacturing costs
The accumulation of costs for materials, labor and manufacturing overhead is debited for all raw materials when materials are purchased. Factory labor is debited when costs are incurred, and likewise for debit overhead costs.
All raw materials used for production are the material costs
time tickets could be used in a factory labor cost for process cost system
manufacturing overhead costs can be determined by looking at the machine time used (not direct labor), as this provides a clear overhead cost.
4.2.1 Proccess costing example
A company makes a generic beverage, using two processes such as blending and bottling. In June the raw materials used cost $18,000 for blending and 4,000 dollars for bottling. Factory labor costs were $12,000 for blending, 5,000 for bottling. Manufacturing overhead costs were 6,000 dollars for blending and 2500 dollars for bottling. Units completed at a cost of 19,000 dollars in the blending department transferred to bottling department. Units completed at a cost of 11,000 dollars in the bottling department transferred to the finished goods inventory. Journalize the assignment of these costs to the two processes and the transfer of the units.
Make a dictionary for the costs. The abbreviation ‘wip’ is for work in process.
Calculate the materials used, factory labor to production and overhead to production.
Show the code
def process_costing( dict):# get the dictionary values as an array and use the index of elements d =list(dict.values()) raw_invent = d[0] + d[1] factory_labor = d[2] + d[3] manuf_overhead = d[4] + d[5] blending =dict['blending_dep'] bottle =dict['bottling_dep']print(" -- Process Costing --")print("Raw materials inventory ............ ${:,}".format(raw_invent))print("Factory labor ...................... ${:,}".format(factory_labor))print("Manufacturing overhead ............. ${:,}".format(manuf_overhead))print("Work in process blending ........... ${:,}".format(blending ))print("Work in process bottling ........... ${:,}".format(bottle ))process_costing( bev_costs)
-- Process Costing --
Raw materials inventory ............ $22,000.0
Factory labor ...................... $17,000.0
Manufacturing overhead ............. $8,500.0
Work in process blending ........... $19,000.0
Work in process bottling ........... $11,000.0
4.2.2 Equivalent units
Process cost system uses equivalent units of production which measures the work done during the period in completed units.
the formula:
conversion costs is the sum of labor costs and overhead costs
units completed and transferred out (materials) + equivalent units of ending work in process (materials) = equivalent units of production (materials)
units completes and transferred out (conversion costs) + equivalent units of ending work in process (conversion costs) = equivalent units of production (conversion costs)
4.2.2.1 Quick example
Calculate the cost of teachers at a college for each full time student.
total cost of teachers $9,000,000
part time students = 900
full time students = 1,000
part time students take 60% of the classes of a full time student
Show the code
teachers = {'PartTime': 900, 'FullTime': 1000,'Cost': 9e6,'PT_percent': 0.6}def teacher_cost( dict): pt =dict['PartTime'] ft =dict['FullTime'] cost =dict['Cost'] prct =dict['PT_percent'] FT_equiv = pt + (prct * ft) total_teacher_cost = cost/ FT_equivprint("The cost of teacher per FT student = ${:,}".format(total_teacher_cost))teacher_cost( teachers )
The cost of teacher per FT student = $6,000.0
4.2.3 Weighted average method
Reusing the beverage company from before, the blending department has an ending work in process of 4,000 units which account for 60% of the materials, labor and overhead. Period output for completion and transfer (to another department in the manufacturing process) is not specified in this example but is added to the calculation.
Show the code
units =4000percent =0.60period_output =0equivalent_units = units * percent + period_outputprint(f"Equivalent units of production = {equivalent_units} units")
Equivalent units of production = 2400.0 units
4.2.4 Quick example
A company has start of process and end of process, where all raw materials for production are accounted for at the beginning of manufacturing, therefore shows materials 100% accounted for while conversion costs is part of the manufacturing process.
wip = work in process
stage
units
materials
conversion costs
wip June 1
100,000
100%
70%
started production
800,000
total units
900,000
units transferred
700,000
wip June 30
200,000
100%
70%
total units
900,000
Show the code
units =200e3percent = [1.0, 0.6]period_output =700e3equivalent_units = (units * percent[0]) + period_outputequivalent_units_2 = (units * percent[1]) + period_outputprint("Equivalent units of production (materials) = {:,} units".format(equivalent_units))print("Equivalent units of production (conversion costs) = {:,} units".format(equivalent_units_2))
Equivalent units of production (materials) = 900,000.0 units
Equivalent units of production (conversion costs) = 820,000.0 units
4.3 Production cost report
A production cost report is the key document management uses to understand the activities in a department, showing the production quantities and cost data for each department. Requirements for this report are:
calculation for physical unit flow
calculate the equivalent units of production
calculate the unit production costs
prepare the cost reconciliation schedule
This section will continue with the company used in previous examples. This example company makes breakfast pancakes which has different departments.
4.3.1 Physical flow
Physical units are the actual units to be accounted for during a period, regardless of any work performed. To keep track of these units, add units that got started or transferred into production during the time period, these units are called total units to be accounted for.
Using a nested list that has 2 data dictionaries to hold data about the company’s mixing department. This data object looks like a JSON data object, you can convert nested lists into dataframes but we will just use this nested list for the functions as this is flexible and looks similar to a Excel spreadsheet (in a way).
Normally we have seen simple dictionaries where there is a single key and a value pair, but here we have a list that stores 2 dictionaries, each which has a single key then the value is a dictionary instead of a single value. To access elements from a nested list array and get items from a dictionary, you need to slice the list, then specify which dictionary key, then the name of the nested dictionary key to get the value.
mixing_data has 2 elements which are both dictionaries [ {}, {} ], remember zero index
name the dictionary key [0]['units']
name the nested dictionary key [0]['units']['wip_start'] to get the value
def physical_flow( dict):# units to be accounted for = wip_start + started_transferred tot_units =dict['units']['wip_start'] +dict['units']['units_in_production']# units accounted for = completed_transferred + wip_end units_acc =dict['units']['units_completed_transferred'] +dict['units']['wip_end']print("-- Physical Unit Flow --")print("Total units accounted for ........ {:,}".format(units_acc))print("Total units ....................... {:,}".format(tot_units))physical_flow( mixing_data )
-- Physical Unit Flow --
Total units accounted for ........ 900,000.0
Total units ....................... 900,000.0
4.3.2 Equivalent units: Production
After determining the physical flow of units next step is to measure the department’s productivity in equivalent units of production. For this example company, two calculations are required as there is mixing materials and the conversion costs.
-- Equivalent Units --
Equivalent units (materials) .................... 900,000.0
Equivalent units (conversion costs) ............. 820,000.0
4.3.3 Unit Production Costs
Now we need to calculate the unit production costs which are costs expressed in terms of equivalent units of production. If equivalent units of production are different for materials and for conversion costs, then 3 unit costs are calculated:
material costs
conversion costs
total manufacturing cost
Calculation of the total materials cost for pancakes
-- Unit Production Costs --
Total materials costs ..................... $220,000.0
Unit materials cost ....................... $0.24
Total conversion costs ..................... $220,000.0
Unit conversion costs ..................... $0.27
Total manufacturing cost per unit ......... $0.51
Cost reconciliation schedule ............... $437,400.0
4.3.4 Cost Reconciliation Schedule
Now is the stage where the cost of goods transferred out of one department and into another are determined.
-- Cost Reconciliation --
Total costs charged to department ........... $655,000.0
For this company example, $655,000 were the costs for the mixing department.
4.3.5 Production Cost Report
The production cost report is an internal document use by management that shows the production quantity and cost data for a department. There are 4 steps in preparing a production cost report:
prepare a physical unit schedule
calculate the equivalent units
calculate the unit costs
prepare a cost reconciliation schedule
This book is showing only Python code and output, but since accounting is in the business sector, you will obviously want to use your Python skills and convert your own .py file into a Microsoft Word document or presentation. By knowing Python you can extend these skills to using libraries such as python-docx which makes and reads Word Documents. Once you know Python you can usually type in Google or any other web search engine for “python + search terms” and will get results. Python code now is what you are seeing, but on your own you can make your python files into reproducible professional documents, dashboards and even web apps.
Since each of the steps has already been calculated above using functions, we can just copy our call our functions and get the output of the calculations.
Show the code
print("-- PRODUCTION COST REPORT --")print('')physical_flow(mixing_data)print('')equivalent_units(mixing_data)print('')production_costs( mixing_data)print('')cost_reconciliation(mixing_data)
-- PRODUCTION COST REPORT --
-- Physical Unit Flow --
Total units accounted for ........ 900,000.0
Total units ....................... 900,000.0
-- Equivalent Units --
Equivalent units (materials) .................... 900,000.0
Equivalent units (conversion costs) ............. 820,000.0
-- Unit Production Costs --
Total materials costs ..................... $220,000.0
Unit materials cost ....................... $0.24
Total conversion costs ..................... $220,000.0
Unit conversion costs ..................... $0.27
Total manufacturing cost per unit ......... $0.51
Cost reconciliation schedule ............... $437,400.0
-- Cost Reconciliation --
Total costs charged to department ........... $655,000.0
The wonderful thing about functions is that you spend the time making them, but once you do you benefit from it. Making this report output was really easy, just calling the functions already created.
4.3.6 Cost Report: other
This example company that makes pancakes has 3 departments: mixing, baking and freezing then packaging. The costs of completed units from the mixing department are treated as material costs in the baking department. Transferred-in cost is the component treated the same way as any other cost component in the equivalent units of production and the cost per equivalent unit of production.
Cost data for the freezing and packaging department. By copying the list object mixing_data, we can reuse the structure for new values for the packaging department. Changes do need to be made to this nested list object, but overall less work involved.
A function for production cost report using a data dictionary.
Show the code
def prod_cost_report( dict ):print(" --- Production Cost Report ---\n") units =list(dict['units'].values()) costs =list(dict['costs'].values())# -- units_in_production_complete + wip_end units_acc_transf = units[5] + units[6]# -- wip_start + units_completed_transferred tot_units = units[0] + units[4]# -- units_in_production_complete = units[5] direct_materials_percent_complete = units[2] units_acc_materials = units_in_production_complete + direct_materials_percent_complete wip_end_conversion_complete= units[-1] prct = units[6] * wip_end_conversion_complete units_acc_conv = units_in_production_complete + prct costs_transferred_in = costs[-4] cost_transf = units[-2] + costs_transferred_in# direct_materials_complete + costs_direct_materials cost_materials = costs[3] + costs[8]# conversion_complete + costs_conversion_costs cost_conv = costs[5] + costs[-2] tot_unit_costs = cost_transf + cost_materials + cost_conv unit_cost_transf =round(cost_transf / units_acc_transf, 2) unit_cost_materials =round(cost_materials / units_acc_materials, 2) unit_costs_conv =round(cost_conv /units_acc_conv , 2) tot_unit_costs_2 = unit_cost_transf + unit_cost_materials + unit_costs_conv# cost_wip_start + total_costs total_costs = costs[6] + costs[-1] cost_acc_transf = tot_unit_costs_2 * units_acc_materials wip_end_transf = units[6] * unit_cost_transf# wip_end_direct_material_prct * unit_cost_materials wip_end_material = units[-2] * unit_cost_materials wip_end_conv = prct * unit_costs_conv tot_cost_recon = wip_end_transf + wip_end_material + wip_end_conv + cost_acc_transfprint("-- Physical Unit Flow --")print("Total units ......................................... {:,}".format(tot_units))print("Total units accounted for transferred ............... {:,}".format(units_acc_transf))print("Total units accounted for direct materials .......... {:,}".format(units_acc_materials))print("Total units accounted for conversion costs .......... {:,}".format(units_acc_conv))print("\n-- Unit Costs --")print("Total unit costs transferred ....................... ${:,}".format(cost_transf))print("Total unit costs direct materials .................. ${:,}".format(cost_materials))print("Total unit conversion costs ........................ ${:,}".format(cost_conv))print("Total unit costs ................................... ${:,}".format(tot_unit_costs))print("Unit costs transferred ............................. ${:,}".format(unit_cost_transf))print("Unit costs direct materials ........................ ${:,}".format(unit_cost_materials))print("Unit conversion costs .............................. ${:,}".format(unit_costs_conv))print("Unit costs total ................................... ${:,}".format(tot_unit_costs_2)) print("Total costs ........................................ ${:,}".format(total_costs))print("\n --- Cost Reconciliation Schedule ---")print("Costs accounted for transferred ................... ${:,}".format(cost_acc_transf))print("Work in process end transferred ................... ${:,}".format(wip_end_transf)) print("Work in process end materials ..................... ${:,}".format(wip_end_material))print("Work in process end conversion costs .............. ${:,}".format(wip_end_conv))print("Total costs accounted for ......................... ${:,}".format(tot_cost_recon))#-----prod_cost_report( freezing_data )
--- Production Cost Report ---
-- Physical Unit Flow --
Total units ......................................... 900,000.0
Total units accounted for transferred ............... 900,000.0
Total units accounted for direct materials .......... 800,000.0
Total units accounted for conversion costs .......... 875,000.0
-- Unit Costs --
Total unit costs transferred ....................... $595,000.0
Total unit costs direct materials .................. $120,000.0
Total unit conversion costs ........................ $175,000.0
Total unit costs ................................... $890,000.0
Unit costs transferred ............................. $0.66
Unit costs direct materials ........................ $0.15
Unit conversion costs .............................. $0.2
Unit costs total ................................... $1.01
Total costs ........................................ $1,060,000.0
--- Cost Reconciliation Schedule ---
Costs accounted for transferred ................... $808,000.0
Work in process end transferred ................... $66,000.0
Work in process end materials ..................... $0.0
Work in process end conversion costs .............. $15,000.0
Total costs accounted for ......................... $889,000.0
4.4 Equivalent Units: FIFO
FIFO is first in, first out method for calculating equivalent units. The FIFO method for costs assumes that the work in process completes before new work is initiated. Equivalent units for FIFO are:
process inventory is finished work in units
units in production have been completed
work started but not complete is partially completed, perpetually work in process
The company for this example makes home furnishings.
-- Equivalent Units: FIFO --
beginning inventory required to complete ............ 300.0 units
units started & completed ........................... 7,600 units
equivalent units .................................... 300.0 units
Total equivalent units .............................. 8,200.0 units