Case Study 2: Qualitative and Continuous Facility Location Planning

A distribution hub for Latin America – AHP and the Steiner–Weber model

Author

Supply Chain Management – Group Work

NoteOverview
Topic Location choice for an international distribution hub
Link to the lecture Chapter 4 of the course reader: scoring model (utility analysis), AHP, Steiner–Weber model (centre of gravity, Weiszfeld)
Type Data-based case study: forecast data and cost parameters (given) + freely available country indicators (own research)
Group size 3–6 people
Deliverable Presentation (30 min) + discussion (15 min), slide deck (PDF) and reproducible R/Quarto code

1 Learning objectives

After working through this case study, you will be able to

  • build a multi-level location evaluation model comprising minimum requirements (knock-out criteria), weighted criteria and a sensitivity analysis,
  • derive criteria weights using the Analytic Hierarchy Process (AHP) and check the consistency of the judgements,
  • operationalise qualitative criteria with freely available indicators (e.g. World Bank data),
  • determine the demand-optimal location with the Steiner–Weber model on real coordinates and critically reflect on its limitations,
  • combine quantitative and qualitative evaluations into a well-founded location recommendation.

2 Initial situation

Luminé Cosmetics GmbH (fictitious) is a medium-sized manufacturer of colour cosmetics based in Hesse. Its range includes lipsticks, mascara, eyeshadow and nail polish and is characterised by many variants, short product life cycles and low unit prices. Sales abroad are handled by distributors, who currently collect the goods ex works (EXW) at the central distribution centre in Hesse. Transport, customs clearance and onward distribution are therefore entirely the distributor’s responsibility.

Latin America is the fastest-growing sales market. However, the distributors complain about long delivery times (sea freight from Europe plus consolidation plus customs clearance: 6–10 weeks), high safety stocks and country-specific labelling requirements. Management is therefore considering whether to set up a regional distribution hub in Latin America. The hub would consolidate flows of goods from Europe, apply country-specific labels (labelling) and supply the distributors in the region.

TipGuiding question

Should Luminé set up a regional hub in Latin America and, if so, at which location?

3 Data

3.1 Sales forecast by country

The sales department’s forecast (in million sales units per year) is broken down by target market. The coordinates used are those of the most important distribution location in each case (usually the largest city or the distributor’s headquarters).

Code
maerkte <- data.frame(
  land  = c("Mexiko", "Peru", "Chile", "Kolumbien", "Ecuador", "Guatemala",
            "Dominikanische Rep.", "Costa Rica", "Panama", "Bolivien", "Uruguay"),
  stadt = c("Mexiko-Stadt", "Lima", "Santiago", "Bogotá", "Guayaquil",
            "Guatemala-Stadt", "Santo Domingo", "San José", "Panama-Stadt",
            "La Paz", "Montevideo"),
  lat   = c(19.43, -12.05, -33.45,  4.71,  -2.17, 14.63, 18.49,  9.93,  8.98, -16.50, -34.90),
  lon   = c(-99.13, -77.04, -70.67, -74.07, -79.92, -90.51, -69.93, -84.08, -79.52, -68.15, -56.16),
  p2027 = c(8.0, 5.0, 4.5, 4.0, 2.5, 1.0, 0.9, 0.8, 0.7, 0.5, 0.5),
  p2029 = c(18.0, 11.0, 10.0, 9.5, 6.0, 2.2, 2.0, 1.8, 1.5, 1.2, 1.1),
  p2032 = c(30.0, 19.0, 17.0, 16.0, 10.0, 4.0, 3.5, 3.0, 2.5, 2.0, 2.0)
)
knitr::kable(maerkte, digits = 2,
             col.names = c("Country", "City", "Latitude", "Longitude",
                           "2027", "2029", "2032"),
             caption = "Sales forecast in million units/year")
Sales forecast in million units/year
Country City Latitude Longitude 2027 2029 2032
Mexiko Mexiko-Stadt 19.43 -99.13 8.0 18.0 30.0
Peru Lima -12.05 -77.04 5.0 11.0 19.0
Chile Santiago -33.45 -70.67 4.5 10.0 17.0
Kolumbien Bogotá 4.71 -74.07 4.0 9.5 16.0
Ecuador Guayaquil -2.17 -79.92 2.5 6.0 10.0
Guatemala Guatemala-Stadt 14.63 -90.51 1.0 2.2 4.0
Dominikanische Rep. Santo Domingo 18.49 -69.93 0.9 2.0 3.5
Costa Rica San José 9.93 -84.08 0.8 1.8 3.0
Panama Panama-Stadt 8.98 -79.52 0.7 1.5 2.5
Bolivien La Paz -16.50 -68.15 0.5 1.2 2.0
Uruguay Montevideo -34.90 -56.16 0.5 1.1 2.0

