Tutorials › Exam FM - Financial Mathematics › Transaction Costs And No-Arbitrage Parity Bands

Exam FM · Put-Call Parity and Arbitrage · Tutorial 829 of 998

Transaction Costs And No-Arbitrage Parity Bands

Learn to calculate transaction-cost parity bounds and identify when an observed call quote permits an executable arbitrage.

Advanced 12 min read

What You'll Learn

  • Model bid and ask quotes with proportional purchase and sale fees
  • Derive lower and upper call-price bounds from executable parity portfolios
  • Identify the trade direction associated with a bound violation
  • Calculate an arbitrage credit after all transaction costs
  • Recognize when parity bounds must be combined with other option-price constraints

Why Parity Becomes a Range

In a frictionless market, put-call parity gives an equality between the price of a European call and the cost of a portfolio with the same expiration payoff. In an actual market, buying and selling may occur at different quotes, and each transaction may incur a fee. The cost of buying the replicating portfolio can therefore differ from the proceeds available when selling it. Instead of one parity price, there is a no-arbitrage band: call prices within the band do not create an arbitrage through these parity trades alone.

The analysis below concerns one share and one option, with matching strike and expiration. It uses the standard parity relationship for European options on a non-dividend-paying share. The discount factor \(D\) is the time-zero price of a unit payment at expiration, so a bond paying \(K\) at expiration costs \(KD\). Assume that this bond can be bought or sold at that price without transaction costs, that the same financing rate applies to borrowing and lending, and that all stated fees are proportional to the transaction amount. These assumptions isolate the effects of bid-ask spreads and trading fees; the resulting band is aligned with the SOA Exam FM (Financial Mathematics) syllabus.

Definition: Let \(S_b,S_a\) be the share’s bid and ask quotes, and let \(P_b,P_a\) be the put’s bid and ask quotes. A buyer pays the ask plus the purchase fee; a seller receives the bid less the sale fee. Write \(\alpha_S^b,\alpha_S^s\) for the share’s buy and sell fee rates, and \(\alpha_P^b,\alpha_P^s\) for the put’s. If the call has a single reference quote \(c\), write \(\alpha_C^b,\alpha_C^s\) for its buy and sell fee rates. A fee rate is applied to the quoted transaction amount.

For example, buying a share at ask \(S_a\) with a purchase fee \(\alpha_S^b\) costs \(S_a(1+\alpha_S^b)\). Selling at bid \(S_b\) with a sale fee \(\alpha_S^s\) yields \(S_b(1-\alpha_S^s)\). The two amounts need not be equal, even when the fee rates are the same, because the bid and ask quotes may differ.

Deriving the Parity Band

At expiration, the payoff of a long call equals the payoff of a long share plus a long put, less a bond payment of \(K\). Indeed, for share price \(S_T\), the right-hand payoff is \(S_T+(K-S_T)^+-K=(S_T-K)^+\). At time zero, the corresponding frictionless parity equation is \(C+KD=P+S\). With trading costs, compare the executable costs and proceeds of the two sides rather than equating mid-market quotes.

1
Find the lower bound.
Compare buying the call with selling the put and share while buying the bond. The short put and short share use their bid quotes and generate net proceeds; the long call uses its purchase cost.
2
Find the upper bound.
Compare selling the call with buying the put and share while borrowing the bond’s time-zero value. The long put and share use their ask quotes; the short call generates net proceeds.
3
Check the band.
A call quote below the lower bound or above the upper bound permits a zero-expiration-payoff parity trade with a positive initial credit, under the stated assumptions.

For the lower-bound trade, selling the put and share yields \(P_b(1-\alpha_P^s)+S_b(1-\alpha_S^s)\). Buying the bond costs \(KD\), and buying the call costs \(c(1+\alpha_C^b)\). If the proceeds exceed those costs, the initial credit is positive while the expiration payoff is zero. Avoiding that arbitrage requires the proceeds not to exceed the costs:

$$ P_b(1-\alpha_P^s)+S_b(1-\alpha_S^s)-KD \leq c(1+\alpha_C^b). $$

For the upper bound, sell the call and use the proceeds to buy the put and share, with the remaining amount financed by borrowing \(KD\) at time zero. If the net proceeds from selling the call exceed the cost of buying the put and share less the bond financing, the trade has a positive initial credit and zero expiration payoff. Therefore:

$$ c(1-\alpha_C^s) \leq P_a(1+\alpha_P^b)+S_a(1+\alpha_S^b)-KD. $$
Theorem: Provided the fee rates are nonnegative and less than 1, the parity-implied call-price band is $$ \frac{P_b(1-\alpha_P^s)+S_b(1-\alpha_S^s)-KD}{1+\alpha_C^b} \leq c \leq \frac{P_a(1+\alpha_P^b)+S_a(1+\alpha_S^b)-KD}{1-\alpha_C^s}. $$ The lower bound uses sale proceeds for the put and share and the purchase cost for the call. The upper bound uses purchase costs for the put and share and sale proceeds for the call.

If the calculated lower bound is negative, nonnegativity of a call price supplies the additional constraint \(c\geq 0\). These are parity-arbitrage bounds, not necessarily every no-arbitrage restriction on an option. Other option bounds or market conditions may further narrow the range. If the lower bound exceeds the upper bound, the inputs do not produce a feasible parity band under this model; check the quotes, fee conventions, and assumptions.

Worked Applications

Worked Example: Calculate a Band with Different Share and Option Fees

A non-dividend-paying share has bid \(S_b=\$54.80\) and ask \(S_a=\$55.20\). A European put with strike \(K=\$55\) has bid \(P_b=\$5.10\) and ask \(P_a=\$5.40\). The expiration discount factor is \(D=0.96\). Share transactions have a 0.5% fee on either side, put transactions have a 1% fee on either side, and call transactions have a 0.75% fee on either side. Find the parity band for the call.

Method. Use the lower-bound formula with bid-side sale proceeds and the upper-bound formula with ask-side purchase costs. First, the bond cost is \(KD=55(0.96)=\$52.80\).

For the lower bound, selling the put nets \(5.10(1-0.01)=\$5.049\), and selling the share nets \(54.80(1-0.005)=\$54.526\). Their combined proceeds after buying the bond are \(5.049+54.526-52.80=\$6.775\). The call purchase fee makes the cost of buying the call \(1.0075c\), so:

$$ c \geq \frac{6.775}{1.0075} =6.724565\ldots $$

For the upper bound, buying the put costs \(5.40(1+0.01)=\$5.454\), and buying the share costs \(55.20(1+0.005)=\$55.476\). After subtracting the bond value, the net amount is \(5.454+55.476-52.80=\$8.130\). Selling the call yields \(0.9925c\), so:

$$ c \leq \frac{8.130}{0.9925} =8.191436\ldots $$

Rounded to the nearest cent, the parity band is \$6.72 to \$8.19 per share. The common mistake avoided here is using ask-side costs to calculate the lower bound: the lower-bound arbitrage sells the put and share, so their executable bid-side proceeds are required.

Worked Example: Test an Above-Band Call Quote

A share has bid \(S_b=\$79.60\) and ask \(S_a=\$80.20\). A matching put has bid \(P_b=\$4.80\) and ask \(P_a=\$5.10\), and the strike is \(K=\$80\). Let \(D=0.95\). The share fee is 0.75%, the put fee is 1.25%, and the call fee is 1%, with each fee applying to both purchases and sales. A call’s reference quote is \(c=\$10.25\). Determine whether this quote permits a parity arbitrage and calculate the initial credit.

Method. Calculate the upper bound first, because an above-band quote would make selling the call attractive. The bond costs \(KD=80(0.95)=\$76.00\). Buying the put costs \(5.10(1.0125)=\$5.16375\), and buying the share costs \(80.20(1.0075)=\$80.80150\). Thus the cost of the long put-and-share position, less the bond value, is \(5.16375+80.80150-76.00=\$9.96525\).

Selling the call at the reference quote yields \(10.25(0.99)=\$10.14750\). The upper bound is \(9.96525/0.99=\$10.065909\ldots\), so the quote of \$10.25 is above the bound. The trade is to sell the call, buy the put and share, and borrow \(KD=\$76.00\).

The initial credit is the call-sale proceeds less the net cost of the other positions:

$$ 10.14750-(5.16375+80.80150-76.00) =10.14750-9.96525 =\$0.18225. $$

The expiration payoff is zero because the purchased put and share, less the bond repayment, replicate the call that was sold. The initial credit is approximately \$0.18 per share to the nearest cent. The mistake avoided is treating the call’s quoted price as the sale proceeds; the 1% sale fee reduces those proceeds.

Worked Example: Use Different Fees for Buys and Sells

A share has bid \(S_b=\$120\) and ask \(S_a=\$121\); a European put has bid \(P_b=\$9.00\) and ask \(P_a=\$9.40\). The strike is \(K=\$125\), and \(D=0.96\). Share fees are 0.4% on sales and 0.6% on purchases; put fees are 1% on sales and 1.5% on purchases; call fees are 0.8% on sales and 1.2% on purchases. Find the parity band and assess a call quote of \(c=\$8.00\).

