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.
| Holding | Starting USD value | Price change | Stressed USD value | Stressed recognition | Assumed exit discount |
|---|---|---|---|---|---|
| BTC | $50,000 | −30% | $35,000 | 80% | 2% |
| ETH | $30,000 | −40% | $18,000 | 70% | 4% |
| USDC | $20,000 | −3% | $19,400 | 90% | 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%.
| Output | Price shock only | Price plus recognition shock | After assumed full exit |
|---|---|---|---|
| Marked equity before sales | $32,400 | $32,400 | Replaced by cash ledger |
| Recognized support before sales | $65,300 | $58,060 | Must recalculate after repayment |
| Equity after modeled sale costs | Not calculated | Not 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:
- At minute zero, apply the combined shock and freeze new exposure.
- By minute five, refresh balances, outstanding orders, requirements and executable depth.
- At minute ten, assume only half the intended sale has filled. Retain the other half as exposed inventory.
- 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.
