Farm Planning: How Much to Grow and Rear


Input Data

The following data sets and macro variables contain the input data that are used in this example:

data cow_data;
   do age = 0 to 11;
      init_num_cows = 10;
      if age < 2 then do;
         acres_needed = 2/3;
         annual_loss = 0.05;
         bullock_yield = 0;
         heifer_yield = 0;
         milk_revenue = 0;
         grain_req = 0;
         sugar_beet_req = 0;
         labour_req = 10;
         other_costs = 50;
      end;
      else do;
         acres_needed = 1;
         annual_loss = 0.02;
         bullock_yield = 1.1/2;
         heifer_yield = 1.1/2;
         milk_revenue = 370;
         grain_req = 0.6;
         sugar_beet_req = 0.7;
         labour_req = 42;
         other_costs = 100;
      end;
      output;
   end;
run;

data grain_data;
   input group $ acres yield;
   datalines;
group1 20 1.1
group2 30 0.9
group3 20 0.8
group4 10 0.65
;

%let num_years = 5;
%let num_acres = 200;
%let bullock_revenue = 30;
%let heifer_revenue = 40;
%let dairy_cow_selling_age = 12;
%let dairy_cow_selling_revenue = 120;
%let max_num_cows = 130;
%let sugar_beet_yield = 1.5;
%let grain_cost = 90;
%let grain_revenue = 75;
%let grain_labour_req = 4;
%let grain_other_costs = 15;
%let sugar_beet_cost = 70;
%let sugar_beet_revenue = 58;
%let sugar_beet_labour_req = 14;
%let sugar_beet_other_costs = 10;
%let nominal_labour_cost = 4000;
%let nominal_labour_hours = 5500;
%let excess_labour_cost = 1.2;
%let capital_outlay_unit = 200;
%let num_loan_years = 10;
%let annual_interest_rate = 0.15;
%let max_decrease_ratio = 0.50;
%let max_increase_ratio = 0.75;