Models / Equities / merger_spread
Merger spread
What is this deal spread worth after carry, and what completion odds does the price imply?
Computes a deal's offer value, gross spread, simple and compounded annualized return, return net of financing, borrow and dividends, the completion probability the price implies, and the break-even probability after carry. Prices and terms come from the caller. It is arithmetic on those numbers, not a view on whether any deal closes.
On these numbers, the offer is worth 50 against a target price of 47, a hypothetical gross return of 6.38% and 14.42% a year net if it closes in 120 days. The price implies 80% completion, and break-even after carry is 85.15%.
Hypothetical, and on made-up numbers until you replace them. Nobody traded this, and nothing here is on offer.
Readings
The numbers, with their units.
Offer value
50
Cash 20 plus 0.5 acquirer shares at 60.
Hypothetical gross return to close
6.383%
Gross spread of 3 per target share.
Hypothetical gross annualized, simple
19.41%a year
Compounded: 20.71% a year.
Hypothetical net annualized, simple
14.42%a year
After financing, borrow, and dividends paid on the short.
Implied completion probability
80%
Break-even probability after carry
85.15%
The completion probability at which the two-outcome average is zero, carry included.
Loss on a break
25.53%of target price
Reward to risk
0.25
Gross spread over the loss on a break.
What flips it
The value of one input where the outcome changes, with the others held.
days_to_close
229.54daysnow 120
At this many days, net annualized equals the 5% financing rate. Longer and it falls below.
break_price
20now 35
At this break price the implied probability is 90%. Below it the implied probability is higher.
What this leaves out
What the formula leaves out, by name.
- Short rebate: in a stock deal the sale proceeds can offset most of the financing charge. The table shows what a rebate at the financing rate would add.
- How the acquirer moves on a break. If it rises, that adds to the loss on the short.
- Collars, walk-away rights, price adjustments, and competing bids.
- A break that comes early or late, and a close later than days_to_close.
- Recall of borrowed shares, slippage, commissions, fees and taxes.
What it took as given (8)
What it took as given to get here.
- The position is long one target share and short ratio acquirer shares, so the completion payoff V - T is fixed at today's acquirer price.
- Time is calendar days over 365. Financing and borrow accrue simply.
- Financing is charged on the whole target price. Short sale proceeds earn nothing and fund nothing.
- Dividends and borrow on the short scale with the ratio.
- Carry is the same whether the deal closes or breaks, as if a break came at the end of the period.
- On a break the acquirer stays at acquirer_price, so the short neither gains nor loses.
- Dividends stay fixed when the flip moves days_to_close.
- The sleeve is per 100 of target value, with the short at ratio * A against it.
The data
Per target share
| line | amount | pct_of_target_price |
|---|---|---|
| Gross spread | 3 | 6.383 |
| Target dividends received | 0.25 | 0.5319 |
| Acquirer dividends paid on the short | -0.2 | -0.4255 |
| Financing on the target | -0.772603 | -1.6438 |
| Borrow on the short | -0.0493151 | -0.1049 |
| Net if the deal closes | 2.2281 | 4.7406 |
| Not counted: rebate on short proceeds at the financing rate | 0.493151 | 1.0493 |
Annualized return, percent, hypothetical
| basis | to_close | simple | compounded |
|---|---|---|---|
| Gross | 6.383 | 19.41 | 20.71 |
| Net | 4.7406 | 14.42 | 15.13 |
Paste it into your agent
No connection needed. This prompt carries the method, the conventions and what this site's engine gives on the made-up numbers, so your agent can check its own work before it touches real ones. Every prompt, with its hash, is listed at /prompts.json. A copy that stays fixed for this version, for a stack to point at: /v/1.0/models/merger_spread.md.
# Merger spread: a prompt from hedgefund.mdPaste this into your AI agent. It needs no connection to hedgefund.md. An agent that can run code should write and run it, and shouldn't work a long series by hand.**Question.** What is this deal spread worth after carry, and what completion odds does the price imply?## MethodV = cash + ratio * A. Gross return r = (V - T) / T, simple annual = r * 365 / days, compounded = (1 + r)^(365 / days) - 1. Carry = div_T - ratio * div_A - T * fin * days / 365 - ratio * A * borrow * days / 365. Net = (V - T + carry) / T. Implied p = (T - B) / (V - B). Break-even p = (T - B - carry) / (V - B).## Conventions- The position is long one target share and short ratio acquirer shares, so the completion payoff V - T is fixed at today's acquirer price.- Time is calendar days over 365. Financing and borrow accrue simply.- Financing is charged on the whole target price. Short sale proceeds earn nothing and fund nothing.- Dividends and borrow on the short scale with the ratio.- Carry is the same whether the deal closes or breaks, as if a break came at the end of the period.- On a break the acquirer stays at acquirer_price, so the short neither gains nor loses.- Dividends stay fixed when the flip moves days_to_close.- The sleeve is per 100 of target value, with the short at ratio * A against it.## Step 1: check your method on these made-up numbersThe numbers and names below are made up. They aren't market levels, typical values or anyone's real figures.```json{ "deal_cash": 20, "deal_stock_ratio": 0.5, "acquirer_price": 60, "target_price": 47, "break_price": 35, "days_to_close": 120, "dividends_target": 0.25, "dividends_acquirer": 0.4, "financing_rate_pct": 5, "borrow_bps": 50}```Work them out with the method above. Yours should match these within 0.5%.- Offer value: 50- Hypothetical gross return to close: 6.383 %- Hypothetical gross annualized, simple: 19.4149 % a year- Hypothetical net annualized, simple: 14.4193 % a year- Implied completion probability: 80 %- Break-even probability after carry: 85.1461 %- Loss on a break: 25.5319 % of target price- Reward to risk: 0.25Where the outcome flips, with the other inputs held:- days_to_close at 229.53608: At this many days, net annualized equals the 5% financing rate. Longer and it falls below.- break_price at 20: At this break price the implied probability is 90%. Below it the implied probability is higher.If yours differ, stop and tell the person which ones and by how much. Don't go on to real numbers until they match, or until the person has seen the difference. These values come from one engine and can be wrong too.## Step 2: run it on the person's numbersReplace every input with the person's own. Ask for any number you don't have, and don't invent one.## Step 3: reportGive one sentence beginning "On these numbers,", then the values, then where the outcome flips. Always add what this leaves out:- Short rebate: in a stock deal the sale proceeds can offset most of the financing charge. The table shows what a rebate at the financing rate would add.- How the acquirer moves on a break. If it rises, that adds to the loss on the short.- Collars, walk-away rights, price adjustments, and competing bids.- A break that comes early or late, and a close later than days_to_close.- Recall of borrowed shares, slippage, commissions, fees and taxes.## LimitsResults are hypothetical: arithmetic on the numbers given, prepared with hindsight. Nobody achieved them, and costs and liquidity are only as assumed. They aren't a forecast, a recommendation, an offer or a record of real trading. Don't say what to buy, sell or hold, and don't use them to market an investment. Whether a person may hold or trade an instrument is a legal question for counsel.Provided as is, at your own risk, by hedgefund.md, which is not a fund and isn't anyone's adviser. Version 1.0. Source: https://hedgefund.md/models/merger_spread/prompt.md. Terms: https://hedgefund.md/termsCall it
The same code answers on this page, over HTTP, over MCP and on your own machine, and the same inputs give the same bytes. No key, and nothing is stored. Send positions by POST or run the library, because a URL can land in a server log. model.md holds all of this for your agent.
POST the inputs to /api/v1/merger_spread.
curl -s https://hedgefund.md/api/v1/merger_spread \ -H 'content-type: application/json' \ -d '{"deal_cash":20,"deal_stock_ratio":0.5,"acquirer_price":60,"target_price":47,"break_price":35,"days_to_close":120,"dividends_target":0.25,"dividends_acquirer":0.4,"financing_rate_pct":5,"borrow_bps":50}' \ | jq '{summary, flags, flips, not_modeled, inputs_hash}'The tool is merger_spread on https://hedgefund.md/mcp.
curl -s https://hedgefund.md/mcp \ -H 'content-type: application/json' -H 'accept: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"merger_spread","arguments":{"deal_cash":20,"deal_stock_ratio":0.5,"acquirer_price":60,"target_price":47,"break_price":35,"days_to_close":120,"dividends_target":0.25,"dividends_acquirer":0.4,"financing_rate_pct":5,"borrow_bps":50}}}' \ | jq '.result.structuredContent | {summary, flags, flips, not_modeled, inputs_hash}'One file with no dependencies, and nothing is sent anywhere.
curl -fsSL https://hedgefund.md/hedgefund.mjs -o hedgefund.mjs # read it before you run itnode hedgefund.mjs template merger_spread > mine.json # replace every number in itnode hedgefund.mjs run merger_spread mine.json | jq '{summary, flags, flips, not_modeled, inputs_hash}'Made-up numbers that run as they stand. Replace every one.
{ "deal_cash": 20, "deal_stock_ratio": 0.5, "acquirer_price": 60, "target_price": 47, "break_price": 35, "days_to_close": 120, "dividends_target": 0.25, "dividends_acquirer": 0.4, "financing_rate_pct": 5, "borrow_bps": 50}Inputs
| Input | Type | Range | Required | What it is |
|---|---|---|---|---|
| deal_cash | number | 0 to 10000000 | no | Cash paid per target share. Default 0. |
| deal_stock_ratio | number | 0 to 10000 | no | Acquirer shares paid per target share. Default 0. |
| acquirer_price | number | 0.0001 to 10000000 | no | Acquirer share price. Required when deal_stock_ratio is above 0. |
| target_price | number | 0.0001 to 10000000 | yes | Target share price now. |
| break_price | number | 0 to 10000000 | yes | Where the target would trade if the deal broke. |
| days_to_close | number | 1 to 3650 | yes | Calendar days until the deal closes. |
| dividends_target | number | 0 to 1000000 | no | Dividends per target share expected before close. Default 0. |
| dividends_acquirer | number | 0 to 1000000 | no | Dividends per acquirer share expected before close. Default 0. |
| financing_rate_pct | number | -10 to 100 | yes | Annual rate on the whole target price, in percent. |
| borrow_bps | number | 0 to 100000 | no | Annual borrow fee on the acquirer short, in basis points of its value. Default 0. |
Hypothetical, and on made-up numbers until you replace them. Nobody traded this, and nothing here is on offer.