HEDGEFUND.md

Models / Digital assets / reserve_coverage

Reserve coverage

Do these reserves cover the tokens at par, and on which day does cash run short at this redemption rate?

Tests a reserve against redemptions at par: coverage after haircuts, cash available by day against cumulative redemptions, the first shortfall day and the largest daily redemption rate with no shortfall, plus net income on the reserve yield. All balances and rates come from the caller. Not an audit, an attestation or advice.

The paste-ready promptmodel.md

On these numbers, reserves cover 101.8% of tokens after haircuts, and at 5% a day cash first runs short on day 24. The largest daily rate with no shortfall over 60 days is 4.0173%.

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.

Coverage after haircuts

101.8%

On the balances sent. It doesn't show the reserves exist.

First shortfall day

breach

24day

Shortfall on that day

1,251,098

Largest gap 7,856,445.9, on day 29.

Largest daily rate with no shortfall

breach

4.0174%a day

Binding on day 29.

Net income per year

3,885,000

On face of 105,000,000, before any run-off.

Net income over the horizon

203,070

With reserves shrinking in step with tokens.

What flips it

The value of one input where the outcome changes, with the others held.

  1. daily_redemption_pct

    4.0174%now 5

    The largest daily rate with no shortfall over 60 days. Just above it, cash first runs short on day 29.

Flags

What went past a line, and what to read before you trust the rest.

  • breach
    Coverage is 101.8% and cash still runs short on day 24, because reserves reach cash later than redemptions arrive. shortfall_in_horizon
  • watch
    8.5% of tokens' worth of reserves reach cash after day 60, so coverage counts them and the ladder doesn't. reserves_past_horizon

What this leaves out

What the formula leaves out, by name.

  • Haircuts that widen as more is sold, and forced-sale price impact.
  • Selling a reserve early for less than the stated haircut, or borrowing against it.
  • Any legal claim on the reserves, custody or banking failure, and whether the reserves exist as stated.
  • Contract, chain or bridge failures, paused redemptions, gates and redemption fees.
  • Weekends and holidays. Every day counts as a settlement day.
  • The token's price away from par in a secondary market.
  • Taxes.
What it took as given (8)

What it took as given to get here.

  • Each day redeems the daily rate of the tokens still outstanding that morning, at par. The redemptions shrink as tokens leave.
  • A reserve becomes cash only on its days_to_cash, in full, after its haircut. Unused cash carries forward, so the test compares running totals, not one day's flows.
  • A shortfall is a day-end running total of redemptions above the running total of cash. Days are 1 to the horizon.
  • Coverage counts every reserve, including any that reach cash after the horizon. The ladder counts only what has reached cash by that day.
  • Yield isn't added to the cash ladder. Net income per year is face * (yield - fee), on the reserves as they stand.
  • Income over the horizon scales that by the tokens left at the start of each day, over a 365-day year, as if reserves shrink in step with tokens.
  • The largest daily rate comes from a bisection between 0 and 100 percent, cut at the tenth digit to a rate that passes when sent back. A shortfall can't get smaller as the rate rises. If no rate up to 100 gives a shortfall, the largest is 100.
  • The sleeve is per 100 of tokens. Tail is the haircut loss, liquidity days the last reserve's days to cash, and carry the yearly net income.
Cash available against cumulative redemptionsMoney
  • Cash available
  • Cumulative redemptions
050M100M0102030405060Day93,300,000
The data

Reserve ladder

reserveamounthaircut_pctafter_haircutdays_to_cash
Bank cash10,000,000010,000,0000
Bill 30d30,000,0000.529,850,0003
Bill 90d30,000,000129,700,0005
Loan note25,000,000523,750,00030
Property note10,000,000158,500,000120

Cash against redemptions by day

daycash_availablecumulative_redemptionscushiontokens_left
110,000,0005,000,0005,000,00095,000,000
210,000,0009,750,000250,00090,250,000
339,850,00014,262,50025,587,50085,737,500
439,850,00018,549,37521,300,62581,450,625
569,550,00022,621,90646,928,09477,378,094
2469,550,00070,801,098-1,251,09829,198,902
2969,550,00077,406,446-7,856,44622,593,554
3093,300,00078,536,12414,763,87621,463,876
6093,300,00095,393,020-2,093,0204,606,980

Hypothetical, computed from the numbers sent and any stated default, with hindsight. Nobody traded it, and costs and liquidity are only as assumed. Not a forecast, a recommendation, an offer, or a record of real trading. Don't use it to market an investment.

formula Coverage = sum(amount * (1 - haircut)) / tokens. Cumulative redemptions by day t = tokens * (1 - (1 - r)^t), since each day redeems r of what's left. Cash by day t = sum of amount * (1 - haircut) over reserves with days_to_cash <= t. A shortfall is cumulative redemptions above cash on any day. Net income = face * (yield - fee).

inputs_hash 8a86987f3b1c4da3

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/reserve_coverage.md.

