Business School

About the Competitive Strategy Game

The Competitive Strategy Game (CSG) was originally conceived by Professor Severin Borenstein at the Stanford Graduate School of Business and then developed at the Haas School of Business at the University of California, Berkeley. Version 1.0 was released in 1994 and upgraded to the current release version 3.50.

The CSG has been used at more than 75 universities and colleges in about 20 different countries. Undergraduate, MBA, and PhD students all play the game as part of their Competitive Strategy, Microeconomics, and Public Policy courses.

This Case Study provides a high-level overview of the workflow without detailed explanation. It assumes you are already somewhat familiar with KNIME and Market Simulation. If not, start by reviewing the Building Blocks and Community Nodes.

Rules of the Game

The Competitive Strategy Game simulates the competition between eight companies in four different markets. The markets differ in several ways:

  1. size and growth rate of customer demand,
  2. cost of entry,
  3. production capacity,
  4. marginal costs and inventory costs, and
  5. similarity of the competitive products (making them more or less substitutable).

Each team of students controls one firm in the game. The team can decide which markets to enter, how much investment to make in production capacity, and what prices to charge.

Basic information about each market is publicly available, such as the overall size of the market, the substitutability of products, and price elasticity of demand. The teams also know the prices and capacity levels of their competitors. But competitors only know their own production costs – not the production costs of their competitors.

Market Simulation

Market Simulation is used to crack the Competitive Strategy Game.

This Part 01 involves calculating the Customer Willingness To Pay (WTP) Matrix for each Product in a single Market using the public information provided at the beginning of the game. This workflow will need to be duplicated three more times to calculate the WTP Matrix for all four markets.

The next Part 02 involves running a Monte Carlo simulation to calculate the Profit-Maximizing-Price of your Product. The Monte Carlo simulation uses the Capacity Constraints of all the Competitors published at the beginning of each period, as well as a range of Prices your Competitors might set.

Does “cracking” the CSG guarantee that you’ll win? No. After you crack the CSG you will know the approximate Willingness To Pay (WTP) of each of the Customers in the Market. But you won’t know which markets your competitors are going to enter, how much capacity they are going to build, or what prices your competitors will charge (that really would be cheating!).

Building a deep understanding of customer demand is something that every business in the world should be doing. Having a Market Simulation tool allows companies to refine their strategy with market science. Companies can make data-driven decisions regarding the:

  • markets to enter,
  • products to build,
  • positioning to develop,
  • profit-maximizing prices to set, and
  • best response to competitors.

Input Data

Each CSG Market is mathematically defined by three variables:

  1. Size of the Total Available Market (TAM),
  2. Degree of Brand Substitution, and
  3. Sensitivity of Market Demand.

1. Total Available Market: The size of the Total Available Market (TAM) is important and something you need to work out for yourselves for each Market. But there is a tricky gotcha that you need to understand. According to the CSG documentation:

Each consumer is assigned a base reservation price for the good, drawn from a normal distribution with mean zero. So about half of the [TAM] population has negative reservation prices and no possibility of purchase.

In other words, half of the Customers would never buy a Product even if the Product was free. This means that the TAM needs to be more than double the maximum quantity sold from the public data.

Estimate the TAM by first estimating what the total quantity sold would be if all the Products were free, then double the result.

For example, the table ‘Information on Market Demand and the Effect of Brand Proliferation‘ in the downloadable spreadsheet states that with 4 Products in the Market, each with a Price of $200, the number of Customers who purchase is 4,176. Eyeballing the trend shows that if the Price were $0 then there might be 10,000 Customers. Therefore the size of the Total Available Market (TAM) should be set to 20,000.

2. Degree of Brand Substitution: This is a measure of Product similarity. If Products are highly similar with little differentiation then Customers are more likely to buy the cheapest Product. But if Products are not very similar, and are highly differentiated, then Price might not be the most important factor when making a purchase decision.

In microeconomics, the degree of substitution is called ‘Horizontal Differentiation‘. In mathematics, it is measured by calculating the Correlation between the WTP each Customer has for each Product:

High Correlation = High Similarity = Low Horizontal Differentiation = High Substitutability

You can read more about Horizontal Differentiation in this Market Simulation Case Study:

Rise of the Microbrew – Part 05 Mass Marketing (Horizontal Differentiation)

 3. Sensitivity of Market Demand: This is a measure of Price Elasticity. If the Market is highly sensitive to Price, then Demand will increase rapidly when Prices decline.

According to the CSG documentation, Customer Demand for each Market is set according to a fixed Standard Deviation (SD):

Every consumer is then assigned a brand-specific ‘offset’ for every brand in the market, which is added to her base reservation price to determine the consumer’s reservation price for that brand. The offset is drawn from a normal distribution with mean zero and standard deviation equal to some proportion x of the specific consumer’s base reservation price for the good.

In microeconomics, the Mean of a Customer WTP Distribution is a measure of ‘Vertical Differentiation‘ while the Standard Deviation is a measure of ‘Strange Differentiation‘. But as this Mean = 0.0 there is no Vertical Differentiation in the CSG and no Product is “better” than any other. You can read more about both types of Differentiation in these Market Simulation Case Studies:

Rise of the Microbrew – Part 04 Pasteurization and Refrigeration (Vertical Differentiation)