Method. Keep the buy and sell fee rates separate. The bond value is \(KD=125(0.96)=\$120\). For the lower bound, selling the put nets \(9(0.99)=\$8.91\), and selling the share nets \(120(0.996)=\$119.52\). After buying the bond, the remaining proceeds are \(8.91+119.52-120=\$8.43\). The call purchase costs \(1.012c\), giving:

$$ c \geq \frac{8.43}{1.012} =8.330040\ldots $$

For the upper bound, buying the put costs \(9.40(1.015)=\$9.541\), and buying the share costs \(121(1.006)=\$121.726\). Subtracting the bond value gives \(9.541+121.726-120=\$11.267\). A call sale nets \(0.992c\), so:

$$ c \leq \frac{11.267}{0.992} =11.357863\ldots $$

The band is \$8.33 to \$11.36 per share, rounded to the nearest cent. Since the call quote is below the lower bound, buy the call, sell the put and share, and buy the bond. The sale proceeds from the put and share are \(8.91+119.52=\$128.43\); the call costs \(8(1.012)=\$8.096\), and the bond costs \$120. The initial credit is \(128.43-8.096-120=\$0.334\), or \$0.33 per share to the nearest cent. The expiration payoff is zero by parity. The calculation avoids the error of applying the purchase fee rates to short sales.

Reading the Bounds Correctly

A reliable way to choose quotes and fee factors is to start with the trade direction, not with the algebra. A position that buys an asset pays its ask and purchase fee. A position that sells an asset receives its bid less the sale fee. Then write the initial net cash flow and use the zero expiration payoff to decide whether a positive initial credit is possible.

For example, the lower-bound trade is long the call, short the put, short the share, and long the bond. If the lower-bound inequality fails, the short put and share produce more than the call and bond cost. The upper-bound trade is short the call, long the put, long the share, and short the bond. If the upper-bound inequality fails, the call sale produces more than the put-and-share purchase requires after bond financing. In both cases, the key is that the long and short positions use different executable sides of the market.

Common exam trap: Suppose the share bid is \$79.60, the share ask is \$80.20, the put bid is \$4.80, the put ask is \$5.10, \(K=\$80\), and \(D=0.95\), with the fees from the second worked example. A tempting but incorrect lower-bound calculation uses the ask-side purchase costs: $$ \frac{5.10(1.0125)+80.20(1.0075)-76}{1.01} =\frac{9.96525}{1.01} \approx \$9.87. $$ Those are not the cash flows of the lower-bound trade. That trade sells the put and share, so it must use their bids and sale fees. The correct lower bound is $$ \frac{4.80(0.9875)+79.60(0.9925)-76}{1.01} =\frac{7.743}{1.01} \approx \$7.67. $$ The ask-side figures belong in the upper-bound calculation, which gives approximately \$10.07, not in the lower-bound calculation.

Transaction costs do not change the expiration-payoff identity; they change what it costs to establish each side of the identity. This is why a market call quote can differ from the frictionless parity value without creating an executable arbitrage. The band is also conditional on matching strikes and expirations, the assumed dividend treatment, and the specified financing and fee model. If any of those inputs changes, the parity comparison must be adjusted before interpreting a quote.

Check Your Understanding

For each question, use the stated fee model and round dollar answers to the nearest cent unless otherwise indicated.

  1. A share and put both have bid and ask quotes of \$60 and \$7, respectively. The strike is \$60, \(D=0.95\), and there are no fees. What call price does parity require? (Answer: \$10.00.)
  2. A share has bid \$32.00 and ask \$32.20. A put has bid \$2.40 and ask \$2.60. The strike is \$32, \(D=0.97\), and the share, put, and call fee rates are 0.5%, 1%, and 1%, respectively, on both buys and sells. Find the parity band. (Answer: \$3.14 to \$3.99.)
  3. Use the data in Question 2, but suppose the call quote is \$3.00. Which parity positions should be traded, and what is the initial credit per share? (Answer: Buy the call and bond, sell the put and share; credit \$0.146 per share, or \$0.15 to the nearest cent.)
  4. A share has bid \$101 and ask \$102; a put has bid \$8 and ask \$8.50. Let \(K=\$100\), \(D=0.98\), share fees be 1% on both sides, put fees be 2% on both sides, and call fees be 1.5% on both sides. Calculate the lower and upper parity bounds. (Answer: \$9.68 to \$13.90.)
  5. Use the data in Question 4, but let the call quote be \$14.00. Identify the arbitrage direction and calculate the initial credit per share. (Answer: Sell the call, buy the put and share, and borrow \(KD\); credit \$0.10 per share.)
Clinical Biostats