The previous model of the Canada-U.S. softwood lumber market had only two trading countries and was therefore useful for describing the setup and operation of the spatial equilibrium pricing model. Because there was only two countries, the trading and pricing outcome could have been solved directly as follows:
Subtract the Canadian demand schedule from the Canadian supply schedule to obtain a Canadian export supply schedule.
Subtract the U.S. supply schedule from the U.S. demand schedule to obtain a U.S. import demand schedule.
Set Canadian export supply equal to U.S. import demand along with the constraint that the U.S. price must equal the Canadian price plus the sum of transportation and tariff costs.
Solve the set of equations to obtain the traded quantity and the price in each country.
In this module we use the spatial equilibrium pricing model to examine the global trade in tomatoes where there are five trading regions. In the spatial pricing equilibrium several of the regions do not trade with each other. This means that solving for the trade and pricing equilibrium in the way described above no longer works. Specifically, the above procedure does not allow for zero-trade corner solutions. It is here where the spatial pricing model has real value because it is well suited for scenarios with a larger number of trading partners and no-trade corner solutions.
The outcome that there are many no-trade corner solutions is a weak point of the spatial equilibrium pricing model. This is because such an outcome does not match the reality of much more active trading between countries (e.g., Canada imports tomatoes from three or four countries rather than just one or two). Moreover, there is never a bilateral trade flow across countries in the spatial pricing model whereas such an outcome is quite common in the real world. A related problem is that in some cases a small change in supply or demand in one region, or a small change in a transportation cost parameter can result in large change in the trade and pricing pattern. For example, in the base model which is presented below Canada imports from Latin America, and after a small change in EU supply Canada imports from Mexico only.
In FRE 502 you will learn that the gravity trade model does a relatively good job of generating realistic trade pattern outcomes. Nevertheless, it is still worthwhile to use the spatial equilibrium model of trade because it allows for precise “what if” analysis, such as a supply disruption in just one region, or an increase in the tariff rate between just one pair of trading partners. This type of precise “what if” analysis is not possible with the gravity model. More generally, the spatial equilibrium pricing model continues to be the best way to formally analyze the spatial law-of-one-price (LOP).
The OEC-fresh and OEC-processed websites contain a lot of interesting information about the global trade in chilled and processed tomatoes. For example, 2019 global trade was about $9 billion for fresh tomatoes and $4.5 billion for processed tomatoes. This compares to about $7.5 billion for apples, $11 billion for bananas and $13 billion for avocados. For chilled tomatoes the top exporter in 2019 was Mexico with a market share of about 26.5 percent, and the top importer was the U.S. For processed tomatoes, the top exporter was Italy and the top importer was Germany. Other large exporters of chilled tomatoes are the Netherlands, Spain, Morocco and Canada. Other larger importers of chilled tomatoes are Germany, Russia, France and the U.K.
In 2018 the mean cross-country import tariff rate was 31.4 percent for fresh tomatoes, with some countries charging as high as 70 percent (Romania) and a number of countries having a zero tariff (e.g., UAE, Hong Kong, Kuwait). For processed tomatoes the mean cross-country 2018 tariff rate was 26.5 percent, with some countries charging as high as 135 percent (Turkey) and a number of countries having a zero tariff (e.g., Switzerland). You will learn more about import tariffs for tomatoes in a subsequent class exercise.
The chart below from Tomato News shows a time series of regional tomato prices from July, 2009 to July, 2021. The general pricing pattern is similar to that of other agricultural commodities. The price was relatively high after the commodity price boom during the 2008 and 2011-2012 period, was relatively low from 2015 to early 2020, and then surged upward along with other commodities, beginning in the middle of 2020. Similar to palm oil, there is only moderately strong correlation between the price of tomatoes in Italy, the U.S. and China. The reasons for the lack of strong pricing arbitrage and therefore only weak adherence to the spatial LOP are similar to the palm oil situation. Namely, long distance transport of tomatoes in relatively specialized refrigerated ocean freighters prevents a rapid shipment in response to a profitable price difference.
Use this link to read on your own about the competition between air cargo and ocean freighters for the long distance transport of chilled tomatoes.
Read this report about how the 2017 free-trade agreement between Canada and the EU (i.e., the CETA) is expected to open up opportunities for EU processed tomato exporters. The North American Free Trade Agreement (NAFTA) means that Canada imports processed tomatoes from the U.S. duty free. Prior to CETA EU exporters paid the Canadian import duty and for this reason were not able to compete with U.S. exporters in the Canadian market. With the ratification of CETA in 2017, Italian tomato exporters are hoping to make inroads into the Canadian market. Canada supplies only about one quarter of its processed tomato consumption, and so the Canadian market is relatively lucrative.
Exporting countries which do not have a free trade or preferential trade agreement with the importing country but are part of the WTO agreement on tariffs must pay the Most Favored Nation (MFN) import tariff. These tariffs come in two forms. The most common form is the ad valorem (AV) tariff, which is set as a percentage of the import value of the product. The unit tariff, which is also referred to as the specific tariff, is a fixed amount per unit of product which is imported. Many countries have a compound tariff, which is a combined AV tariff and unit tariff. One popular type of compound tariff is one for which the unit tariff applies provided that the amount collected exceeds the AV tariff. For example check out the schedule of Canadian Tariffs. If you scroll down to 0704.90.10 (Broccoli for processing) you will see that the tariff is 2.12 cents/kg but not less than 6 percent.
Open the Excel file titled “Tomatoes Tariffs and Import Data.xlsx” – it is in the Data folder. The data consists of AV and unit tariffs, import volumes and import values for chilled tomatoes for 55 countries. It is possible to divided import value by import volume to obtain a unit price. If you do this you will see wide variation in the calculated unit price across countries. You should not trust calculated unit prices for the purpose of spatial price analysis.
The data can be sorted by AV Duty and you can also create a histogram of the AV duties. It is not possible to sort the data or create a histogram using the data on the unit tariffs. You might consider creating a scatter plot of AV duties and import quantities, or possibly calculate a correlation between this pair of variables.
What do you find interesting, unusual or unexpected about these import tariffs for chilled tomatoes? Why do you think Canada has a relatively high tariff whereas Australia has a zero tariff? Do you think the level of the tariff depends on the region or the level of economic development? For example, do the tariffs tend to be higher or lower for developed countries versus developing countries?
The rest of this module is devoted to constructing the spatial equilibrium pricing model for tomatoes, and then using the model results to conduct extended “what if” analysis.
The global market for tomatoes is broken into five regions:
In Chapter 2 of my 2011 textbook I use elasticity and price and quantity estimates from a published study to construct linear supply and demand schedules for each of the five regions. In my textbook I used Excel to maximize the net welfare function. Excel is not very good at working with large models and so I was forced to scale the intercept and slope parameters of the various supply and demand schedules so that the parameter estimates did not involve very large or very small values.
As with the case of lumber, let \(a_i\) and \(\alpha_i\) denote the intercept parameters, and \(b_i\) and \(\beta_i\) denote the absolute slope parameters of the regional demand and supply schedules, respectively. The specific values are:
a1 <- 1.746 # Mexico
a2 <- 0.443 # The U.S.
a3 <- 1.026 # Canada
a4 <- 0.852 # The EU
a5 <- 0.561 # Latin America
alpha1 <- -0.506
alpha2 <- -0.256
alpha3 <- -0.426
alpha4 <- -1.067 # base case value = -1.067
alpha5 <- -0.661
b1 <- 1.156
b2 <- 0.022
b3 <- 1.162
b4 <- 0.044
b5 <- 0.072
beta1 <- 0.292
beta2 <- 0.042
beta3 <- 1.180
beta4 <- 0.086
beta5 <- 0.118
In this module we will work exclusively with vectors and matrices. The set of intercept parameters must be a column vector and the set of slope parameters must be along the principal diagonal of a 5x5 matrix. This diagonal matrix can be created by first entering the slope parameters into a vector and then using R’s diagonalize function.
A <- c(a1, a2, a3, a4, a5)
alpha <- c(alpha1, alpha2, alpha3, alpha4, alpha5)
Bvec <- c(b1, b2, b3, b4, b5)
B <-diag(Bvec)
betavec <- c(beta1, beta2, beta3, beta4, beta5)
beta <-diag(betavec)
The published study which was used to construct the regional supply and demand schedules did not provide estimates of the transportation costs between each region. To generate transportation cost estimates, the ocean freight shipping distance between each region was calculated, and this distance was multiplied by a scalar to generate a per-tonne transportation cost for each pair of trading regions. The scaling factor was adjusted so that the set of transportation cost estimates was the best fit when compared to the observed regional price differences in the base case.
The transportation cost estimates form a symmetric matrix where the value in the ith row and jth column, i.e., \(C_{ij}\), represent the cost of transporting one tonne of tomatoes from region \(i\) to region \(j\). The matrix is symmetric because the cost of shipping from \(i\) to \(j\) is the same as shipping from \(j\) to \(i\) since the distance is the same. Keep in mind the following ordering of the countries:
C <- matrix(c(0, 0.01170, 0.01933, 0.03111, 0.03238, 0.01170, 0, 0.00844, 0.02140, 0.02841, 0.01933, 0.00844, 0, 0.02129, 0.03289, 0.03111, 0.02140, 0.02129, 0, 0.02747, 0.03238, 0.02841, 0.03289, 0.02747, 0), nrow=5, ncol=5)
C
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.00000 0.01170 0.01933 0.03111 0.03238
## [2,] 0.01170 0.00000 0.00844 0.02140 0.02841
## [3,] 0.01933 0.00844 0.00000 0.02129 0.03289
## [4,] 0.03111 0.02140 0.02129 0.00000 0.02747
## [5,] 0.03238 0.02841 0.03289 0.02747 0.00000
Recall from Module 1B that net welfare can be expressed as the sum of the area under the demand schedule minus the sum of the area under the supply schedule for all trading regions, minus the sum of the cost of transporting the commodity across all regions. In this particular case with \(\hat T_{ij}\) representing product shipments from region \(i\) to region \(j\) the relevant expression is:
\[NW = \sum _{i=1}^5 \left (a_i-0.5b_i Q_i^D \right )Q_i^D - \sum_{i=1}^50.5 \left (\alpha_i + \beta_i Q_i^S \right)\left (Q_i^S + \alpha_i/\beta_i \right)-\sum_{j=1}^5\sum_{i=1}^5 C_{ij}\hat T_{ij}\] The above expression uses the specialized formula because the supply schedules intersect the horizontal axis rather than the vertical axis. To express this function in matrix format define the following matrices:
The expression for net welfare can now be rewritten as
\[NW = A'Q^D - 0.5(Q^D)'BQ^D - (\alpha' Q^S +0.5(Q^S)'\beta Q^S + 0.5K'u) -sum(C\hat T)\]
In this expression, the “sum” function in the last term implies that each element of the \(C\) matrix is multiplied by each corresponding element of the \(\hat T\) matrix and all of these products summed.
The \(i^{th}\) row of the shipment matrix, \(\hat T\), shows how much region \(i\) shipped to all regions, including itself. The sum of these shipments must equal the supply of that region. This means that the sum of the \(i^{th}\) row of \(\hat T\) can be substituted for \(Q_i^S\) in the above function. Similarly, the \(j^{th}\) column of the shipment matrix, \(\hat T\), shows how much region \(j\) received from all regions, including itself. The sum of these shipments must equal the demand of that region. This means that the sum of the \(j^{th}\) column of \(\hat T\) can be substituted for \(Q_j^D\) in the above function. These substitutions ensures that the only variables in the net welfare function are those contained in the \(\hat T\) shipment matrix.
Recall from Module 1B that R’s optimization function accepts a vector of starting values for the choice variables but it does not accept a matrix. In this case we need to let \(T\) be a 25x1 shipment matrix which contains the 25 elements of the \(\hat T\) matrix. The welfare function must accept \(T\) but then convert \(T\) to \(\hat T\) before calculating a value for the objective function. This same procedure was used in Module 1B.
Base on the above discussion, the following code creates the net welfare function.
welfare <- function(T) {
That = matrix(T, 5, 5) # Reshape 25x1 vector into 5 x 5 matrix.
Qs <- rowSums(That)
Qd <- colSums(That)
u <- rep(1,5)
K <- c(alpha1*alpha1/beta1, alpha2*alpha2/beta2, alpha3*alpha3/beta3, alpha4*alpha4/beta4, alpha5*alpha5/beta5)
W <- -(t(A) %*% Qd - 0.5*t(Qd) %*% B %*% Qd - (t(alpha) %*% Qs + 0.5*t(Qs) %*% beta %*% Qs + 0.5*t(K) %*% u ) - sum(C*That))
}
We can check that the welfare function is working by assigning starting (guess) values to the \(T\) matrix and then calling the welfare function. The starting values as shown below are the same as those using in Chapter 2 of my 2011 textbook.
start <- c(1.357, 0, 0, 0, 0, 0, 10.331, 0, 0, 0, 0, 0, 0.521, 0, 0, 0, 0, 0, 14.478, 0, 0, 0, 0, 0, 5.322)
start
## [1] 1.357 0.000 0.000 0.000 0.000 0.000 10.331 0.000 0.000 0.000
## [11] 0.000 0.000 0.521 0.000 0.000 0.000 0.000 0.000 14.478 0.000
## [21] 0.000 0.000 0.000 0.000 5.322
test <-welfare(start)
test
## [,1]
## [1,] -14.17263
Keep in mind that the welfare function was entered with a negative sign because minimizing the negative of a function is the same as maximizing that function.
We are now ready to set up R’s optimization function. To restrict all 25 values in the 25x1 \(T\) shipment matrix to non-negative values we should use \(\text{lower=matrix(0,25,1)}\). We will also use \(\text{method="L-BFGS-B"}\) because this method is recommended when including lower or upper limits on the choice variables. Finally, we will use \(\text{"\$par"}\) at the end of the optim() function to tell R to return only the optimized values in the \(T\) shipment matrix.
solution <- optim( par=start, fn=welfare, lower=matrix(0,25,1), method="L-BFGS-B" )$par
To see the results we should convert the 25x1 solution vector into a standard 5x5 shipment matrix. To better interpret the results we should add row and column labels which correspond to the various regions.
trade <-matrix(solution, 5, 5)
colnames(trade) <- c("Mexico","The U.S.","Canada","The EU","L. America")
rownames(trade) <- c("Mexico","The U.S.","Canada","The EU","L. America")
trade
## Mexico The U.S. Canada The EU L. America
## Mexico 1.361916 0.9587565 0.0000000 0.0000000 0.000000
## The U.S. 0.000000 10.4607480 0.0000000 0.0000000 0.000000
## Canada 0.000000 0.0000000 0.5200714 0.0000000 0.000000
## The EU 0.000000 0.0000000 0.0000000 14.5274247 0.000000
## L. America 0.000000 0.3826676 0.2013292 0.6903983 5.640301
Reading the rows from left to right we see that Mexico exports to the U.S. only. As well, the U.S., Canada and the E.U. do not export, and Latin American exports to the U.S., Canada and the E.U. Reading the columns from top to bottom we see that Mexico does not import, the U.S. imports from both Mexico and Latin America, Canada and the EU both import from Latin America, and Latin America does not import.
To calculate the equilibrium prices we need the sum of the columns of the trade matrix to obtain total consumption for each of the five regions. We can then plug those consumption values into the respective inverse demand functions to recover the regional prices. The vector of inverse demand functions should be multiplied by 5000 to unscale the scaled intercept and slope parameters of this set of functions.
Qd_e <- colSums(trade)
price_e <- 5000*(A - Bvec*Qd_e)
price_e
## Mexico The U.S. Canada The EU L. America
## 858.1245 916.7611 938.6627 912.0789 774.4917
The results reveal the expected results that tomato prices are relatively high in the three importing countries (The U.S., Canada and the EU) and are relatively low in the two exporting countries (Mexico and Latin America).
To confirm the spatial LOP in the set of regional prices it is useful to construct a matrix of price differences and compare these differences to the transportation costs. The spatial LOP tells us that for regions which trade the price difference will equal the transportation cost, and for regions which do not trade the price difference will be less than the transportation cost.
To create a side-by-side comparison we use R’s expand.grid function. We use this function first on a vector of region names, and then on the vector of equilibrium prices. We complete the process by binding both expansions together and assigning column names as follows:
label <- matrix(c("Mexico","U.S.","Canada","EU","L. America"),ncol=1,nrow=5)
expand_label <- expand.grid(label,label)
expand_price <- expand.grid(t(price_e),t(price_e))
price_pairs <- cbind(expand_label,expand_price)
colnames(price_pairs) <- c("Region A", "Region B", "Price A", "Price B")
price_pairs
## Region A Region B Price A Price B
## 1 Mexico Mexico 858.1245 858.1245
## 2 U.S. Mexico 916.7611 858.1245
## 3 Canada Mexico 938.6627 858.1245
## 4 EU Mexico 912.0789 858.1245
## 5 L. America Mexico 774.4917 858.1245
## 6 Mexico U.S. 858.1245 916.7611
## 7 U.S. U.S. 916.7611 916.7611
## 8 Canada U.S. 938.6627 916.7611
## 9 EU U.S. 912.0789 916.7611
## 10 L. America U.S. 774.4917 916.7611
## 11 Mexico Canada 858.1245 938.6627
## 12 U.S. Canada 916.7611 938.6627
## 13 Canada Canada 938.6627 938.6627
## 14 EU Canada 912.0789 938.6627
## 15 L. America Canada 774.4917 938.6627
## 16 Mexico EU 858.1245 912.0789
## 17 U.S. EU 916.7611 912.0789
## 18 Canada EU 938.6627 912.0789
## 19 EU EU 912.0789 912.0789
## 20 L. America EU 774.4917 912.0789
## 21 Mexico L. America 858.1245 774.4917
## 22 U.S. L. America 916.7611 774.4917
## 23 Canada L. America 938.6627 774.4917
## 24 EU L. America 912.0789 774.4917
## 25 L. America L. America 774.4917 774.4917
The next step is to create a new vector which is the difference between the Price B and Price A columns in the price_pairs matrix. This new vector can then be inserted at the end of the price_pairs matrix.
diff <- price_pairs[,"Price B"]-price_pairs[,"Price A"]
price_diff <- cbind(price_pairs,diff)
The last step is to unscale the 5x5 transportation cost matrix and then convert it into a 25x1 vector. Similarly, the 5x5 trade matrix that came from the optimization problem can be converted into a 25x1 vector.
Cij <- as.vector(5000*C)
Tij <- as.vector(trade)
results <- cbind(price_diff,Cij,Tij)
results
## Region A Region B Price A Price B diff Cij Tij
## 1 Mexico Mexico 858.1245 858.1245 0.000000 0.00 1.3619162
## 2 U.S. Mexico 916.7611 858.1245 -58.636584 58.50 0.0000000
## 3 Canada Mexico 938.6627 858.1245 -80.538218 96.65 0.0000000
## 4 EU Mexico 912.0789 858.1245 -53.954452 155.55 0.0000000
## 5 L. America Mexico 774.4917 858.1245 83.632740 161.90 0.0000000
## 6 Mexico U.S. 858.1245 916.7611 58.636584 58.50 0.9587565
## 7 U.S. U.S. 916.7611 916.7611 0.000000 0.00 10.4607480
## 8 Canada U.S. 938.6627 916.7611 -21.901634 42.20 0.0000000
## 9 EU U.S. 912.0789 916.7611 4.682132 107.00 0.0000000
## 10 L. America U.S. 774.4917 916.7611 142.269324 142.05 0.3826676
## 11 Mexico Canada 858.1245 938.6627 80.538218 96.65 0.0000000
## 12 U.S. Canada 916.7611 938.6627 21.901634 42.20 0.0000000
## 13 Canada Canada 938.6627 938.6627 0.000000 0.00 0.5200714
## 14 EU Canada 912.0789 938.6627 26.583766 106.45 0.0000000
## 15 L. America Canada 774.4917 938.6627 164.170957 164.45 0.2013292
## 16 Mexico EU 858.1245 912.0789 53.954452 155.55 0.0000000
## 17 U.S. EU 916.7611 912.0789 -4.682132 107.00 0.0000000
## 18 Canada EU 938.6627 912.0789 -26.583766 106.45 0.0000000
## 19 EU EU 912.0789 912.0789 0.000000 0.00 14.5274247
## 20 L. America EU 774.4917 912.0789 137.587192 137.35 0.6903983
## 21 Mexico L. America 858.1245 774.4917 -83.632740 161.90 0.0000000
## 22 U.S. L. America 916.7611 774.4917 -142.269324 142.05 0.0000000
## 23 Canada L. America 938.6627 774.4917 -164.170957 164.45 0.0000000
## 24 EU L. America 912.0789 774.4917 -137.587192 137.35 0.0000000
## 25 L. America L. America 774.4917 774.4917 0.000000 0.00 5.6403007
The second last row of the above table shows the price difference between each pair of trading regions. The last column shows the transportation cost between those regions. You should confirm that the spatial LOP is satisfied by determining if the price difference is equal to the transportation costs when shipments are positive (this includes self shipments) and is less than the transportation costs when there are zero shipments. Don’t expect the results to hold exactly – a difference of say 50 cents a tonne or less is due to the lack of high level precision by R’s optimization function.
In Chapter 2 of my 2011 textbook I conduct two types of “what if” analysis. I first assume a large-scale supply reduction in the EU (e.g., widespread tomato disease), which significantly raises this region’s import demand. I then assume an increase in the cost of shipping tomatoes for all trading partners. The “what if” analysis is the most important and most interesting part of this module. Please read pages 30 to 35 for full details about the “what if” results and interpretations.
Here we will repeat the EU supply reduction “what if” analysis. However, let’s assume the supply reduction happens gradually rather than abruptly. Specifically, the base case value of the intercept term of the EU supply function is -1.067. Let’s assume initially this intercept value increases to -1.0. After this it increases to -0.9, then -0.8, and finally to -0.7. After each upward shift of the EU supply schedule we will examine the results to determine how the shift affected the pattern of trade and the set of regional prices.
The various results matrices have been stored as .RDS files in the “/Data/SavedRDS” folder. The first one which corresponds to an EU supply intercept with value -1.0 can be loaded as follows:
library(here)
## Warning: package 'here' was built under R version 4.0.5
results_1.0 <- readRDS(here("Data", "SavedRDS", "results_1.0.RDS"))
results_1.0
## Region A Region B Price A Price B diff Cij Tij
## 1 Mexico Mexico 884.4462 884.4462 0.000000 0.00 1.3573623
## 2 U.S. Mexico 942.8554 884.4462 -58.409267 58.50 0.0000000
## 3 Canada Mexico 972.6585 884.4462 -88.212341 96.65 0.0000000
## 4 EU Mexico 946.1066 884.4462 -61.660453 155.55 0.0000000
## 5 L. America Mexico 808.3104 884.4462 76.135754 161.90 0.0000000
## 6 Mexico U.S. 884.4462 942.8554 58.409267 58.50 0.9812179
## 7 U.S. U.S. 942.8554 942.8554 0.000000 0.00 10.5837328
## 8 Canada U.S. 972.6585 942.8554 -29.803074 42.20 0.0000000
## 9 EU U.S. 946.1066 942.8554 -3.251185 107.00 0.0000000
## 10 L. America U.S. 808.3104 942.8554 134.545021 142.05 0.0000000
## 11 Mexico Canada 884.4462 972.6585 88.212341 96.65 0.0000000
## 12 U.S. Canada 942.8554 972.6585 29.803074 42.20 0.0000000
## 13 Canada Canada 972.6585 972.6585 0.000000 0.00 0.5259461
## 14 EU Canada 946.1066 972.6585 26.551888 106.45 0.0000000
## 15 L. America Canada 808.3104 972.6585 164.348095 164.45 0.1896032
## 16 Mexico EU 884.4462 946.1066 61.660453 155.55 0.0000000
## 17 U.S. EU 942.8554 946.1066 3.251185 107.00 0.0000000
## 18 Canada EU 972.6585 946.1066 -26.551888 106.45 0.0000000
## 19 EU EU 946.1066 946.1066 0.000000 0.00 13.8279055
## 20 L. America EU 808.3104 946.1066 137.796206 137.35 1.2352462
## 21 Mexico L. America 884.4462 808.3104 -76.135754 161.90 0.0000000
## 22 U.S. L. America 942.8554 808.3104 -134.545021 142.05 0.0000000
## 23 Canada L. America 972.6585 808.3104 -164.348095 164.45 0.0000000
## 24 EU L. America 946.1066 808.3104 -137.796206 137.35 0.0000000
## 25 L. America L. America 808.3104 808.3104 0.000000 0.00 5.5463600
A comparison of these results to the base case results which were presented above we can see the follow changes. Latin American has increased its exports to the EU from 0.690 scaled units to 1.235 scaled units. As well, Latin America no longer exports to the U.S. Because of this loss of imports, the U.S. now imports 0.981 scaled units from Mexico as compared to 0.958 in the base case. Canada continues to import from Latin America but the import price has risen from $938.66/tonne in the base case to $972.66 after the shift. It is easy to see that prices in all regions have increased due to the reduction in EU production of tomatoes.
Now consider an addition upward shift in the EU supply schedule from -1.0 to -0.9.
results_0.9 <- readRDS(here("Data", "SavedRDS", "results_0.9.RDS"))
results_0.9
## Region A Region B Price A Price B diff Cij Tij
## 1 Mexico Mexico 896.7440 896.7440 0.000000 0.00 1.3552346
## 2 U.S. Mexico 955.2714 896.7440 -58.527426 58.50 0.0000000
## 3 Canada Mexico 993.7951 896.7440 -97.051055 96.65 0.0000000
## 4 EU Mexico 1031.6477 896.7440 -134.903705 155.55 0.0000000
## 5 L. America Mexico 894.1982 896.7440 2.545819 161.90 0.0000000
## 6 Mexico U.S. 896.7440 955.2714 58.527426 58.50 0.8091673
## 7 U.S. U.S. 955.2714 955.2714 0.000000 0.00 10.6429104
## 8 Canada U.S. 993.7951 955.2714 -38.523630 42.20 0.0000000
## 9 EU U.S. 1031.6477 955.2714 -76.376279 107.00 0.0000000
## 10 L. America U.S. 894.1982 955.2714 61.073244 142.05 0.0000000
## 11 Mexico Canada 896.7440 993.7951 97.051055 96.65 0.1825907
## 12 U.S. Canada 955.2714 993.7951 38.523630 42.20 0.0000000
## 13 Canada Canada 993.7951 993.7951 0.000000 0.00 0.5293206
## 14 EU Canada 1031.6477 993.7951 -37.852649 106.45 0.0000000
## 15 L. America Canada 894.1982 993.7951 99.596874 164.45 0.0000000
## 16 Mexico EU 896.7440 1031.6477 134.903705 155.55 0.0000000
## 17 U.S. EU 955.2714 1031.6477 76.376279 107.00 0.0000000
## 18 Canada EU 993.7951 1031.6477 37.852649 106.45 0.0000000
## 19 EU EU 1031.6477 1031.6477 0.000000 0.00 12.8647908
## 20 L. America EU 894.1982 1031.6477 137.449523 137.35 1.8095377
## 21 Mexico L. America 896.7440 894.1982 -2.545819 161.90 0.0000000
## 22 U.S. L. America 955.2714 894.1982 -61.073244 142.05 0.0000000
## 23 Canada L. America 993.7951 894.1982 -99.596874 164.45 0.0000000
## 24 EU L. America 1031.6477 894.1982 -137.449523 137.35 0.0000000
## 25 L. America L. America 894.1982 894.1982 0.000000 0.00 5.3077828
With this additional reduction in EU supply, EU imports from Latin American have increased from 1.235 scaled units in the previous case to 1.810 scaled units in the current case. These additional imports are such that Latin America no longer exports to Canada. Instead, Mexico is now exporting to both the U.S. and to Canada. Not surprisingly, Mexican imports to the U.S. are now lower than the previous case. The supply reduction has raised prices in all countries. For example, the Canadian price has risen from $972.66 in the previous case to $993.80 in the current case.
Now consider an addition upward shift in the EU supply schedule from -0.9 to -0.8.
results_0.8 <- readRDS(here("Data", "SavedRDS", "results_0.8.RDS"))
results_0.8
## Region A Region B Price A Price B diff Cij Tij
## 1 Mexico Mexico 931.3518 931.3518 0.00000 0.00 1.3492471
## 2 U.S. Mexico 990.4644 931.3518 -59.11257 58.50 0.0000000
## 3 Canada Mexico 1028.5309 931.3518 -97.17909 96.65 0.0000000
## 4 EU Mexico 1087.2362 931.3518 -155.88436 155.55 0.0000000
## 5 L. America Mexico 950.3587 931.3518 -19.00685 161.90 0.0000000
## 6 Mexico U.S. 931.3518 990.4644 59.11257 58.50 0.3202168
## 7 U.S. U.S. 990.4644 990.4644 0.00000 0.00 10.8119252
## 8 Canada U.S. 1028.5309 990.4644 -38.06652 42.20 0.0000000
## 9 EU U.S. 1087.2362 990.4644 -96.77179 107.00 0.0000000
## 10 L. America U.S. 950.3587 990.4644 40.10572 142.05 0.0000000
## 11 Mexico Canada 931.3518 1028.5309 97.17909 96.65 0.1705543
## 12 U.S. Canada 990.4644 1028.5309 38.06652 42.20 0.0000000
## 13 Canada Canada 1028.5309 1028.5309 0.00000 0.00 0.5353784
## 14 EU Canada 1087.2362 1028.5309 -58.70527 106.45 0.0000000
## 15 L. America Canada 950.3587 1028.5309 78.17224 164.45 0.0000000
## 16 Mexico EU 931.3518 1087.2362 155.88436 155.55 0.5310100
## 17 U.S. EU 990.4644 1087.2362 96.77179 107.00 0.0000000
## 18 Canada EU 1028.5309 1087.2362 58.70527 106.45 0.0000000
## 19 EU EU 1087.2362 1087.2362 0.00000 0.00 11.8307640
## 20 L. America EU 950.3587 1087.2362 136.87751 137.35 2.0598797
## 21 Mexico L. America 931.3518 950.3587 19.00685 161.90 0.0000000
## 22 U.S. L. America 990.4644 950.3587 -40.10572 142.05 0.0000000
## 23 Canada L. America 1028.5309 950.3587 -78.17224 164.45 0.0000000
## 24 EU L. America 1087.2362 950.3587 -136.87751 137.35 0.0000000
## 25 L. America L. America 950.3587 950.3587 0.00000 0.00 5.1517815
With this additional reduction in EU supply there is no change in the trade pattern from the previous case. Latin American exports to the EU continue to increase, and Mexican exports to the U.S. and Canada are both lower as compared to the previous case. The Canadian price is now $1028.53/tonne, which is up from $993.80 in the previous case.
Finally, consider an addition upward shift in the EU supply schedule from -0.8 to -0.7.
results_0.7 <- readRDS(here("Data", "SavedRDS", "results_0.7.RDS"))
results_0.7
## Region A Region B Price A Price B diff Cij Tij
## 1 Mexico Mexico 983.9581 983.9581 0.00000 0.00 1.34014565
## 2 U.S. Mexico 1029.7331 983.9581 -45.77494 58.50 0.00000000
## 3 Canada Mexico 1071.0922 983.9581 -87.13404 96.65 0.00000000
## 4 EU Mexico 1136.4096 983.9581 -152.45142 155.55 0.00000000
## 5 L. America Mexico 998.7749 983.9581 -14.81673 161.90 0.00000000
## 6 Mexico U.S. 983.9581 1029.7331 45.77494 58.50 0.00000000
## 7 U.S. U.S. 1029.7331 1029.7331 0.00000 0.00 10.77515376
## 8 Canada U.S. 1071.0922 1029.7331 -41.35910 42.20 0.00000000
## 9 EU U.S. 1136.4096 1029.7331 -106.67648 107.00 0.00000000
## 10 L. America U.S. 998.7749 1029.7331 30.95821 142.05 0.00000000
## 11 Mexico Canada 983.9581 1071.0922 87.13404 96.65 0.00000000
## 12 U.S. Canada 1029.7331 1071.0922 41.35910 42.20 0.15635995
## 13 Canada Canada 1071.0922 1071.0922 0.00000 0.00 0.54224725
## 14 EU Canada 1136.4096 1071.0922 -65.31738 106.45 0.00000000
## 15 L. America Canada 998.7749 1071.0922 72.31731 164.45 0.00000000
## 16 Mexico EU 983.9581 1136.4096 152.45142 155.55 1.06483984
## 17 U.S. EU 1029.7331 1136.4096 106.67648 107.00 0.07262185
## 18 Canada EU 1071.0922 1136.4096 65.31738 106.45 0.00000000
## 19 EU EU 1136.4096 1136.4096 0.00000 0.00 10.78126241
## 20 L. America EU 998.7749 1136.4096 137.63469 137.35 2.27941424
## 21 Mexico L. America 983.9581 998.7749 14.81673 161.90 0.00000000
## 22 U.S. L. America 1029.7331 998.7749 -30.95821 142.05 0.00000000
## 23 Canada L. America 1071.0922 998.7749 -72.31731 164.45 0.00000000
## 24 EU L. America 1136.4096 998.7749 -137.63469 137.35 0.00000000
## 25 L. America L. America 998.7749 998.7749 0.00000 0.00 5.01729200
The most important change in this case is that Mexico stops exporting to both the U.S. and Canada, and instead joins Latin America in exporting to the EU. With this change the U.S. begins to export to Canada. Once again, prices are higher in all countries. In Canada, the price with this scenario is $1071.09, up from $1028.53/tonne in the previous case.
These results clearly demonstrate that a supply reduction in one region has global implications for the pattern of trade and the full set of regional prices. You should confirm that the spatial LOP continues to hold in each scenario.
There are other interesting scenarios which could be analyzed in a similar way. For example, what might happen if there is a significant reduction in demand for tomatoes by the U.S.? In this case it is likely that Latin America would stop exporting to the U.S. and would instead export more to Canada and the E.U. What about Mexico? It might also stop exporting to the U.S. and instead export to Canada and possibly the EU. Without the spatial pricing model our predictions are rather loose because with multiple changing corner solutions our logic is not very precise.
Read about an increase in transportation cost “what if” scenario in Chapter 2 of my 2011 textbook. You can analyze the results yourself using the “tomatoes_code_only.R” file, which is in the Code folder of the zipped file you downloaded from Canvas. Find the variable cscale on line 36 and set its value above 1 to simulate an increase in global shipping costs. In the textbook chapter cscale is set equal to 2. Now run the program and compare the results matrix to the previous base case results. Be sure to examine how export and import prices are pushed in opposite directions as a result of the increase in transportation costs. Also notice the reduction in trade between countries because of the higher trade costs.
The spatial pricing model should be viewed as tool for guiding your thinking about basic supply and demand in commodity trading and pricing. Even though the pricing model under estimates the number of trading partners and is subject to abrupt changes in trade patterns, it still provides us with important intuition regarding how globalized trade operates at a basic level. The real power of the spatial equilibrium pricing model is its ability to conduct “what if” analysis. Similar types of “what if” analysis can be conducted with large computerized general equilibrium (CGE) models but with these models it is often to difficult to understand why the changes occurred. In the current analysis the intuition of the changing trade and pricing patterns with the gradual reduction in EU supply should be fairly obvious because it reflects our basic understanding of supply and demand.