Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Box Spread Options and Implied Loan Rate Explained

Box spread na synthetic zero coupon loan from four options. See how payoff lock to strike width and how to calculate the implied loan rate.

A box spread na four option contracts wey dey work together like zero coupon loan: fixed cash dey change hand today, and another fixed amount — the distance between the two strikes — dey change hand when option expire. Where the underlying finish no get effect on that final payout. The only thing wey price of box spread still dey determine na interest rate wey dey inside am.

Wetin be box spread?

Box spread dey use two strike prices and one expiration date for one underlying. Make we call the lower strike K1 and the higher strike K2. Long box get four legs:

  • long one call for K1
  • short one call for K2
  • long one put for K2
  • short one put for K1

The first two legs form bull call spread. The last two form bear put spread. To buy both together costs net debit, meaning cash go comot from the account today. Every listed US equity option covers 100 shares, so box wey strikes dey ten points apart go settle for $1,000 per contract.

To sell those same four legs na short box. E pay net credit today, and the trader go owe the strike width when option expire.

Why box spread dey pay strike width when option expire

Divide the final price into three regions. Below K1, both calls expire worthless and put spread worth the full width. Above K2, both puts expire worthless and call spread worth the full width. Between the strikes, long call for K1 worth the distance wey price don move above K1, while long put for K2 worth the distance wey price dey below K2. Those two distances add up to the width.

The panel below take every $5 price level wey SPY close at during June 2026 and calculate the value of both spreads for that level. The strikes dey five points above and below the average close for the month.

QueryValue of a ten point box for every level wey SPY close at for June 2026
The exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York'))   AS d,
            toFloat64(argMax(close, window_start))                 AS spy_close
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-06-01 00:00:00'
          AND window_start <  '2026-07-01 00:00:00'
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
        GROUP BY d
    ),
    strikes AS
    (
        SELECT
            round(avg(spy_close) / 5) * 5 - 5 AS lower_strike,
            round(avg(spy_close) / 5) * 5 + 5 AS upper_strike
        FROM daily
    ),
    levels AS
    (
        SELECT DISTINCT round(spy_close / 5) * 5 AS settle
        FROM daily
    )
SELECT
    concat('$', toString(toUInt32(settle)))                                                AS settle_level,
    concat('$', toString(toUInt32(lower_strike)), ' / $', toString(toUInt32(upper_strike))) AS box_strikes,
    round(greatest(settle - lower_strike, 0) - greatest(settle - upper_strike, 0), 2)      AS call_leg_value,
    round(greatest(upper_strike - settle, 0) - greatest(lower_strike - settle, 0), 2)      AS put_leg_value,
    round(greatest(settle - lower_strike, 0) - greatest(settle - upper_strike, 0)
        + greatest(upper_strike - settle, 0) - greatest(lower_strike - settle, 0), 2)      AS box_value
FROM levels
CROSS JOIN strikes
ORDER BY settle
Run this yourself

The call_leg_value and put_leg_value columns dey trade off against each other at every level. The box_value column no dey move: 10 for the lowest level wey SPY reach and 10 for the highest, on the $740 / $750 strikes. That constant na the whole structure. The formal statement of the same identity na put call parity, wey fix the relationship between call and put wey share one strike. Box spread apply parity at two strikes and take the difference.

How to calculate implied loan rate on box spread

Two numbers set the rate: net debit wey trader pay today, and strike width wey trader collect when option expire. Take hypothetical ten point box wey get 200 days left and quoted at net debit of $9.70. Per contract, $970 go comot today and $1,000 go come back at expiration. That na $30 gain.

Divide the gain by the amount wey trader advance, then scale am to one year. Thirty dollars on $970 na 3.09 percent over 200 days, and 3.09 percent multiplied by 365 divided by 200 come to roughly 5.6 percent per year. If you compound instead of scaling, you raise 1000 over 970 to the power of 365 over 200, and you get about 5.7 percent. Both methods answer one question: wetin be the rate wey this price imply?

Long box dey lend money or borrow money?

Long box na lending. Cash go comot from the account today, bigger fixed amount go enter when option expire, and the difference na interest wey trader earn.