Rise of the Microbrew – Part 06 Microbrews (Strange Differentiation)

Branch #1: Market Metrics

The Tune Scenarios node is used to calculate the Market Metrics for the CSG. This node takes data from a number of Market Scenarios (observations from the Market operating under different conditions), then calculates:

  • Market Mean (already known to be zero)
  • Market Correlation
  • Market Standard Deviation

The Market Scenarios data all comes from the publicly available CSG data.

  1. Download the Excel Spreadsheet from this article (above).
  2. Enter in the public CSG data from the ‘Information on Market Demand and the Effect of Brand Proliferation‘ table and ‘Information on Brand Substitution‘ table.
  3. Copy-and-Paste the data from the second ‘Market Array‘ tab in the spreadsheet back into the workflow (or drag-and-drop the spreadsheet directly into the workflow if you are really clever).
  4. Set the ‘Number of Customers’ field according to your estimated TAM in the ‘Tune Scenarios’ node.

The Tune Scenarios node will immediately use this data to calculate the needed KPI Market Metrics. The remaining downstream nodes will then convert these KPI Market Metrics into ‘Flow Variables‘ which are needed by Branch #2.

Table Creator

Copy the formatted CSG data back into the Table Creator node

Tune Scenarios

Set the ‘Number of Customers’ equal to your estimated TAM

Market Metrics

Check the KPI Market Metrics from the bottom output port

Row Filter

Selects the KPI Market Metrics

Column Filter

Selects the Flow Variable Name and Value fields

Flow Variables

Converts table data into Flow Variables

Branch #2: WTP Matrix

The second branch of this Part 01 workflow generates a Willingness To Pay (WTP) Matrix. Each Customer has a perceived value or reserve price or WTP for each Product. As the Total Available Market (TAM) is maybe 20,000 Customers, there will be 20,000 rows in the WTP Matrix (one row per Customer). And as there will be up to 8 Products in the Market, there will be 8 columns in the WTP Matrix. Each column is called a ‘Customer Distribution‘ and contains the range of perceived values that Customers are willing to pay for the associated Product.

Customer Consumer Surplus = Customer WTP for Product – Product Price

  1. Enter the names of all the players in the CSG in the second Table Creator node.
  2. The workflow generates a normal (bell-shaped) Customer Distribution for each Product with Mean = 0.0 and Standard Deviation (SD) = ‘Market Standard Deviation’ Flow Variable.
  3. The workflow generates a ‘Correlation Matrix‘ using the ‘Market Correlation’ Flow Variable. The Correlation Matrix represents the degree of similarity and substitutability between each Product.
  4. The Matrix Distributions node generates a 8-column x 20,000-row Customer WTP Matrix.

Plotting a Product column from the Customer WTP Matrix in a histogram will look something like the above chart. Half of the Customers have a negative WTP and would never purchase a Product (even if it was free). Customers will buy at the $400, $300, and $200 levels, but there are many more Customers who would make a purchase if the Price were even cheaper.

What this histogram doesn’t show is the correlation between the Customer Distribution columns (that is, the degree of Brand Substitution of the Products). Disregarding this correlation is a critical mistake! If there is a lot of Horizontal Differentiation in the Market then you can safely raise Price to increase your Profitability. But if, on the other hand, there is a high degree of Brand Substitutability then you need to Price aggressively or precisely calculate when your Competitors will run out of Capacity.

Congratulations! You’re now half-way to cracking the Competitive Strategy Game (CSG). Copy this output Customer WTP Matrix into the Part 02 workflow (or save the Excel spreadsheet and drag-and-drop it into the workflow) to calculate your Profit Maximizing Price.

Table Creator

Enter the names of all CSG teams

Constant Value Column

Sets the Standard Deviation for each Product Customer Distribution

Constant Value Column

Override default SD with the ‘Market Standard Deviation’ Flow Variable

Product Attributes

Contains the Mean and SD of the WTP Distribution of each Product

Correlation Matrix

Contains the Correlation between each WTP Customer Distribution

WTP Matrix

The final WTP Matrix to copy into Crack the CSG – Part 02

Advanced Users

Each CSG Market will grow in size during the game. If this growth rate is significant you may wish to re-run part of this Market Simulation workflow to generate a new WTP Matrix with more Customer rows.

Only the final Matrix Distributions node in Branch #2 needs to be re-run (not the whole tuning workflow that starts in Branch #1). But you need to make some manual adjustments to this Matrix Distributions node.

First, manually estimate the new size of the Total Available Market (TAM) each game period. Then enter this value into the ‘Number of Customers’ field in the Matrix Distributions node.

Second, delete the original Flow Variable that is used to override the ‘Number of Customers’ field in the Matrix Distributions node. The ‘Market Size’ flow variable was originally set by you in the ‘Tune Scenarios’ node in Branch #1. This variable then flows down the workflow and can be used to override the parameters in other nodes. Open the ‘Flow Variables’ tab and set the ‘NumberOfCustomersTextBox’ to be blank.

Matrix Distributions

Only this node needs to be re-run when the Market size increases

Number of Customers

Set the ‘Number of Customers’ to be your new TAM estimate

Flow Variable

Delete the original Flow Variable that overrides the Market Size