The DairyVIP Program to Evaluate the Consequences of Changes in Herd Management and Prices on Dairy Farms^{1}
Introduction
Dairy producers, Extension faculty, other advisors, and researchers frequently have a need to evaluate the technical and financial consequences of changes in dairy herd management and prices. Of interest are, for example, the expected consequences of improved reproductive efficiency, increased milk production per cow, reduced involuntary culling, or increased heifer purchase costs.
Changes in herd management or prices affect optimal breeding and replacement decisions and consequently the herd structure such as the frequency of number of cows by days in lactation, the frequency of number cows that are pregnant vs. nonpregnant, etc. Therefore, the consequences of changes in herd structure (and prices) are difficult to determine without the help of a computer program such as DairyVIP.
DairyVIP (Dairy Value Iteration Program) is a computer program that first calculates (optimal) breeding and replacement decisions for individual dairy cows and then calculates many technical and financial herd statistics for a herd of dairy cows that are managed following the calculated breeding and replacement decisions.
The DairyVIP userinterface is developed in Microsoft Excel. Six input sheets allow the user to enter data on milk production, reproduction, body weights, involuntary replacement, prices, and miscellaneous inputs. Default values are given which are plausible values in Florida. After DairyVIP has calculated the consequences of a set of input data, the userinterface shows over 40 statistics such as profit per cow per year, average days to conception, cull rate, etc. It also displays over 70 graphs showing herd statistics over time, by days in lactation, by month of the year, by lactation number, or by level of milk production. Two sets of inputs and their results can be compared simultaneously. The optimal breeding and replacement decisions for each individual cow can also be viewed.
This fact sheet explains some of the methods and describes the input and output sheets of DairyVIP.
Methods
Files
The DairyVIP computer program may be downloaded and used for free from the Florida Dairy Extension website at http://dairy.ifas.ufl.edu/tools/ as a single file DairyVIP.zip. Unzipped, DairyVIP consists of two files. First, the user enters data and runs the program through a Microsoft Excel (Microsoft Corporation, Issaquah, WA) userinterface spreadsheet called DairyVIP.xlsm. The second file, DairyVIP.exe, is an executable file which calculates (optimal) breeding and replacement decisions for individual cows based on the data entered in the userinterface. DairyVIP.exe then simulates cows over time and calculates herd statistics based on data from the userinterface and the breeding and replacement decisions for each possible cow. The Microsoft Excel spreadsheet and the executable file automatically communicate with each other through macros and ASCII text files (Figure 1, Table 1).
Calculation of Individual Breeding and Culling Decisions
A major feature of DairyVIP is the ability to calculate optimal breeding and voluntary replacement decisions for individual dairy cows with the objective to maximize profitability per slot (stall). Breeding alternatives are to either breed or not breed an eligible nonpregnant cow. Replacement alternatives are to immediately cull a cow or try to keep her at least one more month. If the slot is vacant, the alternatives are to enter a heifer or keep the slot vacant. DairyVIP calculates the discounted future cash flows for each alternative. The value of the decision to keep a cow at least one more month compared to immediately culling her is called the retention payoff (RPO). If the user desires optimal results, DairyVIP will choose the alternative with the greatest discounted future cash flow. The user may restrict the optimization by choosing alternative criteria for making breeding and replacement decisions. Restricted optimization never results in greater profitability.
Cows are categorized in discrete cow states. DairyVIP calculates optimal or nonoptimal breeding and voluntary replacement decisions for 343,440 cow states. A cow state is a combination of five main features that characterize a cow. A cow is in a state described by milk production level (1–15), lactation number (1–12), months in lactation (1–24), pregnancy status (0 for nonpregnant or 1–9 for months of gestation), and season of the year (1–12). For example, a cow can be characterized as in the 10^{th} milk production level, 2^{nd} lactation, 6^{th} month in lactation, 2^{nd} month of pregnancy, in February. Some combinations are not physically possible and therefore excluded; for example, 4 months pregnant while 3 months in lactation. Each state is associated with specific revenues and costs that are calculated from the input data provided by the user in the userinterface.
The 15 milk yield levels are a percentage of the average yield (level 8) entered by the user. If the coefficient of variation of milk yield is 12 (default value on the Misc sheet), then milk yield in level 1 is 69.7% of the average and milk yield in level 15 is 130.3% of the average yield. Yields of the other levels are between these lowest and highest yields.
DairyVIP uses a dynamic programming algorithm (also known as value iteration) to calculate discounted future cash flows for each alternative and then makes the best decisions for each cow state. The time step is one month. The objective of these breeding and replacement decisions is to maximize the total profit of the slot under steady state (equilibrium) conditions with the current cow and her consecutive replacement heifers. All heifers are assumed to be purchased at the time they enter the herd at first calving and the supply of heifers is assumed to be unlimited.
DairyVIP uses monthly time steps, commonly referred to as stages. Replacement decisions in each state and stage depend only on the performance in the current state and the optimal decisions in the next stage. The dynamic programming algorithm starts with the calculation of optimal breeding and replacement decisions for each state far in the future and then moves backward in time, stage by stage, until the average profit per slot per year is stabilized. At this point the algorithm has converged and all breeding and replacement decisions are independent of the arbitrary starting conditions far in the future.
The maximum profit per slot per year is obtained when the dynamic programming algorithm is allowed to determine all entering, breeding, and voluntary culling decisions (the optimal policy). Nonoptimal policies can be simulated when one or more restrictions are placed on entering, breeding or voluntary culling of cows. The dynamic programming algorithm can still be allowed to make some decisions. For example, the option to delay replacement can be enforced or prohibited for each month of the year, while the dynamic programming algorithm still calculates the cull decision for each cow state given the heifer entering restriction. A policy where the user defines the breeding and voluntary culling decisions for all states and the months where heifers are entered can also be simulated but the dynamic programming algorithm then has no optimization function.
Calculation of Herd Statistics
DairyVIP calculates herd statistics that are based upon the userinput data and the calculated breeding and replacement decisions for each cow state. These calculations utilize the Markov chain method. DairyVIP simulates a herd of one cow (or lack thereof) in one slot from stage to stage, multiplying the probability that the cow is in a cow state (dependent on the entering decision calculated earlier) with her performance, revenues, and costs in that state. If the herd has been simulated for a sufficiently long time, the statetostate transition probabilities become stationary and the herd is in steadystate. At that point the probability that a cow is in a cow state remains constant. The herd structure and herd statistics in each stage can be calculated from the weighted performance and events in each state. Financial steadystate results are displayed as equivalent annual annuity values.
It is also possible to start the simulation with an existing herd structure (.MKV file) and simulate the herd for three years into the future. The starting herd could be the steadystate herd structure that resulted from a different set of inputs, a single heifer purchased today, or the existing herd structure of a real dairy farm. DairyVIP then shows the changes in herd statistics in the next three years. Another option is to simulate an existing herd structure over time but without the ability to enter replacement heifers. This option is useful when the herd structure consists of just one cow and her expected performance over time is of interest.
DairyVIP Input and Output Sheets
The DairyVIP userinterface is a Microsoft Excel spreadsheet. The spreadsheet is protected to prevent unintended editing of the sheets that might prevent the proper calculation and display of the results. Many sheets contain an unprotected grid to allow the user to make notes and calculations. The blue Run sheet controls the calculation of the results. Five green input sheets allow the user to enter data in the yellow cells. Comments provide default values or additional information. Four yellow output sheets display the results. A light green sheet allows for a comparison of two complete input data sets.
Run Sheet
The Run input sheet allows the user to enter the name of the input data set file (.BIO). A previously saved input data set can be read as well. An existing herd structure (.MKV file) may be read in to start the simulation. The results can be displayed under plan A or B. This allows for a side by side comparison of the results of two different input data sets. For example, the results of a first run with DairyVIP can be saved under plan A and the results based on some changes in the inputs can be saved under plan B. DairyVIP starts calculating the results by clicking the GO! button. The results are calculated by the DairyVIP.exe file. This file opens an MSDOS console window. The status of the execution can be followed in the Status box, or by clicking YES in the Show .EXE box.
Miscellaneous Sheet
The Miscellaneous (Misc) input sheet requires various input data such as the unit of the data (metric or English), labor cost, veterinary cost, feed prices, calf prices, fixed labor cost, and fixed and variable other costs. The values in cells with a blue border depend on the unit (metric or English). Feed costs are calculated dry matter intake times feed price. Dry matter intakes for lactating cows are based on the NRC (2001) publication Nutrient Requirements of Dairy Cattle. The user also needs to choose the breeding and replacement policy. The optimal policy may be restricted by keeping all cows or all nonpregnant cows. Further restrictions may be implemented by limiting the maximum months nonpregnant, eligible breeding period, minimum daily marginal returns, or minimum daily milk yield.
Price and Decisions Sheet
The user enters prices for milk, culled cows, and heifers for 24 months on the Price and Decisions (Price) input sheet. Prices for the first 12 months are used for the first year of the simulation. Prices for the last 12 months are used for all years after the first 12 months. These separate prices are useful if the price forecasts for the first year are different from the long run averages and the objective is to calculate herd statistics for the next three years into the future. Herd steady state results are based on the prices for the first year.
The user also enters decisions about breeding for 24 months. Possible choices are "decide", "breed", and "do not breed". The choice "decide" lets DairyVIP calculate whether breeding or not breeding is the optimal decision. Similarly, for entering heifers the choices are "decide", "enter", or "do not enter". If the choice is "do not enter", then DairyVIP will not purchase and enter any heifers in that month to replace the involuntary culled cows in the previous month or the voluntary culled cows in the current month. A fraction of the slots will therefore be vacant that month.
Milk Sheet
The Milk yield (Milk) input sheet requires average daily milk yields for the first three lactations by month of lactation and month of the year. The milk yield in the third lactation is also used for later lactations. Average milk yields must be entered for 24 months in lactation. The user may directly enter daily milk yields. Alternatively, the parameters of the Woods incomplete gamma lactation curve for each of the three lactation numbers may be entered. Seasonality can be adjusted separately by entering a percentage adjustment per month of the year. Furthermore, a percentage change or an absolute change may be entered. A third option is to enter peak milk yield, days in milk at peak milk yield, and 305day total milk yield. Woods incomplete gamma lactation curves will be fitted and daily milk yields are estimated. A fourth option is to choose previously calculated lactation curves based on DHIA data from herds located in Florida and Georgia. The computer program will automatically enter the resulting daily milk yields after the GO! button is clicked. The effects of pregnancy on milk yields are entered separately. The user enters the percentage of nonpregnant daily milk yield caused by pregnancy per month of gestation. The cow is dry when the percentage is 0.
Reproduction Sheet
The Reproduction (Repro) input sheet requires data on the probability of service, probability of conception, and additional breeding cost by month of lactation and month of the year. Seasonality can be adjusted separately by entering a percentage adjustment per month of the year. No breeding is possible before the start of the 3^{rd} month (day 61) and after the start of the 16^{th} month (day 456) in lactation. If a cow conceives at the start of the 16^{th} month in lactation, she will calve at the end of the 24^{th} month after calving. The Reproduction sheet also requires the user to enter the risk of abortion per month of pregnancy, the minimum voluntary waiting period for lactations 1, 2 and 3+, the last allowable breeding month, the cost per breeding, and time spent associated with breeding.
Involuntary Culling Sheet
DairyVIP assumes a risk of involuntary culling in each of the 24 possible months of lactation, even when the optimal decision is to keep the cow. Involuntary culling is caused by death or severe health problems. Essentially, it is the probability that the cow is in such a poor condition that culling is obviously the best decision. The risk of involuntary culling is entered by month of lactation and month of the year on the Involuntary culling (Cull) input sheet. Seasonality can be adjusted separately by entering a percentage adjustment per month of the year. In addition, the relative risk per lactation number is entered.
Body Weight Sheet
Body weights for nonpregnant cows for first and greater parities are entered for 24 months in lactation on the Body weight (BW) input sheet. The additional body weight caused by pregnancy is entered separately. The Korver function allows for predicting body weight data with 6 parameters.
Cow Sheet
The Cow output sheet displays the retention payoff (RPO) and value of pregnancy by month in lactation for a cow state characterized by milk yield level, lactation number, month of conception, and season. The value of a new pregnancy and the cost per additional month nonpregnant are also shown. In addition, the RPO for individual cow states can be found. The .RPO and .DEL files have to be read in before any of these values can be displayed. The user needs to indicate to save the .RPO and .DEL files on the Miscellaneous sheet before DairyVIP calculates the results. Saving these files requires some time and is not needed in order to calculate the herd statistics as displayed on the output sheets Table, Time, and Chart.
Table Sheet
Technical and financial results per cow (slot) per year or per 100 kg (or lbs) milk produced are displayed on the Table output sheet. Separate results for years 1, 2, and 3 can be selected. The financial results include all types of revenues and costs, as well as profit. Technical results include several measures about reproductive performance, replacement, and feed costs.
Time Sheet
The Time output sheet displays technical and financial results per month of the year for years one to three in 38 different graphs. Effects of seasonality are easily observed. Results include, for example, profit per month, fraction culled, fraction delayed breedings, pregnancy rate, and average daily milk yield. Note that plans A and B should have the same starting season; otherwise the graphs are not displayed properly.
Chart Sheet
The Chart output sheet displays average technical and financial results for the first three years in 38 different graphs. The breakdown is either by milk yield, days after calving, or lactation number. Measures include for example days to first breeding, days nonpregnant, value of pregnancy, herd demographics, and the economic loss due to involuntary replacement.
References
De Vries, A. 2004. "Economics of delayed replacement when cow performance is seasonal." Journal of Dairy Science 87:29472958.
De Vries, A. 2006. "Economic value of pregnancy." Journal of Dairy Science 89:38763885
Tables
Parameters within the .RPO, .DEL, .POL, and .MKV files created by DairyVIP.
Column 
.RPO 
.DEL 
.POL ^{3} 
.MKV ^{5} 
1 
Milk yield level 
Season *** 
Season *** 
Milk yield level 
2 
Lactation number 
Milk yield level 
Milk yield level 
Lactation number 
3 
Month in lactation 
Lactation number 
Lactation number 
Month in lactation 
4 
Months pregnant 
Month in lactation 
Months pregnant 
Months pregnant 
5 
Season 
Month in future 
Policy ^{4} 
Cow state probability ^{6} 
6 
Retention payoff * 
Gain/loss pregnant * ^{1} 
First service probability 

7 
Retention payoff ** 
Gain/loss pregnant ** 
VWP probability 

8 
0 
Gain/loss nonpregnant * ^{2} 

9 
0 
Gain/loss nonpregnant ** 

10 
Value of pregnancy * 

11 
Value of pregnancy ** 

12 
Cull value 

13 
Milk yield 

14 
Milk yield (level 8) 

15 
0 

16 
0 

* year 1 (12 months) ** year 2 and later (12 months) *** years 1 and 2 and later (24 months) ^{1} Gain/loss if cow gets pregnant x months in future (Cow output sheet). ^{2} Gain/loss if nonpregnant cow remains at least x months longer open (Cow output sheet). ^{3} First row, for every season: 1 = enter heifer, 0 = do not enter heifer in vacant slot. ^{4} Policy, for every month in lactation: 0 = cull, 1 = keep (do not breed), 2 = keep (breed), 8 = unfeasible. ^{5} First row: dummy values. The MKV file contains the herd structure at the end of the last month of the simulation. ^{6} Probability that a cow is in the specific cow state. 