Skip to content

Research notes

Crypto portfolio stress testing with price and liquidity shocks

A checked three-asset example separates marked equity, recognized collateral and exit proceeds, then works backward from a support shortfall.

Three ivory ceramic supports hold a platform beneath a heavy block, with a lime strip running through the gap.
Illustration for research notes; examples in this article are educational.

Crypto portfolio stress testing applies specified adverse changes to today's holdings, liabilities and trading routes to estimate what would happen under those assumptions. Test price losses, collateral recognition and exit costs together, while keeping their accounting separate. Report marked equity, recognized support and cash available after execution; a scenario result is conditional, not a forecast or a probability of loss.

A portfolio can retain positive equity while losing the collateral support needed to maintain its positions. It can also look adequately funded at quoted prices while an urgent sale produces too little cash. A useful test makes both weaknesses visible before choosing a response.

Define the failure before choosing the shock

Start with a question that can produce an actionable result: would this portfolio breach its stated loss budget, fall below an account requirement, or fail to deliver a required cash amount by a deadline? These are different outcomes and need separate columns.

Freeze a dated snapshot of quantities, liabilities, open orders, account locations and valuation currencies. Distinguish assets owned outright from pledged collateral. Include debts in the currency owed: a fixed dollar loan behaves differently from a fixed number of borrowed tokens. Netting assets against liabilities requires a documented legal and account boundary.

Choose a horizon. An instantaneous shock holds quantities fixed and shows the immediate damage. A six-hour response test adds orders, transfers and changing balances. Combining their assumptions without recording the order of events can make the proposed rescue impossible to reproduce.

The Basel Committee's stress testing principles call for internally consistent scenarios that cover material risks, with sufficiently severe but plausible assumptions. This is banking methodology used here as an analytical discipline; it does not prescribe crypto shock sizes or retail account requirements.

A scenario also differs from value at risk and expected shortfall. Those measures summarize a specified loss distribution. Assigning a 30% price fall to a stress case does not establish how often it will happen. Reporting the worst case in a chosen set does not establish a maximum possible loss.

Build a combined shock with separate ledgers

For a simple long-asset portfolio, retain three outputs:

  • Marked equity: stressed asset values minus stressed liabilities, before sale costs.
  • Recognized support: the amount the account's rules accept as collateral, compared with its applicable requirements.
  • Exit equity: estimated proceeds after execution costs, minus liabilities, assuming the modeled exits can complete.

Bybit documents USD collateral valuation using collateral value ratios in its Unified Trading Account, including tiered calculations and periodic ratio reviews. Those are Bybit UTA rules, rather than universal exchange mechanics. A real worksheet must reproduce the relevant account mode, eligibility, tiers, price sources and requirements.

A haircut reduces recognized support. It is not automatically a cash expense or an additional market-price loss. An execution discount represents a different assumption: what proceeds a sale delivers relative to the stressed mark. Do not subtract the collateral discount again when calculating sale proceeds.

The stablecoin collateral-risk worksheet examines that distinction for one token balance. At portfolio level, apply it to every asset and liability, then aggregate within each account boundary.

Reproduce a hypothetical portfolio shock

All amounts and rates in this example are invented teaching inputs, not current asset prices, venue ratios or observed trading results. Assume fixed quantities of three assets worth $100,000 in total and a fixed $40,000 USD debt. Starting marked equity is therefore $60,000. There are no derivatives, interest, funding payments, taxes or separate liquidation fees.

Initially, assume recognition ratios of 90% for BTC, 80% for ETH and 100% for USDC. Initial recognized support is 50,000 × 0.90 + 30,000 × 0.80 + 20,000 = $89,000.

Now combine the following shocks. The exit discount is an assumed total allowance for spread, market impact and trading fees, applied to each stressed asset value. It assumes the entire balance can be sold within the test horizon.

HoldingStarting USD valuePrice changeStressed USD valueStressed recognitionAssumed exit discount
BTC$50,000−30%$35,00080%2%
ETH$30,000−40%$18,00070%4%
USDC$20,000−3%$19,40090%1%
Total$100,000—$72,400——

Calculate marked equity first

The fixed quantities are now worth $35,000 + $18,000 + $19,400 = $72,400. Subtract the unchanged debt to obtain $72,400 − $40,000 = $32,400 of marked equity.

Asset value fell by 27.6%, but equity fell by $27,600 / $60,000 = 46%. The debt amplifies the percentage loss relative to starting equity. Using the $100,000 asset base as the equity-loss denominator would conceal that effect.

An unlevered version of the same asset basket would have $72,400 remaining before execution costs and a 27.6% price loss. Keep that comparison separate from a claim that the allocations are suitable.

Recalculate collateral support

With the original recognition ratios, the stressed prices alone would leave $35,000 × 0.90 + $18,000 × 0.80 + $19,400 = $65,300 of support.

