Productivity answers the question of how much output we can get from a given level of input.

The maximisation of profit can be defined from the perspective of the 1) amount of output produced or 2) amount of inputs applied. Both of these yield the same results and will be illustrated below.

Suppose that a firm is operating in a perfectly competitive market and thus can sell/buy as much output/input as required without influencing the market price for output/input. Therefore the price of output (\(P_y\)) does not vary irrespective of the amount produced and the same applies to the input price \(P_{x_1}\) irrespective of the amount of inputs purchased. In such a market the total revenue obtained from production is also called the total value product (\(TVP\)) and can be expressed mathematically as follow:

\[TVP=TPP.P_y= P_y .y\] An accompanying the concept is the value marginal product (\(VMP\)) which is defined as the value of the incremental unit of output resulting from an additional unit of \(x\) applied when \(y\) sold for a constant market price \(P_y\). Thus \(VMP\) is simply the slope of the \(TVP\) curve and equal to \(MPP.P_y\). Similarly the average value product (\(AVP\)) is the average value per unit of output produced at a particular point and is equal to \(APP.P_y\).

Now that we have looked at the revenue side, we must also look at the cost side where total factor cost \(TFC\) is equal to the price per unit of input (\(P_x\)) times number if units of input applied (\(x\)). Since the price of the input stays constant given that perfect competition is assumed, the \(TFC\) function is a straight line that extends from the origin and has a constant slope equal to \(P_{x_1}\). THis slope has a special name as the marginal factor cost (\(MFC\)) which is the cost of one additional unit of input applied (and thus equal to \(P_{x_1}\).

To maximise profit the farmer must maximise the difference between costs and returns. Profit (\(\Pi\)) is equal to total value product (\(TVP\)) less the sum of total factor (\(TFC\)) and fixed costs (\(A\)). The profit function can be expressed as follow:

\[\begin{equation} \Pi = TVP - (TFC + A) \\ = TVP - TC = P_y.y-(x_1.P_{x_1} + \sum_{i=2}^{n} x_i.P_{x_i}) \\ \end{equation}\]

Note that \(x_1\) is the only variable input but we also have a number of fixed inputs \(x_2...x_n\). Therefore total fixed cost (\(TC\)) is equal to \(\sum_{i=2}^{n} xP_{x_i}\).

Profit is maximised or minimised where the slope of the profit function is equal to 0 and where the slopes of the \(TVP\) and \(TFC\) are equal, in other words where \(VMP = MFC\). Whilst this can be proven mathematically, it can also be easily illustrated graphically by extending our example to to include costs.

\[\begin{equation} VMP = MFC \\ \\ MPP.P_y = P_{x_i} \\ MPP = \frac{P_{x_i}}{P_y} \\ \end{equation}\]

Lets suppose that the maize price (\(P_{y}\)) is $4 per bushel and the price of nitrogen (\(P_{x_1}\)) is $2.5 per pound and the fixed cost is $40, how much output should we produce to maximise profit?

dat[, Py := 4] dat[, Px := 2.5] dat[, A := 40] dat[, TVP := Py*yield] dat[, TFC := Px*N] dat[, TC := round(TFC + A,3)] #Total cost rounded to three decimal places dat[, profit := round(TVP - TC,3)] # Profit rounded to three decimal places dat[, VMP := round(Py*MPP,3)] # VMP rounded to three decimal places dat[, AVP := round(Py*APP,3)] # AVP rounded to three decimal places dat[, MFC := Px] head(dat) ## N yield APP MPP Py Px A TVP TFC TC profit ## 1: 0 0.000000 NaN 0.750000 4 2.5 40 0.0000 0.0 40.0 -40.000 ## 2: 5 3.852125 0.770425 0.790275 4 2.5 40 15.4085 12.5 52.5 -37.091 ## 3: 10 7.897000 0.789700 0.827100 4 2.5 40 31.5880 25.0 65.0 -33.412 ## 4: 15 12.117375 0.807825 0.860475 4 2.5 40 48.4695 37.5 77.5 -29.030 ## 5: 20 16.496000 0.824800 0.890400 4 2.5 40 65.9840 50.0 90.0 -24.016 ## 6: 25 21.015625 0.840625 0.916875 4 2.5 40 84.0625 62.5 102.5 -18.438 ## VMP AVP MFC ## 1: 3.000 NaN 2.5 ## 2: 3.161 3.082 2.5 ## 3: 3.308 3.159 2.5 ## 4: 3.442 3.231 2.5 ## 5: 3.562 3.299 2.5 ## 6: 3.668 3.362 2.5

We can also calculate the \(MPP\) and level of nitrogen for maximum profit.

price_ratio <- dat[1,Px/Py] #we do not want to calculate this across all of the rows, lets just use the first one price_ratio ## [1] 0.625

Ok, so we know that \(MPP= 0.75 + 0.0042(2)x -0.000023(3)x^2\) and we know that profit is maximised where \(MPP=0.625\), therefore we can use the quadratic equation again to slove for \(0.625 = 0.75 + 0.0042(2)x -0.000023(3)x^2\).

Profit_max <- solve.quad(-0.000023*3, 0.0042*2, (0.75-0.625)) Profit_max ## [1] -13.40491 135.14404

Ok, you would recall the discussion regarding necessary and sufficient conditions. Luckily the point of profit maximisation is clear but if you had a more complex function you would have had to calculate the second derivative of the profit function and set the values of \(x\) into it to see where the second derivative is negative. Now that all of the calculations are out of the way, lets plot them out starting with \(TVP\), \(TC\) and \(A\) curves.

p5 <- ggplot(data = dat) + geom_line(aes(y = TVP, x = N)) + geom_line(aes(y = TC , x = N)) + geom_line(aes(y = A , x = N)) + geom_vline(xintercept = Profit_max[2],linetype=2,colour="blue") + #max profit geom_vline(xintercept = TPP_max[2], linetype=2) + #start of phase II geom_vline(xintercept = APP_max,linetype=2) + #start of phase III labs(y = "TVP or TC ($/acre)", x= "Nitrogen (pounds/acre)") + scale_y_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(0,max(dat$TVP)+100)) + scale_x_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(0,250)) + annotate("text", x = 240,y = 460, label = "TVP",size = 3.5) + #add TVP text annotate("text", x = 240,y = 580, label = "TC",size = 3.5) + #add TC text annotate("text", x = 240,y = 90, label = "A",size = 3.5) + #add A text theme_bw()

Now lets plot the \(VMP\), \(AVP\) and \(MFC\) curves

p6 <- ggplot(data = dat) + geom_line(aes(y = VMP, x = N)) + geom_line(aes(y = AVP, x = N)) + geom_line(aes(y = MFC, x = N)) + geom_hline(yintercept = 0,colour = "red") + #add horisontal red line at 0 geom_vline(xintercept = Profit_max[2],linetype=2,colour="blue") + #max profit geom_vline(xintercept = TPP_max[2], linetype=2) + #start of phase II geom_vline(xintercept = APP_max,linetype=2) + #start of phase III labs(y = "VMP, AVP or MFC ($/acre)", x= "Nitrogen (pounds/acre)") + scale_y_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(min(dat$VMP)-0.3,max(dat$VMP)+0.3)) + scale_x_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(0,250)) + annotate("text", x = 240,y = -4, label = "VMP",size = 3.5) + #add VMP text annotate("text", x = 240,y = 2.1, label = "AVP",size = 3.5) + #add AVP text annotate("text", x = 240,y = 2.8, label = "MFC",size = 3.5) + #add MFC text theme_bw()

Now lets plot the \(\Pi\) function and put them together

p7 <- ggplot(data = dat) + geom_line(aes(y = profit,x = N)) + labs(y = "Profit ($/acre)", x= "Nitrogen (pounds/acre)") + geom_hline(yintercept = 0,colour = "red") + #add horisontal red line at 0 geom_vline(xintercept = Profit_max[2],linetype=2,colour="blue") + #max profit geom_vline(xintercept = TPP_max[2], linetype=2) + #start of phase II geom_vline(xintercept = APP_max,linetype=2) + #start of phase III scale_y_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(min(dat$profit)-10,max(dat$profit)+10)) + scale_x_continuous(breaks = scales::pretty_breaks(n = 10), expand = c(0, 0),limits = c(0,250)) + theme_bw() grid.arrange(p5,p6,p7, nrow=3) # this can also be saved as a figure. ## Warning: Removed 1 rows containing missing values (geom_path).

Productivity answers the question of how much output we can get from a given level of input.

Figure 5: TVP, Marginal values and profit

Note that profit is negative whenever the \(TC\) curve is above the total value product curve. Also note that fixed costs (\(A\)) does not influence the the optimal output level since it does not change the slope of the \(TC\) function. The only point of influence thereof is on the levels of the profit function and not the shape thereof, i.e. it moves it up or down on the vertical axis.

Profit is maximised from an output perspective where \(P_y = MC\) where \(MC\) is the slope of the \(TC\) function as \[TC = TFC + A = x_1.P_{x_1} + \sum_{i=2}^{n} x_i.P_{x_i}\]