Implements the model presented in Shelegia and Motta (2021)
Project description
This package implements the models of Shelegia and Motta (2021).
Installation
Installation over PyPI:
pip install Shelegia-Motta-2021
Or installation over GitHub:
pip install git+https://github.com/manuelbieri/shelegia_motta_2021.git
Introduction
The theory of the “kill zone” has become an increasingly prominent cause for concern among economists in recent times, especially with the rise of digital companies that have become monopolists in their sectors internationally. Companies like Facebook are continuously acquiring start-ups that may have a chance of competing with them in some way in the future. The sheer size and dominance of these companies combined with their aggression regarding the acquisition of competitors makes entering these markets as a direct competitor very unattractive at first glance. However, this issue is not as one-sided as that. This paper aims to rationalize the well-known “kill zone” argument by providing a simple model that explores how and when an incumbent firm may induce an entrant to choose a “non-aggressive” innovation path and enter with the goal of being acquired.
The different models revealed that platform-owning incumbents react in diametrically opposing fashion to an entrant’s plans to develop a substitute to their platform and a complement. When a larger firm is dominating a certain sector and new firms are trying to enter this market, these firms may feel a hesitation to produce a direct competitor to the products of the incumbent, and they will veer more towards producing a compliment as the prospect of the incumbent copying or acquiring the entrant looms. This is the reason a “kill zone” may emerge. Interestingly, the possibility of an acquisition by the incumbent does not worsen the “kill zone” effect. In fact, it may even induce the entrant to develop a product that rivals the incumbent in the hope of being acquired as this can generate massive profits for the smaller entrant. Meanwhile, a two – sided market will not alter the “kill zone” significantly compared to the basic model. Only simultaneous choices of both parties will avoid the existence of a “kill zone” since the choice of the entrant cannot prevent the incumbent to copy the entrant.
Since all models implement the Shelegia_Motta_2021.IModel.IModel - Interface, therefore all models provide the same functionality (public methods), even though the results may change substantially.
For all models add the following import statement:
import Shelegia_Motta_2021.Models
Models
Base Model
The base model of the project consists of two players: The incumbent, which sells the primary product, and a start-up otherwise known as the entrant which sells a complementary product to the incumbent. One way to visualize a real-world application of this model would be to think of the entrant as a product or service that can be accessed through the platform of the incumbent, like a plug in that can be accessed through Google or a game on Facebook. The aim of this model is to monitor the choice that the entrant has between developing a substitute to or another compliment to the incumbent. The second aim is to observe the choice of the incumbent of whether to copy the original complementary product of the entrant by creating a perfect substitute or not. Seeing as the entrant may not have enough assets to fund a second product, the incumbent copying its first product would inhibit the entrant’s ability to fund its projects. This report will illustrate how the incumbent has a strategic incentive to copy the entrant if it is planning to compete and that it would refrain from copying if the entrant plans to develop a compliment. The subsequent models included in this report will introduce additional factors but will all be based on the basic model.
The equilibrium path arguably supports the “kill zone” argument: due to the risk of an exclusionary strategy by the incumbent, a potential entrant may prefer to avoid a market trajectory which would lead it to compete with the core product of a dominant incumbent and would choose to develop another complementary product instead.
base_model = Shelegia_Motta_2021.Models.BaseModel()
Bargaining Power Model
Besides the parameters used in the paper (and in the BaseModel), this class will introduce the parameter $\beta$ in the models, called the bargaining power of the incumbent. $\beta$ describes how much of the profits from the complementary product of the entrant will go to the incumbent In the paper the default value $\beta=0.5$ is used to derive the results, which indicate an equal share of the profits.
bargaining_power_model = Shelegia_Motta_2021.Models.BargainingPowerModel()
Unobservable Choices Model
This model indicates that if the incumbent were not able to observe the entrant at the moment of choosing, the “kill zone” effect whereby the entrant stays away from the substitute in order to avoid being copied would not take place. Intuitively, in the game as we studied it so far, the only reason why the entrant is choosing a trajectory leading to another complement is that it anticipates that if it chose one leading to a substitute, the incumbent would copy, making it an inefficient strategy for entering the market. However, if the incumbent cannot observe the entrant’s choice of strategy, the entrant could not hope to strategically affect the decision of the incumbent. This would lead to the entrant having a host of new opportunities when entering the market makes the entrant competing with a large company much more attractive.
Although there may be situations where the entrant could commit to some actions (product design or marketing choices) which signals that it will not become a rival, and it would have all the incentive to commit to do so, then the game would be like the sequential moves game analyzed in the basic model. Otherwise, the entrant will never choose a complement just to avoid copying, and it will enter the “kill zone”.
unobservable_model = Shelegia_Motta_2021.Models.UnobservableModel()
Acquisition Model
In order to explore how acquisitions may modify the entrant’s and the incumbent’s strategic choices, we extend the base model in order to allow an acquisition to take place after the incumbent commits to copying the entrant’s original complementary product (between t=1 and t=2, see demo.ipynb "Timing of the game"). We assume that the incumbent and the entrant share the gains (if any) attained from the acquisition equally.
The “kill zone” still appears as a possible equilibrium outcome, however for a more reduced region of the parameter space. The prospect of getting some acquisition gains does tend to increase the profits gained from developing a substitute to the primary product, and this explains why part of the “kill zone” region where a complement was chosen without the acquisition, the entrant will now choose a substitute instead.
acquisition_model = Shelegia_Motta_2021.Models.AcquisitionModel()
Alternative formulations of the acquisition game
An alternative formulation could be introduced in order to allow acquisitions to take place before the copying decision by the incumbent. The results are qualitatively like the results of the model which had the acquisition after the copying decision. In this alternative formulation of the game, copying would never occur along the equilibrium path. Indeed, there would be an additional source of gains from acquisition consisting of avoiding the fixed cost of copying.
Basic usage
# every model type can be plugged in without changing the following code.
# initialize model with custom parameters
model: Shelegia_Motta_2021.IModel.IModel = Shelegia_Motta_2021.Models.BaseModel()
# print string representation of the model
print(model)
# plot the payoffs for different market configurations for all stakeholders
model.plot_payoffs()
# plot the best answers of the incumbent to the choice of the entrant
model.plot_incumbent_best_answers()
# plot the equilibrium path
model.plot_equilibrium()
# not necessary when working with jupyter notebooks
plt.show()
A demonstration of the code can be found in demo.html (output of demo.ipynb, on small screens it may not be displayed correctly).
Dependencies
Package | Version | Annotation |
---|---|---|
matplotlib | 3.5.1 | Always needed (includes numpy) |
jupyter | 1.0.0 | Just for the demonstration in demo.ipynb |
IPython | 8.1.0 | Just for the demonstration in demo.ipynb |
pdoc | 10.0.1 | Only to generate the documentation from scratch |
Install the dependencies with the following command:
pip install -r requirements.txt
(Note: Make sure you are operating in the same directory as the requirements.txt
is located.)
These packages include all the needed imports for the functionality of this package.
Additional Notes
For further information about the project (structure) and the code, see resources/dev_notes.md.
Documentation
For the latest version of the documentation open manuelbieri.github.io/shelegia_motta_2021 in your browser or call:
import Shelegia_Motta_2021
Shelegia_Motta_2021.docs()
Build Documentation
Generate api-documentation with the following command (note the use of pdoc
):
pdoc -o ./docs Shelegia_Motta_2021 --docformat "numpy" --math
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file shelegia_motta_2021-1.0.2.tar.gz
.
File metadata
- Download URL: shelegia_motta_2021-1.0.2.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 042664383318cecc500eeb6ecf3f5a3fb3c5fdd9732cfe994eb75d2b08d59c68 |
|
MD5 | e684a9e19383fd93ceecf0137e9bc4d2 |
|
BLAKE2b-256 | 021688a56ed5dfc804980c8b5a9789c3f46e62cd79258f3dd8f35eea8abdfe4a |
File details
Details for the file Shelegia_Motta_2021-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: Shelegia_Motta_2021-1.0.2-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aabd9b52bc5c0e59c6140a39f4faeeaf9a7bc0b3188ba8b9fb8997f00d38a165 |
|
MD5 | b583905cbfd078528e9bb7b272d1338d |
|
BLAKE2b-256 | 5c480f7ab65c521750db4f477e49452b20689d21e74a7d944be587613bdff5ac |