Applying the lower stressed recognition ratios produces $28,000 + $12,600 + $17,460 = $58,060. The recognition change removes another $7,240 of support after the price shock. Marked equity remains $32,400 because this accounting adjustment did not itself sell or destroy assets.

Support exceeds the assumed debt by $18,060. That is a screening comparison, not a margin buffer or liquidation trigger. Actual requirements can include maintenance margin, accrued liabilities, collateral tiers and position-specific rules. Replace this comparison with the documented engine calculation before using it for a live account.

Estimate exit equity

The assumed sale costs are $35,000 × 2% = $700, $18,000 × 4% = $720, and $19,400 × 1% = $194. Total cost is $1,614.

Sale proceeds are therefore $72,400 − $1,614 = $70,786. After repaying the debt, exit equity is $30,786. Compared with starting equity, the loss is $29,214 / $60,000 = 48.69%.

OutputPrice shock onlyPrice plus recognition shockAfter assumed full exit
Marked equity before sales$32,400$32,400Replaced by cash ledger
Recognized support before sales$65,300$58,060Must recalculate after repayment
Equity after modeled sale costsNot calculatedNot calculated$30,786

The haircut belongs in the support calculation. Subtracting it again from the $30,786 result would mix valuation rules with economic costs. Conversely, omitting execution costs because the support test passed would overstate cash available after exit.

Work backward from a support shortfall

Reverse stress testing starts with an adverse outcome and solves for conditions that could produce it. OSFI's stress-testing methodology describes this approach and the need to consider constraints on mitigation timing. Its institutional guidance supplies a method here, not a crypto account rule.

For a deliberately simplified reverse check, ask what additional equal percentage decline in BTC and ETH would reduce recognized support to the $40,000 debt. Keep the stressed USDC value and all recognition ratios fixed. Let x be that additional decline from the already stressed prices:

support = ($28,000 + $12,600) × (1 − x) + $17,460

Solving support = $40,000 gives x = $18,060 / $40,600, approximately 44.48%. At an additional 40% decline, support is $41,820. At an additional 45% decline, it is $39,790.

In that latter case, assets still have a market value of $19,250 + $9,900 + $19,400 = $48,550, leaving $8,550 of marked equity. Positive equity and inadequate recognized support can coexist.

This is not an estimate of liquidation distance. A real account may require intervention much earlier, and changing requirements would change the equation. The result is useful because its assumptions and failure boundary are explicit.

Make timing part of the liquidity scenario

An exit discount only works if enough quantity can trade. Coinbase Advanced Trade documents both slippage and partial fills. Its limit orders constrain execution price but still depend on available trading interest. A permitted price is not evidence that the entire position can exit by a deadline.

Add a second, hypothetical timeline to the static worksheet:

  1. At minute zero, apply the combined shock and freeze new exposure.
  2. By minute five, refresh balances, outstanding orders, requirements and executable depth.
  3. At minute ten, assume only half the intended sale has filled. Retain the other half as exposed inventory.
  4. At minute thirty, assume an external transfer is still pending. Exclude those funds from usable account liquidity until credited.

For each step, record available cash, remaining inventory, liabilities and the account requirement. An order acknowledgment, pending transfer or eventual redemption is not a completed funding response. Revalue what remains after every partial fill; the next sale need not have the same cost as the first.

For quantity-dependent sale estimates, use the order-book depth guide. If the model lacks depth evidence, state the assumed capacity and test a lower-capacity case instead of hiding the gap inside a precise percentage.

Turn the result into a repeatable decision

Use a compact record for each scenario: snapshot time; account boundary; horizon; price shocks; liability changes; collateral rules; execution costs and capacity; transfer delays; measured failure; permitted response; and evidence that the response completed. Save the arithmetic alongside the inputs so another reader can reproduce the result.

Run isolated sensitivities before the combined case. A price-only run identifies market exposure; a recognition-only run identifies dependence on collateral eligibility; a capacity-only run identifies reliance on fast exits. Then combine related stresses with an explicit narrative. Separate runs diagnose causes, while the combined run reveals interactions.

Test the portfolio after any proposed response as well. A sale can reduce market exposure while consuming fees and changing the collateral mix. A transfer can improve one account only after the receiving account credits it. A change to calendar or threshold rebalancing therefore needs its own execution and funding assumptions during stress.

Allocation labels are insufficient evidence of resilience. Compare risk parity and equal weighting using the same scenarios, currencies, liabilities and cost conventions. Otherwise a better-looking result might come from easier assumptions rather than a different portfolio.

Before accepting a response, rerun the case with slower fills, less transferable cash and less favorable recognition. If it succeeds only when every rescue step happens immediately, identify that dependency in the decision record. Finish with three dated numbers—marked equity, recognized support and usable cash—and a verified next action for whichever constraint fails first.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.