inventoryImpactPotential function
strike_exposure::inventory_impact_potential_for_liability — the
book-level potential phi(L): marginal rate rising linearly to
inventory_impact_max_rate over the scale B, flat at the cap above it.
Trades are charged the DIFFERENCE of two evaluations, which is what makes
inventory cycles telescope to zero.
Implementation
BigInt inventoryImpactPotential(FeePolicy policy, BigInt liability) {
_assertFeePolicy(policy);
_assertUint(liability, 'liability');
if (policy.inventoryImpactMaxRate == BigInt.zero ||
liability == BigInt.zero) {
return BigInt.zero;
}
final scale = policy.inventoryImpactScale;
final capped = _min(liability, scale);
final utilization = _mulDivDown(capped, FLOAT_SCALING, scale);
final marginalRate = _mulDown(policy.inventoryImpactMaxRate, utilization);
final potentialAtCapped = _mulDown(marginalRate, capped) ~/ BigInt.two;
if (liability <= scale) return potentialAtCapped;
return potentialAtCapped +
_mulDown(policy.inventoryImpactMaxRate, liability - scale);
}