Fumagalli_Motta_Tarantino_2020.Models.BaseExtended
1import Fumagalli_Motta_Tarantino_2020.Models.Types as Types 2import Fumagalli_Motta_Tarantino_2020.Models.Exceptions as Exceptions 3import Fumagalli_Motta_Tarantino_2020.Models.Base as Base 4 5 6class CournotCompetition(Base.OptimalMergerPolicy): 7 """ 8 In this model is assumed that the product of the start-up is an imperfect substitute of the existing product of the 9 incumbent. The competition in the market is like a Cournot Competition. 10 11 See section 7 of Fumagalli et al. (2020). 12 """ 13 14 def __init__(self, gamma=0.3, *args, **kwargs): 15 """ 16 17 Parameters 18 ---------- 19 gamma:float 20 Degree of substitutability of the product of the start-up and the existing product of the incumbent 21 (between 0 and 1). 22 """ 23 assert 0 < gamma < 1, "Gamma has to be between 0 and 1." 24 self._gamma = gamma 25 super(CournotCompetition, self).__init__(*args, **kwargs) 26 assert ( 27 self.development_costs < self.success_probability / 4 28 ), "K >= p/4 is not valid" 29 self._calculate_cournot_payoffs() 30 31 def _calculate_cournot_payoffs(self): 32 self._incumbent_profit_without_innovation = 0.25 33 self._cs_without_innovation = 0.125 34 self._incumbent_profit_with_innovation = 1 / (2 + 2 * self.gamma) 35 self._cs_with_innovation = 1 / (4 + 4 * self.gamma) 36 self._incumbent_profit_duopoly = 1 / (2 + self.gamma) ** 2 37 self._startup_profit_duopoly = self._incumbent_profit_duopoly 38 self._cs_duopoly = (1 + self.gamma) / ((2 + self.gamma) ** 2) 39 40 def _check_assumption_one(self): 41 assert (self.gamma**2) / ( 42 ((2 + self.gamma) ** 2) * (2 + 2 * self.gamma) 43 ) > 0, "A1 adjusted for the micro foundation model." 44 45 def _check_assumption_two(self): 46 assert (self.gamma * (self.gamma**2 + 3 * self.gamma + 4)) / ( 47 ((2 + self.gamma) ** 2) * (4 + 4 * self.gamma) 48 ) > 0, "A2 adjusted for the micro foundation model." 49 50 def _check_assumption_three(self): 51 assert ( 52 self._gamma_assumption_three > self.gamma 53 ), "A3 adjusted for the micro foundation model." 54 55 def _check_assumption_four(self): 56 assert ( 57 self._gamma_assumption_four > self.gamma 58 ), "A4 adjusted for the micro foundation model." 59 60 def _check_assumption_five(self): 61 assert ( 62 self.success_probability / ((2 + self.gamma) ** 2) - self.development_costs 63 < self.private_benefit 64 < self.development_costs 65 ), "A5 adjusted for the micro foundation model." 66 67 @property 68 def gamma(self) -> float: 69 """ 70 Degree of substitutability of the product of the start-up and the existing product of the incumbent. 71 """ 72 return self._gamma 73 74 @property 75 def _gamma_assumption_three(self) -> float: 76 return ((self.success_probability / self.development_costs) ** (1 / 2)) - 2 77 78 @property 79 def _gamma_assumption_four(self) -> float: 80 return (3 * self.success_probability - 8 * self.development_costs) / ( 81 8 * self.development_costs + 3 * self.success_probability 82 ) 83 84 def is_laissez_faire_optimal(self) -> bool: 85 """ 86 In this model a laissez-faire merger policy is never optimal. 87 """ 88 return False 89 90 def is_intermediate_optimal(self) -> bool: 91 """ 92 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 93 94 An intermediate merger policy (late takeovers allowed) is optimal, if: 95 1. The investment is sufficiently large. 96 2. The degree of substitutability is moderate. 97 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 98 likely that the innovation is commercialised (Condition 6 not satisfied). 99 100 Returns 101 ------- 102 True 103 If an intermediate merger policy (late takeover allowed) is optimal. 104 """ 105 return ( 106 self.is_intermediate_policy_feasible() 107 and not self.is_competition_effect_dominating() 108 ) 109 110 def is_strict_optimal(self) -> bool: 111 return not self.is_intermediate_optimal() 112 113 def is_intermediate_policy_feasible(self) -> bool: 114 """ 115 Returns whether an intermediate (with late takeovers) merger policy is feasible. 116 117 This implies, that the investment costs are sufficiently high and the degree of substitutability is moderate. 118 119 Returns 120 ------- 121 True 122 If an intermediate policy is feasible. 123 """ 124 return ( 125 ( 126 -5 * (self.success_probability**3) 127 + 64 * (self.development_costs**3) * (3 + self.success_probability) 128 + 12 129 * self.development_costs 130 * (self.success_probability**2) 131 * (3 * self.success_probability - 1) 132 + 16 133 * (self.development_costs**2) 134 * self.success_probability 135 * (5 + 6 * self.success_probability) 136 ) 137 / ( 138 8 139 * self.success_probability 140 * ((4 * self.development_costs + 3 * self.success_probability) ** 2) 141 ) 142 ) > 0 143 144 145class PerfectInformation(Base.OptimalMergerPolicy): 146 """ 147 Assume the incumbent knows the realisation of the start-up’s resources when it bids at t = 1(a) and the AA also 148 knows it when it reviews the merger proposal. We maintain the assumption that, when it establishes the standard for 149 merger policy at t = 0, the AA only knows the distribution of A 150 151 See section 8.5 of Fumagalli et al. (2020). 152 """ 153 154 def _check_merger_policy(self): 155 super(PerfectInformation, self)._check_merger_policy() 156 if ( 157 self.merger_policy 158 is Types.MergerPolicies.Intermediate_late_takeover_prohibited 159 ): 160 raise Exceptions.MergerPolicyNotAvailable( 161 "This merger policy is not available in this model" 162 ) 163 164 def _solve_game_strict_merger_policy(self) -> None: 165 assert self.merger_policy is Types.MergerPolicies.Strict 166 if ( 167 self.is_startup_credit_rationed 168 and not self.is_incumbent_expected_to_shelve() 169 ): 170 self._set_takeovers(early_takeover=Types.Takeover.Separating) 171 else: 172 self._set_takeovers( 173 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 174 ) 175 176 def _solve_game_laissez_faire(self) -> None: 177 assert self.merger_policy is Types.MergerPolicies.Laissez_faire 178 if self.is_startup_credit_rationed and self.is_incumbent_expected_to_shelve(): 179 self._set_takeovers( 180 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 181 ) 182 else: 183 if self.is_startup_credit_rationed: 184 self._set_takeovers(early_takeover=Types.Takeover.Separating) 185 else: 186 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 187 188 def _solve_game_late_takeover_allowed(self) -> None: 189 assert ( 190 self.merger_policy 191 is Types.MergerPolicies.Intermediate_late_takeover_allowed 192 ) 193 if self.is_incumbent_expected_to_shelve(): 194 if self.is_startup_credit_rationed or not self.development_success: 195 self._set_takeovers( 196 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 197 ) 198 else: 199 self._set_takeovers(late_takeover=Types.Takeover.Pooling) 200 else: 201 if self.is_startup_credit_rationed: 202 self._set_takeovers(early_takeover=Types.Takeover.Separating) 203 else: 204 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 205 206 def is_laissez_faire_optimal(self) -> bool: 207 """ 208 In this model a laissez-faire merger policy is never optimal. 209 """ 210 return False 211 212 def is_intermediate_optimal(self) -> bool: 213 """ 214 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 215 216 An intermediate merger policy (late takeovers allowed) is optimal, if: 217 1. Incumbent is expected to shelve ($p(\\pi^M_I-\\pi^m_I) < K$). 218 2. The intermediate policy is feasible. 219 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 220 likely that the innovation is commercialised (Condition 6 not satisfied). 221 222 Returns 223 ------- 224 True 225 If an intermediate merger policy (late takeover allowed) is optimal. 226 """ 227 return ( 228 self.is_incumbent_expected_to_shelve() 229 and not self.is_competition_effect_dominating() 230 and self.is_intermediate_policy_feasible() 231 ) 232 233 def is_intermediate_policy_feasible(self) -> bool: 234 return ( 235 self.success_probability 236 * (self.w_with_innovation - self.w_without_innovation) 237 - self.development_costs 238 >= self.w_duopoly - self.w_with_innovation 239 ) 240 241 242class EquityContract(Base.OptimalMergerPolicy): 243 """ 244 Aan equity contract gives rise to different results in the financial contracting game. With equity, when the 245 incumbent acquires the start-up in $t = 2$, it pays the investors and the entrepreneur. Going backwards, the 246 investors do not expect an increase in the pledgeable income, and there is no relaxation of financial constraints, 247 as much as under the strict merger policy. It follows that under the laissez-faire or the intermediate policy the 248 start-up will prefer debt to equity. 249 250 See section 8.4 of Fumagalli et al. (2020). 251 """ 252 253 @property 254 def asset_threshold_late_takeover(self) -> float: 255 return self.asset_threshold 256 257 def does_startup_prefer_debt(self) -> bool: 258 """ 259 Returns whether the start-up prefers debt or equity. 260 261 The start-up prefers debt to equity, if late takeovers are allowed. 262 263 Returns 264 ------- 265 True 266 If the start-up prefers debt to equity. 267 """ 268 if self.merger_policy in [ 269 Types.MergerPolicies.Intermediate_late_takeover_allowed, 270 Types.MergerPolicies.Laissez_faire, 271 ]: 272 return True 273 return False 274 275 def is_intermediate_optimal(self) -> bool: 276 """ 277 In this model an intermediate merger policy is never optimal. 278 """ 279 return False 280 281 def is_laissez_faire_optimal(self) -> bool: 282 """ 283 In this model a laissez-faire merger policy is never optimal. 284 """ 285 return False
7class CournotCompetition(Base.OptimalMergerPolicy): 8 """ 9 In this model is assumed that the product of the start-up is an imperfect substitute of the existing product of the 10 incumbent. The competition in the market is like a Cournot Competition. 11 12 See section 7 of Fumagalli et al. (2020). 13 """ 14 15 def __init__(self, gamma=0.3, *args, **kwargs): 16 """ 17 18 Parameters 19 ---------- 20 gamma:float 21 Degree of substitutability of the product of the start-up and the existing product of the incumbent 22 (between 0 and 1). 23 """ 24 assert 0 < gamma < 1, "Gamma has to be between 0 and 1." 25 self._gamma = gamma 26 super(CournotCompetition, self).__init__(*args, **kwargs) 27 assert ( 28 self.development_costs < self.success_probability / 4 29 ), "K >= p/4 is not valid" 30 self._calculate_cournot_payoffs() 31 32 def _calculate_cournot_payoffs(self): 33 self._incumbent_profit_without_innovation = 0.25 34 self._cs_without_innovation = 0.125 35 self._incumbent_profit_with_innovation = 1 / (2 + 2 * self.gamma) 36 self._cs_with_innovation = 1 / (4 + 4 * self.gamma) 37 self._incumbent_profit_duopoly = 1 / (2 + self.gamma) ** 2 38 self._startup_profit_duopoly = self._incumbent_profit_duopoly 39 self._cs_duopoly = (1 + self.gamma) / ((2 + self.gamma) ** 2) 40 41 def _check_assumption_one(self): 42 assert (self.gamma**2) / ( 43 ((2 + self.gamma) ** 2) * (2 + 2 * self.gamma) 44 ) > 0, "A1 adjusted for the micro foundation model." 45 46 def _check_assumption_two(self): 47 assert (self.gamma * (self.gamma**2 + 3 * self.gamma + 4)) / ( 48 ((2 + self.gamma) ** 2) * (4 + 4 * self.gamma) 49 ) > 0, "A2 adjusted for the micro foundation model." 50 51 def _check_assumption_three(self): 52 assert ( 53 self._gamma_assumption_three > self.gamma 54 ), "A3 adjusted for the micro foundation model." 55 56 def _check_assumption_four(self): 57 assert ( 58 self._gamma_assumption_four > self.gamma 59 ), "A4 adjusted for the micro foundation model." 60 61 def _check_assumption_five(self): 62 assert ( 63 self.success_probability / ((2 + self.gamma) ** 2) - self.development_costs 64 < self.private_benefit 65 < self.development_costs 66 ), "A5 adjusted for the micro foundation model." 67 68 @property 69 def gamma(self) -> float: 70 """ 71 Degree of substitutability of the product of the start-up and the existing product of the incumbent. 72 """ 73 return self._gamma 74 75 @property 76 def _gamma_assumption_three(self) -> float: 77 return ((self.success_probability / self.development_costs) ** (1 / 2)) - 2 78 79 @property 80 def _gamma_assumption_four(self) -> float: 81 return (3 * self.success_probability - 8 * self.development_costs) / ( 82 8 * self.development_costs + 3 * self.success_probability 83 ) 84 85 def is_laissez_faire_optimal(self) -> bool: 86 """ 87 In this model a laissez-faire merger policy is never optimal. 88 """ 89 return False 90 91 def is_intermediate_optimal(self) -> bool: 92 """ 93 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 94 95 An intermediate merger policy (late takeovers allowed) is optimal, if: 96 1. The investment is sufficiently large. 97 2. The degree of substitutability is moderate. 98 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 99 likely that the innovation is commercialised (Condition 6 not satisfied). 100 101 Returns 102 ------- 103 True 104 If an intermediate merger policy (late takeover allowed) is optimal. 105 """ 106 return ( 107 self.is_intermediate_policy_feasible() 108 and not self.is_competition_effect_dominating() 109 ) 110 111 def is_strict_optimal(self) -> bool: 112 return not self.is_intermediate_optimal() 113 114 def is_intermediate_policy_feasible(self) -> bool: 115 """ 116 Returns whether an intermediate (with late takeovers) merger policy is feasible. 117 118 This implies, that the investment costs are sufficiently high and the degree of substitutability is moderate. 119 120 Returns 121 ------- 122 True 123 If an intermediate policy is feasible. 124 """ 125 return ( 126 ( 127 -5 * (self.success_probability**3) 128 + 64 * (self.development_costs**3) * (3 + self.success_probability) 129 + 12 130 * self.development_costs 131 * (self.success_probability**2) 132 * (3 * self.success_probability - 1) 133 + 16 134 * (self.development_costs**2) 135 * self.success_probability 136 * (5 + 6 * self.success_probability) 137 ) 138 / ( 139 8 140 * self.success_probability 141 * ((4 * self.development_costs + 3 * self.success_probability) ** 2) 142 ) 143 ) > 0
In this model is assumed that the product of the start-up is an imperfect substitute of the existing product of the incumbent. The competition in the market is like a Cournot Competition.
See section 7 of Fumagalli et al. (2020).
15 def __init__(self, gamma=0.3, *args, **kwargs): 16 """ 17 18 Parameters 19 ---------- 20 gamma:float 21 Degree of substitutability of the product of the start-up and the existing product of the incumbent 22 (between 0 and 1). 23 """ 24 assert 0 < gamma < 1, "Gamma has to be between 0 and 1." 25 self._gamma = gamma 26 super(CournotCompetition, self).__init__(*args, **kwargs) 27 assert ( 28 self.development_costs < self.success_probability / 4 29 ), "K >= p/4 is not valid" 30 self._calculate_cournot_payoffs()
Parameters
- gamma (float): Degree of substitutability of the product of the start-up and the existing product of the incumbent (between 0 and 1).
68 @property 69 def gamma(self) -> float: 70 """ 71 Degree of substitutability of the product of the start-up and the existing product of the incumbent. 72 """ 73 return self._gamma
Degree of substitutability of the product of the start-up and the existing product of the incumbent.
85 def is_laissez_faire_optimal(self) -> bool: 86 """ 87 In this model a laissez-faire merger policy is never optimal. 88 """ 89 return False
In this model a laissez-faire merger policy is never optimal.
91 def is_intermediate_optimal(self) -> bool: 92 """ 93 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 94 95 An intermediate merger policy (late takeovers allowed) is optimal, if: 96 1. The investment is sufficiently large. 97 2. The degree of substitutability is moderate. 98 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 99 likely that the innovation is commercialised (Condition 6 not satisfied). 100 101 Returns 102 ------- 103 True 104 If an intermediate merger policy (late takeover allowed) is optimal. 105 """ 106 return ( 107 self.is_intermediate_policy_feasible() 108 and not self.is_competition_effect_dominating() 109 )
Returns whether an intermediate merger policy (late takeover allowed) is optimal.
An intermediate merger policy (late takeovers allowed) is optimal, if:
- The investment is sufficiently large.
- The degree of substitutability is moderate.
- 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 an intermediate merger policy (late takeover allowed) is optimal.
Returns whether the strict merger policy is optimal.
The strict merger is optimal, if the other policies are not optimal.
Returns
- True: If the strict merger policy is optimal.
114 def is_intermediate_policy_feasible(self) -> bool: 115 """ 116 Returns whether an intermediate (with late takeovers) merger policy is feasible. 117 118 This implies, that the investment costs are sufficiently high and the degree of substitutability is moderate. 119 120 Returns 121 ------- 122 True 123 If an intermediate policy is feasible. 124 """ 125 return ( 126 ( 127 -5 * (self.success_probability**3) 128 + 64 * (self.development_costs**3) * (3 + self.success_probability) 129 + 12 130 * self.development_costs 131 * (self.success_probability**2) 132 * (3 * self.success_probability - 1) 133 + 16 134 * (self.development_costs**2) 135 * self.success_probability 136 * (5 + 6 * self.success_probability) 137 ) 138 / ( 139 8 140 * self.success_probability 141 * ((4 * self.development_costs + 3 * self.success_probability) ** 2) 142 ) 143 ) > 0
Returns whether an intermediate (with late takeovers) merger policy is feasible.
This implies, that the investment costs are sufficiently high and the degree of substitutability is moderate.
Returns
- True: If an intermediate policy is feasible.
Inherited Members
- Fumagalli_Motta_Tarantino_2020.Models.Base.OptimalMergerPolicy
- get_optimal_merger_policy
- is_competition_effect_dominating
- is_financial_imperfection_severe
- 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
146class PerfectInformation(Base.OptimalMergerPolicy): 147 """ 148 Assume the incumbent knows the realisation of the start-up’s resources when it bids at t = 1(a) and the AA also 149 knows it when it reviews the merger proposal. We maintain the assumption that, when it establishes the standard for 150 merger policy at t = 0, the AA only knows the distribution of A 151 152 See section 8.5 of Fumagalli et al. (2020). 153 """ 154 155 def _check_merger_policy(self): 156 super(PerfectInformation, self)._check_merger_policy() 157 if ( 158 self.merger_policy 159 is Types.MergerPolicies.Intermediate_late_takeover_prohibited 160 ): 161 raise Exceptions.MergerPolicyNotAvailable( 162 "This merger policy is not available in this model" 163 ) 164 165 def _solve_game_strict_merger_policy(self) -> None: 166 assert self.merger_policy is Types.MergerPolicies.Strict 167 if ( 168 self.is_startup_credit_rationed 169 and not self.is_incumbent_expected_to_shelve() 170 ): 171 self._set_takeovers(early_takeover=Types.Takeover.Separating) 172 else: 173 self._set_takeovers( 174 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 175 ) 176 177 def _solve_game_laissez_faire(self) -> None: 178 assert self.merger_policy is Types.MergerPolicies.Laissez_faire 179 if self.is_startup_credit_rationed and self.is_incumbent_expected_to_shelve(): 180 self._set_takeovers( 181 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 182 ) 183 else: 184 if self.is_startup_credit_rationed: 185 self._set_takeovers(early_takeover=Types.Takeover.Separating) 186 else: 187 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 188 189 def _solve_game_late_takeover_allowed(self) -> None: 190 assert ( 191 self.merger_policy 192 is Types.MergerPolicies.Intermediate_late_takeover_allowed 193 ) 194 if self.is_incumbent_expected_to_shelve(): 195 if self.is_startup_credit_rationed or not self.development_success: 196 self._set_takeovers( 197 early_takeover=Types.Takeover.No, late_takeover=Types.Takeover.No 198 ) 199 else: 200 self._set_takeovers(late_takeover=Types.Takeover.Pooling) 201 else: 202 if self.is_startup_credit_rationed: 203 self._set_takeovers(early_takeover=Types.Takeover.Separating) 204 else: 205 self._set_takeovers(early_takeover=Types.Takeover.Pooling) 206 207 def is_laissez_faire_optimal(self) -> bool: 208 """ 209 In this model a laissez-faire merger policy is never optimal. 210 """ 211 return False 212 213 def is_intermediate_optimal(self) -> bool: 214 """ 215 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 216 217 An intermediate merger policy (late takeovers allowed) is optimal, if: 218 1. Incumbent is expected to shelve ($p(\\pi^M_I-\\pi^m_I) < K$). 219 2. The intermediate policy is feasible. 220 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 221 likely that the innovation is commercialised (Condition 6 not satisfied). 222 223 Returns 224 ------- 225 True 226 If an intermediate merger policy (late takeover allowed) is optimal. 227 """ 228 return ( 229 self.is_incumbent_expected_to_shelve() 230 and not self.is_competition_effect_dominating() 231 and self.is_intermediate_policy_feasible() 232 ) 233 234 def is_intermediate_policy_feasible(self) -> bool: 235 return ( 236 self.success_probability 237 * (self.w_with_innovation - self.w_without_innovation) 238 - self.development_costs 239 >= self.w_duopoly - self.w_with_innovation 240 )
Assume the incumbent knows the realisation of the start-up’s resources when it bids at t = 1(a) and the AA also knows it when it reviews the merger proposal. We maintain the assumption that, when it establishes the standard for merger policy at t = 0, the AA only knows the distribution of A
See section 8.5 of Fumagalli et al. (2020).
207 def is_laissez_faire_optimal(self) -> bool: 208 """ 209 In this model a laissez-faire merger policy is never optimal. 210 """ 211 return False
In this model a laissez-faire merger policy is never optimal.
213 def is_intermediate_optimal(self) -> bool: 214 """ 215 Returns whether an intermediate merger policy (late takeover allowed) is optimal. 216 217 An intermediate merger policy (late takeovers allowed) is optimal, if: 218 1. Incumbent is expected to shelve ($p(\\pi^M_I-\\pi^m_I) < K$). 219 2. The intermediate policy is feasible. 220 3. Detrimental effect of less intense product market competition is dominated by the benefit of making it more 221 likely that the innovation is commercialised (Condition 6 not satisfied). 222 223 Returns 224 ------- 225 True 226 If an intermediate merger policy (late takeover allowed) is optimal. 227 """ 228 return ( 229 self.is_incumbent_expected_to_shelve() 230 and not self.is_competition_effect_dominating() 231 and self.is_intermediate_policy_feasible() 232 )
Returns whether an intermediate merger policy (late takeover allowed) is optimal.
An intermediate merger policy (late takeovers allowed) is optimal, if:
- Incumbent is expected to shelve ($p(\pi^M_I-\pi^m_I) < K$).
- The intermediate policy is feasible.
- 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 an intermediate merger policy (late takeover allowed) is optimal.
234 def is_intermediate_policy_feasible(self) -> bool: 235 return ( 236 self.success_probability 237 * (self.w_with_innovation - self.w_without_innovation) 238 - self.development_costs 239 >= self.w_duopoly - self.w_with_innovation 240 )
Returns whether an intermediate (with late takeovers) merger policy is feasible.
An intermediate policy, which authorizes late takeovers, is feasible if condition 5 is not satisfied.
Returns
- True: If an intermediate policy is feasible.
Inherited Members
- Fumagalli_Motta_Tarantino_2020.Models.Base.OptimalMergerPolicy
- OptimalMergerPolicy
- get_optimal_merger_policy
- is_strict_optimal
- is_competition_effect_dominating
- is_financial_imperfection_severe
- 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
243class EquityContract(Base.OptimalMergerPolicy): 244 """ 245 Aan equity contract gives rise to different results in the financial contracting game. With equity, when the 246 incumbent acquires the start-up in $t = 2$, it pays the investors and the entrepreneur. Going backwards, the 247 investors do not expect an increase in the pledgeable income, and there is no relaxation of financial constraints, 248 as much as under the strict merger policy. It follows that under the laissez-faire or the intermediate policy the 249 start-up will prefer debt to equity. 250 251 See section 8.4 of Fumagalli et al. (2020). 252 """ 253 254 @property 255 def asset_threshold_late_takeover(self) -> float: 256 return self.asset_threshold 257 258 def does_startup_prefer_debt(self) -> bool: 259 """ 260 Returns whether the start-up prefers debt or equity. 261 262 The start-up prefers debt to equity, if late takeovers are allowed. 263 264 Returns 265 ------- 266 True 267 If the start-up prefers debt to equity. 268 """ 269 if self.merger_policy in [ 270 Types.MergerPolicies.Intermediate_late_takeover_allowed, 271 Types.MergerPolicies.Laissez_faire, 272 ]: 273 return True 274 return False 275 276 def is_intermediate_optimal(self) -> bool: 277 """ 278 In this model an intermediate merger policy is never optimal. 279 """ 280 return False 281 282 def is_laissez_faire_optimal(self) -> bool: 283 """ 284 In this model a laissez-faire merger policy is never optimal. 285 """ 286 return False
Aan equity contract gives rise to different results in the financial contracting game. With equity, when the incumbent acquires the start-up in $t = 2$, it pays the investors and the entrepreneur. Going backwards, the investors do not expect an increase in the pledgeable income, and there is no relaxation of financial constraints, as much as under the strict merger policy. It follows that under the laissez-faire or the intermediate policy the start-up will prefer debt to equity.
See section 8.4 of Fumagalli et al. (2020).
The prospect that the start-up will be acquired at $t = 2$ alleviates financial constraints: there exists a threshold level $\bar{A}^T = B - (\pi_I^M - K)$
258 def does_startup_prefer_debt(self) -> bool: 259 """ 260 Returns whether the start-up prefers debt or equity. 261 262 The start-up prefers debt to equity, if late takeovers are allowed. 263 264 Returns 265 ------- 266 True 267 If the start-up prefers debt to equity. 268 """ 269 if self.merger_policy in [ 270 Types.MergerPolicies.Intermediate_late_takeover_allowed, 271 Types.MergerPolicies.Laissez_faire, 272 ]: 273 return True 274 return False
Returns whether the start-up prefers debt or equity.
The start-up prefers debt to equity, if late takeovers are allowed.
Returns
- True: If the start-up prefers debt to equity.
276 def is_intermediate_optimal(self) -> bool: 277 """ 278 In this model an intermediate merger policy is never optimal. 279 """ 280 return False
In this model an intermediate merger policy is never optimal.
282 def is_laissez_faire_optimal(self) -> bool: 283 """ 284 In this model a laissez-faire merger policy is never optimal. 285 """ 286 return False
In this model a laissez-faire merger policy is never optimal.
Inherited Members
- Fumagalli_Motta_Tarantino_2020.Models.Base.OptimalMergerPolicy
- OptimalMergerPolicy
- get_optimal_merger_policy
- is_strict_optimal
- 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_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