Short box na borrowing. Credit go enter today, strike width go due when option expire, and the same calculation go show the rate wey trader pay instead of the rate wey trader earn. People often talk about this direction backwards. Follow the cash: money wey trader receive today against fixed repayment later na loan wey trader take, while money wey trader pay today against fixed receipt later na loan wey trader give.

Box spread get delta?

Delta measure how much option price move when underlying move one dollar. Each of the four legs of box get large delta of its own, but dem cancel each other. The panel below show the greeks for SPY contracts wey expire December 18, 2026, as dem be on June 1, 2026. E fix K1 at the strike nearest to spot and widen K2 upward.

QueryNet delta of a SPY box as the upper strike dey widen (June 1, 2026)
The exact SQL behind every number
WITH
    chain AS
    (
        SELECT
            toFloat64(strike_price)           AS strike,
            avg(toFloat64(underlying_close))  AS spot,
            round(avgIf(delta, delta > 0), 4) AS call_delta,
            round(avgIf(delta, delta < 0), 4) AS put_delta
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date = '2026-06-01'
          AND expiration_date = '2026-12-18'
          AND iv_converged = 1
          AND volume > 0
        GROUP BY strike
        HAVING countIf(delta > 0) > 0
           AND countIf(delta < 0) > 0
    ),
    lower_leg AS
    (
        SELECT
            strike     AS k1,
            call_delta AS c1,
            put_delta  AS p1
        FROM chain
        ORDER BY abs(strike - spot)
        LIMIT 1
    )
SELECT
    toUInt32(strike - k1)                      AS strike_width,
    round(c1 - call_delta, 4)                  AS call_leg_delta,
    round(put_delta - p1, 4)                   AS put_leg_delta,
    round(c1 - call_delta + put_delta - p1, 4) AS box_net_delta
FROM chain
CROSS JOIN lower_leg
WHERE strike > k1
  AND strike <= k1 + 60
ORDER BY strike
Run this yourself

For the widest pairing in the panel, 50 points apart, the call leg get delta of 0.2208 and the put leg get -0.1977. Together, dem give 0.0231. For the narrowest pairing, the net na 0.0005. Those remaining values na model noise around zero. Box no get directional view, na why e dey price like financing instead of normal position.

Wetin be the real risk for box spread?

American style options fit be exercised by whoever hold dem on any business day before expiration. European style options no fit. This difference, wey American versus European options explain, determine whether box go behave like loan or like live margin position.

The sequence be like this:

  1. Long box and short box both contain two short legs, and for stock or ETF those legs na American style.
  2. Long box keep its short legs for the outer edges, out of the money whenever underlying dey between the strikes. Short box do the opposite: both short legs dey in the money across that same region.
  3. Holder dey most likely exercise an in the money short option early when e get almost no time value left. Upcoming dividend na common reason for exercising short calls, as ex dividend dates and options explain.
  4. Exercise turn that leg into 100 shares per contract, either long or short, while the other three legs remain where dem dey.
  5. The share position get margin requirement based on stock price, not box width. Account wey get size for a few hundred dollars of net credit fit wake up to requirement of tens of thousands, and forced liquidation go follow if the account no fit meet am.

Na this sequence empty one widely discussed retail brokerage account in 2018. The mechanism cause the damage: underlying no even need to move.

Cash settled index options dey on the other side. Dem na European style, meaning no holder fit exercise dem before expiration. Settlement na cash payment based on calculated index level instead of delivery of shares, and the timing get one extra detail wey AM versus PM settled options describe.

Why commissions and bid ask usually chop the edge

The legs of wide box dey for strikes wey far from spot. The panel below divide SPY option turnover for June 2026 into five moneyness buckets, one row for each.