3.2 Location alternatives

Five port locations have been pre-selected, each of which has a free trade zone or special economic zone. In addition, there is the status quo, i.e. central supply from Germany. The cost figures are guide values estimated by a logistics consultant for a 3PL operation on the basis of quotations.

Code
hubs <- data.frame(
  hub   = c("Colón", "Cartagena", "Puerto Limón/Moín", "Veracruz", "Callao"),
  land  = c("Panama", "Kolumbien", "Costa Rica", "Mexiko", "Peru"),
  zone  = c("Zona Libre de Colón", "Zona Franca Cartagena",
            "Zona Franca Limón", "Recinto Fiscalizado Estratégico", "ZED Callao (under construction)"),
  lat   = c(9.36, 10.39, 10.00, 19.17, -12.05),
  lon   = c(-79.90, -75.51, -83.03, -96.13, -77.15),
  fix_musd     = c(2.4, 1.9, 1.7, 2.1, 1.8),  # fixed costs of hub (million USD/year)
  handling_usd = c(0.050, 0.045, 0.048, 0.042, 0.046),  # handling incl. labelling per unit
  see_tage     = c(18, 17, 19, 20, 28)   # sea freight transit time from Rotterdam/Hamburg (days)
)
knitr::kable(hubs, digits = 3,
             col.names = c("Hub", "Country", "Zone", "Latitude", "Longitude",
                           "Fixed costs [million USD/yr]", "Handling [USD/unit]",
                           "Sea freight [days]"))
Hub Country Zone Latitude Longitude Fixed costs [million USD/yr] Handling [USD/unit] Sea freight [days]
Colón Panama Zona Libre de Colón 9.36 -79.90 2.4 0.050 18
Cartagena Kolumbien Zona Franca Cartagena 10.39 -75.51 1.9 0.045 17
Puerto Limón/Moín Costa Rica Zona Franca Limón 10.00 -83.03 1.7 0.048 19
Veracruz Mexiko Recinto Fiscalizado Estratégico 19.17 -96.13 2.1 0.042 20
Callao Peru ZED Callao (under construction) -12.05 -77.15 1.8 0.046 28

Further cost parameters (guide values):

  • Sea freight Europe → hub: approx. USD 2,800 per 40’ container, approx. 40,000 units per container (the same for all ports on the Caribbean coast; Callao +35%).
  • Onward distribution hub → market (feeder ship/truck, incl. customs handling): USD 0.03 per 1,000 units and km (straight-line, haversine distance) plus a 25% detour factor.
  • For the economic assessment of the status quo, assume direct shipping to each country with an average container utilisation of 45% (small quantities, LCL surcharges) and handling in Germany of USD 0.08/unit, without country-specific labelling on site.
  • Status quo: The distributors bear the transport costs. However, Luminé Cosmetics grants the distributors a discount on the selling price, the level of which differs from country to country. The further the country/market is from Germany, the larger the discount. Assume that the discount is 5% for Central American countries and 10% for South American countries. The average value of goods is €1/unit.

3.3 Statements from expert interviews

Interviews were conducted in advance with internal and external experts. The following (fictitious) statements are intended to serve as the basis for the AHP pairwise comparisons:

Head of Supply Chain: “Without a clear cost advantage, we won’t get a hub approved. But delivery time is almost as important for our distributors – otherwise we lose the season for trend colours.”

Head of International Sales: “What matters to me is where the volume of the future lies. Mexico, Peru and Chile are the growth drivers. A hub that doesn’t reach these markets quickly is of little use to us.”

Regulatory Affairs: “Don’t underestimate registration and labelling. A hub in a free trade zone with re-export experience saves us an enormous amount of effort – but that’s more of a prerequisite than a differentiator.”

External 3PL consultant: “Political stability is a filter: if a country isn’t stable, you don’t invest in a hub there, no matter how good the port is. Among the stable countries, however, it is no longer as decisive as infrastructure and costs.”

CFO: “We’ve had good experiences with a hub in the Middle East – but the port and 3PL infrastructure there was also right. For me, that’s the second most important criterion after costs.”

3.4 Freely available country indicators (own research)

To operationalise the qualitative criteria, use real, freely available data, for example:

Criterion Possible indicators Source
Logistics performance Logistics Performance Index (LPI) 2023, overall and sub-scores World Bank, https://lpi.worldbank.org
Political and economic stability Worldwide Governance Indicators: Political Stability and Absence of Violence, Rule of Law World Bank, https://www.worldbank.org/en/publication/worldwide-governance-indicators
Port performance Container throughput (TEU) of the main ports CEPAL/ECLAC Port Activity Report
Regulation Customs clearance (LPI sub-score Customs), rules of the free trade zone LPI, websites of the free zones
Speed to market Transit times, number of direct liner services Shipping lines’ schedules, table above

4 Tasks

4.1 Part A – Evaluation model and minimum requirements

A1. Define a hierarchical system of objectives with five to seven criteria and assign each criterion to a level: minimum requirement (knock-out criterion), weighted evaluation criterion, or risk/sensitivity factor.

A2. For the minimum requirements, define criteria/measures and set threshold values (e.g. “WGI Political Stability > −0.5”), research the values for the five hub countries and eliminate alternatives where necessary.

4.2 Part B – Criteria weighting with AHP

B1. Derive a pairwise comparison matrix of the weighted criteria on the AHP scale from the expert interviews. Document which statement you rely on for each comparison.

B2. Calculate the priority vector as well as the consistency index (CI) and consistency ratio (CR). Is your matrix sufficiently consistent (CR < 0.1)? If not, adjust the most inconsistent judgements with justification.

4.3 Part C – Steiner–Weber model

C1. Determine the demand-weighted optimal location for the 2027 and 2032 forecasts: first the centre of gravity, then the optimum using the Weiszfeld algorithm. First convert the geographical coordinates into a metric coordinate system (see starter code) and explain why this is necessary.

C2. Show markets, hub candidates and optimal points on a map. For each hub candidate, calculate the weighted distance to all markets and the annual onward distribution costs. How large is the “price” of restricting the choice to real port locations compared with the continuous optimum?

C3. Select a location and determine the expected distribution costs. Is there an improvement compared with the status quo?

4.4 Part D – Recommendation and reflection

D1. Overall evaluation. Evaluate the remaining hub candidates and the status quo on all weighted criteria (scores 1–5 based on the researched indicators and your results from Part C) and calculate the overall score.

D2. Sensitivity. Test the robustness of your ranking in at least two scenarios: varying the cost weight by ± 50%, loss of the Mexican market (supply via the local joint venture), or the 2032 forecast materialising at only 60%.

D3. Recommendation. Formulate a location recommendation for management, including the main risks.

D4. Reflection. Answer the following questions in your presentation. They form the starting point for the subsequent discussion:

  1. How strongly does your result depend on the subjective pairwise comparisons? Would another group have derived a different recommendation from the same interviews, and would that be a problem?
  2. What does a Steiner–Weber optimum that lies in the sea or in the Andes tell us? In which situations is a continuous model nevertheless useful?
  3. Which criteria could be measured well with public indicators, and which hardly at all? How does this asymmetry affect the result?
  4. Knock-out criteria exclude, a weighted sum compensates. Which criteria, in your opinion, should not be compensable, and why?
  5. How would sales management in Latin America and headquarters in Germany probably weight the criteria differently? How should an internationally operating company deal with such differences in perspective?

5 Appendix: R starter code

The functions ahp_priority_vector(), ahp_consistency(), center_of_gravity(), weiszfeld() and haversine() are available in R/scm_functions.R.

Code
source("../R/scm_functions.R")

# --- AHP: example matrix (criteria K1..K3) – replace with your own judgements
A <- matrix(c(1,   2,   3,
              1/2, 1,   2,
              1/3, 1/2, 1), nrow = 3, byrow = TRUE)
w <- ahp_priority_vector(A)
ahp_consistency(A, w)

# --- Projection in km (equidistant, reference latitude phi0)
R_erde <- 6371
phi0   <- mean(maerkte$lat) * pi / 180
proj <- function(lat, lon) data.frame(
  x = R_erde * lon * pi / 180 * cos(phi0),
  y = R_erde * lat * pi / 180)

coords <- cbind(proj(maerkte$lat, maerkte$lon), demand = maerkte$p2032)
cog <- center_of_gravity(coords)
ws  <- weiszfeld(coords, max_iter = 500)

# Back-projection to latitude/longitude
c(lat = ws$y / R_erde * 180 / pi,
  lon = ws$x / (R_erde * cos(phi0)) * 180 / pi)

# --- Weighted haversine distance per hub (million units * km)
wd <- sapply(seq_len(nrow(hubs)), function(h)
  sum(maerkte$p2032 * haversine(hubs$lat[h], hubs$lon[h],
                                maerkte$lat, maerkte$lon)))
names(wd) <- hubs$hub
wd