Fumagalli_Motta_Tarantino_2020.Models.Extension
1import Fumagalli_Motta_Tarantino_2020.Models.Types as Types 2import Fumagalli_Motta_Tarantino_2020.Models.Base as Base 3 4 5class ProCompetitive(Base.OptimalMergerPolicy): 6 """ 7 Relaxes the assumption (A4), that the innovation of the start-up is always welfare beneficial. Instead, the 8 innovation is only welfare beneficial if the start-up develops and markets the innovation. In contrast, owned by the 9 incumbent, the innovation reduces the total welfare. This is implying a pure positive effect of the innovation on 10 competition. 11 """ 12 13 def __init__(self, consumer_surplus_without_innovation: float = 0.3, **kwargs): 14 super(ProCompetitive, self).__init__( 15 consumer_surplus_without_innovation=consumer_surplus_without_innovation, 16 **kwargs 17 ) 18 19 def _check_assumption_four(self): 20 assert ( 21 self._success_probability 22 * (self.w_with_innovation - self.w_without_innovation) 23 < self.development_costs 24 < self._success_probability * (self.w_duopoly - self.w_without_innovation) 25 ), "Adjusted assumption 4 in this model" 26 27 def _check_asset_distribution_threshold_strict(self): 28 pass 29 30 def _calculate_h0(self) -> float: 31 return 0 32 33 def _calculate_h1(self) -> float: 34 return (1 - self.asset_threshold_cdf) * ( 35 self.success_probability * (self.w_duopoly - self.w_without_innovation) 36 - self.development_costs 37 ) 38 39 def _calculate_h2(self) -> float: 40 return 0 41 42 def _solve_game_strict_merger_policy(self) -> None: 43 assert self.merger_policy is Types.MergerPolicies.Strict 44 self._set_takeovers( 45 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 46 ) 47 48 def _solve_game_late_takeover_prohibited(self) -> None: 49 if ( 50 self.asset_threshold_cdf 51 < self.asset_distribution_threshold_unprofitable_without_late_takeover 52 ): 53 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 54 else: 55 self._set_takeovers( 56 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 57 ) 58 59 def _solve_game_late_takeover_allowed(self) -> None: 60 if ( 61 self.asset_threshold_late_takeover_cdf 62 < self.asset_distribution_threshold_with_late_takeover 63 ): 64 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 65 else: 66 if self.is_startup_credit_rationed: 67 self._set_takeovers( 68 early_takeover=Types.Takeover.No, 69 late_takeover=Types.Takeover.No, 70 ) 71 else: 72 if self.development_success: 73 self._set_takeovers(late_takeover=Types.Takeover.Pooling) 74 else: 75 self._set_takeovers( 76 early_takeover=Types.Takeover.No, 77 late_takeover=Types.Takeover.No, 78 ) 79 80 def is_strict_optimal(self) -> bool: 81 """ 82 In this model a strict merger policy is always optimal. 83 """ 84 return True 85 86 def is_intermediate_optimal(self) -> bool: 87 """ 88 In this model an intermediate merger policy is never optimal. 89 """ 90 return False 91 92 def is_laissez_faire_optimal(self) -> bool: 93 """ 94 In this model a laissez-faire merger policy is never optimal. 95 """ 96 return False 97 98 99class ResourceWaste(ProCompetitive): 100 """ 101 In this model is assumed, that the innovation is never welfare beneficial, therefore a development is always a waste 102 of resources regarding total welfare. 103 """ 104 105 def __init__(self, consumer_surplus_duopoly=0.41, **kwargs): 106 super(ResourceWaste, self).__init__( 107 consumer_surplus_duopoly=consumer_surplus_duopoly, **kwargs 108 ) 109 110 def _check_assumption_four(self): 111 assert ( 112 self._success_probability 113 * (self.w_with_innovation - self.w_without_innovation) 114 < self._success_probability * (self.w_duopoly - self.w_without_innovation) 115 < self.development_costs 116 ), "Adjusted assumption 4 in this model" 117 118 def _calculate_h1(self) -> float: 119 return 0 120 121 def _solve_game_strict_merger_policy(self) -> None: 122 assert self.merger_policy is Types.MergerPolicies.Strict 123 if ( 124 self.asset_threshold_cdf 125 < self.asset_distribution_threshold_unprofitable_without_late_takeover 126 ): 127 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 128 else: 129 self._set_takeovers( 130 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 131 ) 132 133 def is_strict_optimal(self) -> bool: 134 """ 135 In this model is a strict merger policy never optimal 136 """ 137 return False 138 139 def is_intermediate_optimal(self) -> bool: 140 """ 141 Returns whether the intermediate (WITHOUT late takeovers) merger policy is optimal. 142 143 The intermediate (WITHOUT late takeovers) merger is optimal, if a laissez-faire merger policy is not optimal. 144 145 Returns 146 ------- 147 True 148 If the intermediate (WITHOUT late takeovers) merger policy is optimal. 149 """ 150 return not self.is_laissez_faire_optimal() 151 152 @staticmethod 153 def _get_intermediate_optimal_candidate() -> Types.MergerPolicies: 154 return Types.MergerPolicies.Intermediate_late_takeover_prohibited 155 156 def is_laissez_faire_optimal(self) -> bool: 157 """ 158 Returns whether a laissez-faire policy is optimal. 159 160 A laissez-faire policy (that authorises any takeover) is optimal, if: 161 1. Financial imperfections are not severe ($F(\\bar{A}^T)<\\Phi^T(\\cdot)$). 162 163 Or as well if: 164 1. Financial imperfections are always severe ($F(\\bar{A}^T)\\ge\\Phi^T(\\cdot)$ and 165 $F(\\bar{A})\\ge\\Phi(\\cdot)$). 166 2. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 167 likely that the innovation is commercialised (Condition 6 not satisfied). 168 169 Returns 170 ------- 171 True 172 If a laissez-faire merger policy is optimal. 173 """ 174 return not self.is_financial_imperfection_severe() or ( 175 self.is_financial_imperfection_severe() 176 and self.is_financial_imperfection_severe_without_late_takeover() 177 and not self.is_competition_effect_dominating() 178 ) 179 180 def is_financial_imperfection_severe_without_late_takeover(self): 181 return ( 182 self.asset_threshold_cdf 183 > self.asset_distribution_threshold_unprofitable_without_late_takeover 184 )
6class ProCompetitive(Base.OptimalMergerPolicy): 7 """ 8 Relaxes the assumption (A4), that the innovation of the start-up is always welfare beneficial. Instead, the 9 innovation is only welfare beneficial if the start-up develops and markets the innovation. In contrast, owned by the 10 incumbent, the innovation reduces the total welfare. This is implying a pure positive effect of the innovation on 11 competition. 12 """ 13 14 def __init__(self, consumer_surplus_without_innovation: float = 0.3, **kwargs): 15 super(ProCompetitive, self).__init__( 16 consumer_surplus_without_innovation=consumer_surplus_without_innovation, 17 **kwargs 18 ) 19 20 def _check_assumption_four(self): 21 assert ( 22 self._success_probability 23 * (self.w_with_innovation - self.w_without_innovation) 24 < self.development_costs 25 < self._success_probability * (self.w_duopoly - self.w_without_innovation) 26 ), "Adjusted assumption 4 in this model" 27 28 def _check_asset_distribution_threshold_strict(self): 29 pass 30 31 def _calculate_h0(self) -> float: 32 return 0 33 34 def _calculate_h1(self) -> float: 35 return (1 - self.asset_threshold_cdf) * ( 36 self.success_probability * (self.w_duopoly - self.w_without_innovation) 37 - self.development_costs 38 ) 39 40 def _calculate_h2(self) -> float: 41 return 0 42 43 def _solve_game_strict_merger_policy(self) -> None: 44 assert self.merger_policy is Types.MergerPolicies.Strict 45 self._set_takeovers( 46 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 47 ) 48 49 def _solve_game_late_takeover_prohibited(self) -> None: 50 if ( 51 self.asset_threshold_cdf 52 < self.asset_distribution_threshold_unprofitable_without_late_takeover 53 ): 54 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 55 else: 56 self._set_takeovers( 57 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 58 ) 59 60 def _solve_game_late_takeover_allowed(self) -> None: 61 if ( 62 self.asset_threshold_late_takeover_cdf 63 < self.asset_distribution_threshold_with_late_takeover 64 ): 65 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 66 else: 67 if self.is_startup_credit_rationed: 68 self._set_takeovers( 69 early_takeover=Types.Takeover.No, 70 late_takeover=Types.Takeover.No, 71 ) 72 else: 73 if self.development_success: 74 self._set_takeovers(late_takeover=Types.Takeover.Pooling) 75 else: 76 self._set_takeovers( 77 early_takeover=Types.Takeover.No, 78 late_takeover=Types.Takeover.No, 79 ) 80 81 def is_strict_optimal(self) -> bool: 82 """ 83 In this model a strict merger policy is always optimal. 84 """ 85 return True 86 87 def is_intermediate_optimal(self) -> bool: 88 """ 89 In this model an intermediate merger policy is never optimal. 90 """ 91 return False 92 93 def is_laissez_faire_optimal(self) -> bool: 94 """ 95 In this model a laissez-faire merger policy is never optimal. 96 """ 97 return False
Relaxes the assumption (A4), that the innovation of the start-up is always welfare beneficial. Instead, the innovation is only welfare beneficial if the start-up develops and markets the innovation. In contrast, owned by the incumbent, the innovation reduces the total welfare. This is implying a pure positive effect of the innovation on competition.
14 def __init__(self, consumer_surplus_without_innovation: float = 0.3, **kwargs): 15 super(ProCompetitive, self).__init__( 16 consumer_surplus_without_innovation=consumer_surplus_without_innovation, 17 **kwargs 18 )
Takes the same arguments as Fumagalli_Motta_Tarantino_2020.Models.Base.CoreModel.__init__.
81 def is_strict_optimal(self) -> bool: 82 """ 83 In this model a strict merger policy is always optimal. 84 """ 85 return True
In this model a strict merger policy is always optimal.
87 def is_intermediate_optimal(self) -> bool: 88 """ 89 In this model an intermediate merger policy is never optimal. 90 """ 91 return False
In this model an intermediate merger policy is never optimal.
93 def is_laissez_faire_optimal(self) -> bool: 94 """ 95 In this model a laissez-faire merger policy is never optimal. 96 """ 97 return False
In this model a laissez-faire merger policy is never optimal.
Inherited Members
- Fumagalli_Motta_Tarantino_2020.Models.Base.OptimalMergerPolicy
- get_optimal_merger_policy
- is_competition_effect_dominating
- is_financial_imperfection_severe
- is_intermediate_policy_feasible
- asset_distribution_threshold_shelving_approved
- summary
- Fumagalli_Motta_Tarantino_2020.Models.Base.MergerPolicy
- merger_policy
- tolerated_harm
- asset_threshold
- asset_threshold_cdf
- asset_threshold_late_takeover
- asset_threshold_late_takeover_cdf
- startup_assets
- early_bidding_type
- late_bidding_type
- is_early_takeover
- is_late_takeover
- is_owner_investing
- is_development_successful
- is_startup_credit_rationed
- asset_distribution_threshold_welfare
- asset_distribution_threshold_profitable_without_late_takeover
- asset_distribution_threshold_with_late_takeover
- asset_distribution_threshold_unprofitable_without_late_takeover
- is_incumbent_expected_to_shelve
- incumbent_expected_additional_profit_from_innovation
- is_killer_acquisition
- Fumagalli_Motta_Tarantino_2020.Models.Base.CoreModel
- asset_distribution
- development_costs
- success_probability
- development_success
- private_benefit
- incumbent_profit_with_innovation
- cs_with_innovation
- w_with_innovation
- incumbent_profit_without_innovation
- cs_without_innovation
- w_without_innovation
- startup_profit_duopoly
- incumbent_profit_duopoly
- cs_duopoly
- w_duopoly
100class ResourceWaste(ProCompetitive): 101 """ 102 In this model is assumed, that the innovation is never welfare beneficial, therefore a development is always a waste 103 of resources regarding total welfare. 104 """ 105 106 def __init__(self, consumer_surplus_duopoly=0.41, **kwargs): 107 super(ResourceWaste, self).__init__( 108 consumer_surplus_duopoly=consumer_surplus_duopoly, **kwargs 109 ) 110 111 def _check_assumption_four(self): 112 assert ( 113 self._success_probability 114 * (self.w_with_innovation - self.w_without_innovation) 115 < self._success_probability * (self.w_duopoly - self.w_without_innovation) 116 < self.development_costs 117 ), "Adjusted assumption 4 in this model" 118 119 def _calculate_h1(self) -> float: 120 return 0 121 122 def _solve_game_strict_merger_policy(self) -> None: 123 assert self.merger_policy is Types.MergerPolicies.Strict 124 if ( 125 self.asset_threshold_cdf 126 < self.asset_distribution_threshold_unprofitable_without_late_takeover 127 ): 128 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 129 else: 130 self._set_takeovers( 131 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 132 ) 133 134 def is_strict_optimal(self) -> bool: 135 """ 136 In this model is a strict merger policy never optimal 137 """ 138 return False 139 140 def is_intermediate_optimal(self) -> bool: 141 """ 142 Returns whether the intermediate (WITHOUT late takeovers) merger policy is optimal. 143 144 The intermediate (WITHOUT late takeovers) merger is optimal, if a laissez-faire merger policy is not optimal. 145 146 Returns 147 ------- 148 True 149 If the intermediate (WITHOUT late takeovers) merger policy is optimal. 150 """ 151 return not self.is_laissez_faire_optimal() 152 153 @staticmethod 154 def _get_intermediate_optimal_candidate() -> Types.MergerPolicies: 155 return Types.MergerPolicies.Intermediate_late_takeover_prohibited 156 157 def is_laissez_faire_optimal(self) -> bool: 158 """ 159 Returns whether a laissez-faire policy is optimal. 160 161 A laissez-faire policy (that authorises any takeover) is optimal, if: 162 1. Financial imperfections are not severe ($F(\\bar{A}^T)<\\Phi^T(\\cdot)$). 163 164 Or as well if: 165 1. Financial imperfections are always severe ($F(\\bar{A}^T)\\ge\\Phi^T(\\cdot)$ and 166 $F(\\bar{A})\\ge\\Phi(\\cdot)$). 167 2. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 168 likely that the innovation is commercialised (Condition 6 not satisfied). 169 170 Returns 171 ------- 172 True 173 If a laissez-faire merger policy is optimal. 174 """ 175 return not self.is_financial_imperfection_severe() or ( 176 self.is_financial_imperfection_severe() 177 and self.is_financial_imperfection_severe_without_late_takeover() 178 and not self.is_competition_effect_dominating() 179 ) 180 181 def is_financial_imperfection_severe_without_late_takeover(self): 182 return ( 183 self.asset_threshold_cdf 184 > self.asset_distribution_threshold_unprofitable_without_late_takeover 185 )
In this model is assumed, that the innovation is never welfare beneficial, therefore a development is always a waste of resources regarding total welfare.
106 def __init__(self, consumer_surplus_duopoly=0.41, **kwargs): 107 super(ResourceWaste, self).__init__( 108 consumer_surplus_duopoly=consumer_surplus_duopoly, **kwargs 109 )
Takes the same arguments as Fumagalli_Motta_Tarantino_2020.Models.Base.CoreModel.__init__.
134 def is_strict_optimal(self) -> bool: 135 """ 136 In this model is a strict merger policy never optimal 137 """ 138 return False
In this model is a strict merger policy never optimal
140 def is_intermediate_optimal(self) -> bool: 141 """ 142 Returns whether the intermediate (WITHOUT late takeovers) merger policy is optimal. 143 144 The intermediate (WITHOUT late takeovers) merger is optimal, if a laissez-faire merger policy is not optimal. 145 146 Returns 147 ------- 148 True 149 If the intermediate (WITHOUT late takeovers) merger policy is optimal. 150 """ 151 return not self.is_laissez_faire_optimal()
Returns whether the intermediate (WITHOUT late takeovers) merger policy is optimal.
The intermediate (WITHOUT late takeovers) merger is optimal, if a laissez-faire merger policy is not optimal.
Returns
- True: If the intermediate (WITHOUT late takeovers) merger policy is optimal.
157 def is_laissez_faire_optimal(self) -> bool: 158 """ 159 Returns whether a laissez-faire policy is optimal. 160 161 A laissez-faire policy (that authorises any takeover) is optimal, if: 162 1. Financial imperfections are not severe ($F(\\bar{A}^T)<\\Phi^T(\\cdot)$). 163 164 Or as well if: 165 1. Financial imperfections are always severe ($F(\\bar{A}^T)\\ge\\Phi^T(\\cdot)$ and 166 $F(\\bar{A})\\ge\\Phi(\\cdot)$). 167 2. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 168 likely that the innovation is commercialised (Condition 6 not satisfied). 169 170 Returns 171 ------- 172 True 173 If a laissez-faire merger policy is optimal. 174 """ 175 return not self.is_financial_imperfection_severe() or ( 176 self.is_financial_imperfection_severe() 177 and self.is_financial_imperfection_severe_without_late_takeover() 178 and not self.is_competition_effect_dominating() 179 )
Returns whether a laissez-faire policy is optimal.
A laissez-faire policy (that authorises any takeover) is optimal, if:
- Financial imperfections are not severe ($F(\bar{A}^T)<\Phi^T(\cdot)$).
Or as well if:
- Financial imperfections are always severe ($F(\bar{A}^T)\ge\Phi^T(\cdot)$ and $F(\bar{A})\ge\Phi(\cdot)$).
- Detrimental effect of less intense product market competition is dominated by the benefit of making it more likely that the innovation is commercialised (Condition 6 not satisfied).
Returns
- True: If a laissez-faire merger policy is optimal.
Inherited Members
- Fumagalli_Motta_Tarantino_2020.Models.Base.OptimalMergerPolicy
- get_optimal_merger_policy
- is_competition_effect_dominating
- is_financial_imperfection_severe
- is_intermediate_policy_feasible
- asset_distribution_threshold_shelving_approved
- summary
- Fumagalli_Motta_Tarantino_2020.Models.Base.MergerPolicy
- merger_policy
- tolerated_harm
- asset_threshold
- asset_threshold_cdf
- asset_threshold_late_takeover
- asset_threshold_late_takeover_cdf
- startup_assets
- early_bidding_type
- late_bidding_type
- is_early_takeover
- is_late_takeover
- is_owner_investing
- is_development_successful
- is_startup_credit_rationed
- asset_distribution_threshold_welfare
- asset_distribution_threshold_profitable_without_late_takeover
- asset_distribution_threshold_with_late_takeover
- asset_distribution_threshold_unprofitable_without_late_takeover
- is_incumbent_expected_to_shelve
- incumbent_expected_additional_profit_from_innovation
- is_killer_acquisition
- Fumagalli_Motta_Tarantino_2020.Models.Base.CoreModel
- asset_distribution
- development_costs
- success_probability
- development_success
- private_benefit
- incumbent_profit_with_innovation
- cs_with_innovation
- w_with_innovation
- incumbent_profit_without_innovation
- cs_without_innovation
- w_without_innovation
- startup_profit_duopoly
- incumbent_profit_duopoly
- cs_duopoly
- w_duopoly