QueryWhere SPY option volume dey, by strike distance from spot (June 2026)
The exact SQL behind every number
WITH
    chain AS
    (
        SELECT
            multiIf(
                toFloat64(strike_price) / toFloat64(underlying_close) < 0.85, 1,
                toFloat64(strike_price) / toFloat64(underlying_close) < 0.95, 2,
                toFloat64(strike_price) / toFloat64(underlying_close) < 1.05, 3,
                toFloat64(strike_price) / toFloat64(underlying_close) < 1.15, 4,
                5)                          AS bucket_key,
            multiIf(
                bucket_key = 1, 'more than 15% below spot',
                bucket_key = 2, '5% to 15% below spot',
                bucket_key = 3, 'within 5% of spot',
                bucket_key = 4, '5% to 15% above spot',
                'more than 15% above spot') AS moneyness_bucket,
            volume
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2026-06-01'
          AND date <  '2026-07-01'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 30 AND 400
    ),
    totals AS
    (
        SELECT
            sum(volume) AS all_volume,
            count()     AS all_rows
        FROM chain
    )
SELECT
    moneyness_bucket,
    round(100 * count() / any(all_rows), 2)       AS contracts_pct,
    round(100 * sum(volume) / any(all_volume), 2) AS turnover_pct
FROM chain
CROSS JOIN totals
GROUP BY bucket_key, moneyness_bucket
ORDER BY bucket_key
Run this yourself

Across SPY expirations of one month or longer in June 2026, strikes within 5% of spot account for 43% of contracts traded, even though na 34.99% of the contract days get any prints. The bucket farthest below spot account for 25.03% of turnover across 23.06% of contract days. Those strikes hold the deep in the money calls wey wide box dey build on, plus far out of the money puts at the same prices. Volume wey gather inside one bucket no mean say volume dey available for the exact contract wey box need, and every leg get bid-ask spread. Box cross four of those spreads when trader enter, and another four if trader close am before expiration.

Execution error also dey increase with the term. Ten cents of slippage on ten point box na 1% of strike width, and when you annualise that over short life, the cost big well. The panel price that hypothetical ten cents against the monthly SPY expirations listed on June 1, 2026.

QueryAnnualised cost of a hypothetical 10 cent fill error on a ten point box
The exact SQL behind every number
SELECT
    concat(formatDateTime(expiration_date, '%b %e, %Y'),
           ' (', toString(toUInt32(any(days_to_expiry))), 'd)') AS expiry_label,
    round(100 * (0.10 / 10) * (365 / any(days_to_expiry)), 2)   AS annual_cost_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date = '2026-06-01'
  AND iv_converged = 1
  AND volume > 0
  AND toDayOfWeek(expiration_date) = 5
  AND toDayOfMonth(expiration_date) BETWEEN 15 AND 21
  AND days_to_expiry BETWEEN 30 AND 800
GROUP BY expiration_date
ORDER BY any(days_to_expiry)
LIMIT 12
Run this yourself

On Jul 17, 2026 (46d), that ten cents cost 7.93% per year. On Jun 16, 2028 (746d), the same ten cents cost 0.49%. Financing trades dey use longer tenors for this exact reason, na why box legs look plenty like deep in the money LEAPS. Commissions add on top, four legs at a time, and wetin e cost to trade options break down the per-contract and per-leg charges.

FAQ

Box spread risk free?

Payout at expiration fixed at strike width, and position no get directional exposure. But two risks remain: early assignment on American style contracts, plus the cost of filling four legs and later closing dem.

Wetin be the difference between long box and short box?

Long box get net debit today and collect strike width when option expire, so buyer dey act as lender. Short box collect net credit today and pay strike width at expiration, so seller dey act as borrower.

Box spread fit get early assignment?

Yes, if dem build am with American style options on stock or ETF. Holder fit exercise either short leg on any business day, and that go turn the leg into share position with its own margin requirement. Box wey use European style cash settled index options no fit get early assignment.

Why brokers dey restrict short box spreads?

Many brokers limit or block short boxes on American style contracts. One early assignment fit replace small options position with large share position and the margin requirement wey come with am.

How I fit calculate implied rate on box spread?

Divide strike width by net debit, raise the result to the power of 365 divided by days to expiration, then subtract one. The simple version divide the gain by debit and multiply am by 365 over the days.


Every panel here come with the SQL wey produce am. Open one, change the ticker or expiration, and run am yourself for the Strasmore terminal.

#options#box spread#arbitrage#financing#put-call parity