Open jsfried opened 6 years ago
I gather that for some systems, there are 2 machines to be moved (at $100 per hour each) and for others 3 machines (hence the scalars 200 and 300 in these equations). The OpCost_harvestssytem_ref table has one row per system-machine combination so these move in costs lowboy are duplicated on as many rows as there are machines in the system-- hopefully, these are only computed once for the system, not once per machine? A less confusing way to so this would be to have zero for the rows for machines that do not require the assignment of a move in cost and MoveInHours*100 for those that do. Otherwise, there should be a separate table for harvest system from this harvest system X machine table.
They are computed once per system.
I am not able to understand the 9_1 code, specifically, what m3[x,] is, but it appears that as implemented in 10_0, this 0.65 gets multiplied by the hourly machine cost of something-- a single machine? All the machines in a system? And if it identical for all machines (except those like brush cut that are but a second function assigned to a machine already executing, and being charged setup costs, for another function, where it is 0), does that make any sense? Why would the setup time be the same for a chainsaw and a yarder? And do we really want to be triple counting the setup time for a forwarder under tethered just because its forwarding time equation has two independently calculated components and the forwarder is also used to load?
m3[x,] is the hourly machine cost for that machine. Previously, only some machines had an associated move in cost. We discussed combining the tables such that each machine in the system was assigned a move in cost, though for some machines it would be assigned a 0 because there is no associated move in cost or something. The other questions I cannot answer.
The OpCost Harvest System Ref table contains the move-in cost assumptions. Aside: Carlin, if we modify these do we need to mod both the CSV and the ACCDB on GitHub repository or is one or the other conisdered source of "truth" for the other?
The OpCost coder appears to have implemented move-in costs in two parts-- 1) Move.In.Cost.LB (as labeled in the table) a transportation cost to get the pieces of equipment needed by a system to the operations site (including low-boy "rental" cost per mile or hour, and any other salary or opportunity costs associated with the equipment (and operators) being on the road for that period of time denoted as Move_In_Hours and provided as a user-specified parameter by BioSum); and 2) Move.In.Cos.Multiplier-- a time factor intended to represent the machine time charged for getting the machine unloaded from the lowboy and set-up to being operations on the site. Both components are divided by the assumed operations area to distribute these costs over the harvest area to obtain a per acre move-in cost. I think these were likely coded separately because some machine (e.g., tethers, yarders) take more time to set up than others (e.g., chainsaws).
I gather that for some systems, there are 2 machines to be moved (at $100 per hour each) and for others 3 machines (hence the scalars 200 and 300 in these equations). The OpCost_harvestssytem_ref table has one row per system-machine combination so these move in costs lowboy are duplicated on as many rows as there are machines in the system-- hopefully, these are only computed once for the system, not once per machine? A less confusing way to so this would be to have zero for the rows for machines that do not require the assignment of a move in cost and MoveInHours*100 for those that do. Otherwise, there should be a separate table for harvest system from this harvest system X machine table.
Assuming the change described at the end of #1 is made, it would be conceptually cleaner to rename Move.In.Cost.Multiplier to Machine.Setup.Hours.Per.Acre and Move.In.Cost.LB to Machine.Move.In.Cost.Per.Acre to 1) reinforce that these are machine specific, and 2) that one is hours/ac (which must be multiplied by machine time) and the other is already in DPA.
The entries for Move.In.Cos.Multiplier appear to all be the same: 0.6533/Harvest_area_assumed_acres where the scalar is computed from the code in OpCost 9_1 that reads: mic<-function(x){ (m3[x,].35)((30/25)+(30/45)) } I am not able to understand the 9_1 code, specifically, what m3[x,] is, but it appears that as implemented in 10_0, this 0.65 gets multiplied by the hourly machine cost of something-- a single machine? All the machines in a system? And if it identical for all machines (except those like brush cut that are but a second function assigned to a machine already executing, and being charged setup costs, for another function, where it is 0), does that make any sense? Why would the setup time be the same for a chainsaw and a yarder? And do we really want to be triple counting the setup time for a forwarder under tethered just because its forwarding time equation has two independently calculated components and the forwarder is also used to load?
Perhaps my understanding even of the new implementation of move in and setup costs is poor. I think I would benefit from an explanation from Carlin as to how the code is currently implemented and from Rob as to whether these assumptions make sense or should be modified.