prompt.md
# Reserve coverage: 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.** Do these reserves cover the tokens at par, and on which day does cash run short at this redemption rate?## MethodCoverage = sum(amount * (1 - haircut)) / tokens. Cumulative redemptions by day t = tokens * (1 - (1 - r)^t), since each day redeems r of what's left. Cash by day t = sum of amount * (1 - haircut) over reserves with days_to_cash <= t. A shortfall is cumulative redemptions above cash on any day. Net income = face * (yield - fee).## Conventions- Each day redeems the daily rate of the tokens still outstanding that morning, at par. The redemptions shrink as tokens leave.- A reserve becomes cash only on its days_to_cash, in full, after its haircut. Unused cash carries forward, so the test compares running totals, not one day's flows.- A shortfall is a day-end running total of redemptions above the running total of cash. Days are 1 to the horizon.- Coverage counts every reserve, including any that reach cash after the horizon. The ladder counts only what has reached cash by that day.- Yield isn't added to the cash ladder. Net income per year is face * (yield - fee), on the reserves as they stand.- Income over the horizon scales that by the tokens left at the start of each day, over a 365-day year, as if reserves shrink in step with tokens.- The largest daily rate comes from a bisection between 0 and 100 percent, cut at the tenth digit to a rate that passes when sent back. A shortfall can't get smaller as the rate rises. If no rate up to 100 gives a shortfall, the largest is 100.- The sleeve is per 100 of tokens. Tail is the haircut loss, liquidity days the last reserve's days to cash, and carry the yearly net income.## 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{  "tokens_outstanding": 100000000,  "reserves": [    {      "name": "Bank cash",      "amount": 10000000,      "haircut_pct": 0,      "days_to_cash": 0    },    {      "name": "Bill 30d",      "amount": 30000000,      "haircut_pct": 0.5,      "days_to_cash": 3    },    {      "name": "Bill 90d",      "amount": 30000000,      "haircut_pct": 1,      "days_to_cash": 5    },    {      "name": "Loan note",      "amount": 25000000,      "haircut_pct": 5,      "days_to_cash": 30    },    {      "name": "Property note",      "amount": 10000000,      "haircut_pct": 15,      "days_to_cash": 120    }  ],  "daily_redemption_pct": 5,  "horizon_days": 60,  "reserve_yield_pct": 4,  "fee_bps": 30}```Work them out with the method above. Yours should match these within 0.5%.- Coverage after haircuts: 101.8 %- First shortfall day: 24 day- Shortfall on that day: 1251097.566- Largest daily rate with no shortfall: 4.017365659 % a day- Net income per year: 3885000- Net income over the horizon: 203069.525Where the outcome flips, with the other inputs held:- daily_redemption_pct at 4.017365659: The largest daily rate with no shortfall over 60 days. Just above it, cash first runs short on day 29.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:- Haircuts that widen as more is sold, and forced-sale price impact.- Selling a reserve early for less than the stated haircut, or borrowing against it.- Any legal claim on the reserves, custody or banking failure, and whether the reserves exist as stated.- Contract, chain or bridge failures, paused redemptions, gates and redemption fees.- Weekends and holidays. Every day counts as a settlement day.- The token's price away from par in a secondary market.- 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/reserve_coverage/prompt.md. Terms: https://hedgefund.md/terms

Call 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/reserve_coverage.

terminal
curl -s https://hedgefund.md/api/v1/reserve_coverage \  -H 'content-type: application/json' \  -d '{"tokens_outstanding":100000000,"reserves":[{"name":"Bank cash","amount":10000000,"haircut_pct":0,"days_to_cash":0},{"name":"Bill 30d","amount":30000000,"haircut_pct":0.5,"days_to_cash":3},{"name":"Bill 90d","amount":30000000,"haircut_pct":1,"days_to_cash":5},{"name":"Loan note","amount":25000000,"haircut_pct":5,"days_to_cash":30},{"name":"Property note","amount":10000000,"haircut_pct":15,"days_to_cash":120}],"daily_redemption_pct":5,"horizon_days":60,"reserve_yield_pct":4,"fee_bps":30}' \  | jq '{summary, flags, flips, not_modeled, inputs_hash}'

Inputs

InputTypeRangeRequiredWhat it is
tokens_outstandingnumber0.01 to 100000000000000yesTokens outstanding, redeemable at par of 1.
reservesarray1 to 30 itemsyesThe reserve ladder. Up to 30 lines.
reserves[].namestringyesA label, such as Bill 90d.
reserves[].amountnumber0 to 100000000000000yesFace amount of this reserve.
reserves[].haircut_pctnumber0 to 100yesLoss on turning it into cash. 5 means 5%.
reserves[].days_to_cashwhole number0 to 3650yesDays until it's cash. 0 means today.
daily_redemption_pctnumber0 to 100yesShare of tokens still outstanding redeemed each day. 2 means 2%.
horizon_dayswhole number1 to 730yesDays to test.
reserve_yield_pctnumber-10 to 100noYearly yield on the reserve's face amount. 4 means 4%. Default 0.
fee_bpsnumber0 to 2000noYearly fee on the reserve's face amount, in basis points. Default 0.

Hypothetical, and on made-up numbers until you replace them. Nobody traded this, and nothing here is on offer.

1.0Use at your own risk: hedgefund.md is not a fund, not an offer of any security, token or fund interest, and not advice. Results are hypothetical, may be wrong, and are not a record of real trading. Don't use them to market an investment. See the terms.