To stress test a portfolio, write down the event you are worried about, turn it into a consistent set of shocks to the market factors the portfolio is exposed to, check each shock against history, price the whole set on today's positions with full revaluation where the instruments need it, compare each portfolio's loss with a limit set in advance, and have a named person approve the scenario and decide what happens to every breach. That is seven steps and at least four owners: the analyst, risk operations, the portfolio manager and the chief risk officer. The calculation is rarely the slow part. The weeks go in the gaps between owners: drafting the shocks, arguing their sizes, chasing stale positions and rebuilding the numbers for the committee. Botminds' Stress Testing and Scenario Analysis was built for those gaps: agents draft, challenge, run and explain, and people approve.
The worked example is the solution's fictional sample firm, Quillfield Capital, which stress tests 300 portfolios against 40 official scenarios every week and is adding a new one: what if the Bank of Japan stops buying government bonds altogether?
How to stress test a portfolio: seven steps and who owns each
A person decides
1. Ask the questionThe CIO or CRO names the event, the portfolios in scope and the horizon. Here: a Bank of Japan exit, all 300 portfolios, ten days.
Agent
2. Write the shocksTwelve factor shocks, each cited to a sentence in a central bank text or to a historical window.
Never: sets a shock without a source
Agent
3. Check them against historyEach shock against daily history and against the other shocks; two are sent back for an answer.
Never: changes a shock itself
Agent
4. Assemble the book212,400 positions as of the close, prices from two vendors, private marks flagged, every instrument mapped to a factor.
Never: guesses a missing price
Agent
5. Run itFull revaluation on the firm's risk engine in 24 batches; totals reconciled to NAV.
Never: uses an unapproved scenario for official results
Agent
6. Read losses against limitsEach loss in basis points of NAV against its limit, the driving positions named, breaches opened with a clock.
Never: recommends a trade
A person decides
7. Decide and recordThe CRO approves the scenario with a reason code; the portfolio manager answers each breach; the committee paper is drafted from signed runs.
Step 1: what question is the stress test answering?
Start with the question in a sentence someone senior would sign: "What would a Bank of Japan exit from bond buying do to every portfolio over ten days?" The sentence fixes three things the rest of the work depends on: the event, the scope and the horizon. A test without a stated horizon cannot be checked against history, and a test without a stated scope tends to be run on the portfolios that are easy to price.
The horizon should come from the portfolio, not from habit: roughly how long it would take to cut the risk or meet the margin calls the event would trigger. The sample firm uses ten days for its Japan scenario across liquid multi-asset funds; for a fund holding private credit it may be a quarter. For US funds that use derivatives beyond the limited-user threshold, the stress test must also take account of "correlations of market risk factors and resulting payments to derivatives counterparties" (17 CFR 270.18f-4(c)(1)(iii)), so the question should say whose collateral moves.
Step 2: how do you turn an event into factor shocks?
List every factor the portfolios are directly exposed to, then give each a number and a reason. The SEC's rule is about the whole portfolio, and the adopting release spells it out: the rule requires a fund "to stress test its portfolio, that is, all of the fund's investments, and not just the fund's derivatives transactions" (Rule 18f-4 adopting release, footnote 193). A scenario that shocks rates and equities but leaves the currency overlay untouched is a stress test of most of the book.
Each shock needs a source a reviewer can open: a passage in a central bank statement, a market window, a house view. In the sample, the JGB 10-year +80bp shock cites the Bank of Japan's July 2024 statement on reducing its purchases; the USD/JPY −14% shock cites the summer 2024 carry-trade unwind and the firm's own house view. When an analyst cannot point to a source, the shock is an opinion, and the committee is entitled to ask whose.
Step 3: check every shock against history, and against the others
Before pricing anything, ask two questions of each shock: how rare is a move of this size over this horizon, and does its direction fit the story? The first is arithmetic on daily history; the second is judgement. In the sample, the Calibration agent sent back two of twelve shocks. A US Treasury yield fall contradicted the scenario's own story, since Japanese investors selling foreign bonds would push US yields up; the analyst changed it to a rise. A JGB move larger than any comparable move in the sample's history data was kept, with a written reason the CRO reads before approving.
Rarity is evidence, not a veto. In September 2022, 30-year gilt yields rose more than twice as far over four days as in any period since 2000, and historical stress testing works through what that means for a scenario rule. What the check should never do is pass silently: a shock nobody questioned is the weakest number in the paper.
Step 4: what data do you need to stress test a portfolio?
You need positions as of a stated date, prices for every instrument, a mapping from each instrument to the risk factors the scenario moves, and the limit for each portfolio. Each has a characteristic failure. Positions differ between portfolio accounting and the order management system on trade date versus settlement date. Private assets carry last quarter's mark. New instruments arrive unmapped. Limits sit in a spreadsheet nobody versioned.
What one weekly run touches in the sample firm
212,400
positions pulled for 300 portfolios, as of Friday's close
61,800
instruments priced from two market data vendors
240
of 12,000 results held back: six portfolios with a data exception
4h 14m
from first pull to the sealed run, in 24 batches with one retry
The rule for data exceptions should be written before the run: hold the portfolio, or run it with a flagged proxy, but never let a guessed price produce an official number. In the sample, three private funds carried their last marks, from 30 June and 30 September; the proposed fix was to run them on those marks, flagged as stale, so the committee sees which results rest on old values.
Before you run: six data checks that change the answer
- Positions reconciled between accounting and the order system
Trade-date versus settlement-date breaks are the usual cause of a wrong exposure.
- Every instrument mapped to a factor
An unmapped instrument contributes zero to the loss, which looks like a hedge.
- Private and stale marks flagged, not hidden
Show the as-of date of every mark the result depends on.
- Two price sources where they exist
Disagreement between vendors is itself a signal about liquidity in the stress.
- Limits taken from a versioned register
A limit edited after the run makes the breach disappear.
- Totals reconciled to NAV after the run
In the sample, the run is checked to within 0.01% of NAV before results are released.
Step 5: run the scenario, in full where the book is not linear
Price the shocks on the risk engine with full revaluation for options and anything else whose value is not linear in the factors; sensitivities are a reasonable shortcut only for plain bonds and cash equities over small moves. CESR's guidelines for UCITS using value at risk ask the stress tests to "focus on those risks which, though not significant in normal circumstances, are likely to be significant in stress situations, such as the risk of unusual correlation changes, the illiquidity of markets in stressed market situations or the behaviour of complex structured products under stressed liquidity conditions" (CESR/10-788, Box 20).
Price the consequences, not just the loss. A market shock calls margin, and margin is cash. In the Bank of England's 2024 system-wide exercise, non-banks needed to meet about £94 billion of margin calls, and variation margin made up about 85% of the liquidity needs they reported (Bank of England, SWES final report; what that means for liquidity assumptions). The Financial Stability Board's 2024 recommendations ask market participants to "estimate the increase in IM requirements and haircuts under extreme but plausible stress scenarios" (FSB, Liquidity Preparedness for Margin and Collateral Calls, Recommendation 5). A market stress test that stops at the loss leaves the liquidity question to someone else; whether that is a separate liquidity stress test or an extra column, it should be decided, not forgotten.
Stress Testing and Scenario Analysis: the weekly run, step by step, with the exceptions held

Step 6: read the losses against limits, and name the drivers
A loss means something only against a limit approved before the run. Report each portfolio's loss in basis points of NAV and as a share of its limit, rank by the share, and name the positions that drive it. Without the drivers, the portfolio manager's first reply is always a question, and the clock starts a day late.
The sample's worked example: Global Balanced Fund loses 312bp of NAV, $443.0 million, in the Japan scenario against a 300bp limit, 104%. Three positions explain 285bp: the short-yen forward overlay (−126bp), the global equity sleeve (−118bp) and a 20-year JGB (−41bp). Without the overlay the loss would be 186bp. An illustrative what-if, halving the overlay, brings it to 249bp, 83% of the limit; it is labelled an illustration, and any trade is the portfolio manager's decision.
A stress test portfolio example: one fund's loss, position by position

Step 7: who approves a new stress scenario, and what gets recorded?
Someone who did not draft it. The analyst prepares the scenario and the evidence; the CRO, or a risk committee under its charter, approves it into the official set, approves it with a condition, returns it or rejects it, and gives a reason. In the sample firm a breach goes to the portfolio manager with two business days to respond, the CRO decides within five, and anything unresolved at ten business days reaches the committee. Those are settings, and the firm can change them; what matters is that they exist before the first breach.
Then keep it. Rule 18f-4 requires a fund to keep the results of its stress tests and the reports to its board for at least five years, the first two in an easily accessible place (17 CFR 270.18f-4(c)(6)). The paper the committee reads should be built from the same sealed runs, which is what the risk committee report covers.
The seven steps, the owner and what each step leaves behind
| Step | Owner | What it leaves behind |
|---|---|---|
| 1. Ask the question | CIO or CRO | The event, scope and horizon in one sentence |
| 2. Write the shocks | Market risk analyst | A versioned scenario: every shock with its source |
| 3. Check against history | Analyst, with a challenger | Rarity and consistency for each shock; reasons for any kept against the challenge |
| 4. Assemble the book | Risk operations | Positions, prices and mappings as of a date; exceptions resolved or held |
| 5. Run it | Risk operations, on the risk engine | A sealed run with an identifier, reconciled to NAV |
| 6. Read against limits | CRO and portfolio managers | Losses as a share of limit, drivers named, breach cases with clocks |
| 7. Decide and record | CRO; committee for limits | An approval with a reason code; breach decisions; the committee paper |
How often should a portfolio be stress tested?
At least as often as the rules require, and more often when the book or the market moves quickly. For US funds with a derivatives risk management program the floor is weekly; for UCITS using value at risk it is monthly, plus whenever the portfolio or markets change enough that the results would differ significantly (CESR/10-788, Box 21). The SEC explained its weekly floor in terms any risk team will recognise: "During periods of stress, returns, correlations, and volatilities tend to change dramatically over a very short period of time" (Rule 18f-4 adopting release).
Frequency is a property of the official set, not of every new idea. A sensible rhythm is the full official set every week on every portfolio, new scenarios previewed on demand when an event happens, and each official scenario re-approved on a fixed cycle, every twelve months in the sample firm. The release adds that a high-turnover fund "might determine to conduct stress testing more frequently than a fund with a more static portfolio."
How long does a new stress scenario take?
Weeks, on the solution's own estimate for a typical firm, and almost none of it in the risk engine. The solution's own estimate for one new hypothetical scenario done by hand at a typical firm is about 22 working days: reading the source and drafting shocks, arguing sizes by email, running and explaining, getting the CRO's agreement and building the committee page. No regulator or independent study publishes this figure; measure your own by dating the first email and the approval on your last three new scenarios.
Where a new scenario's working days go, by hand and with Stress Testing and Scenario Analysis
- Read and draft3 d
- Argue each shock size8 d
- Run and explain3 d
- CRO agreement4 d
- Committee page4 d
- All1 d
How to stress test a bond portfolio, or your own investments
A bond portfolio needs the curve, not a single rate. Shock segments separately, short, intermediate and long, because steepeners and flatteners hurt different holdings; Form PF's amended market factor question moves the 0–3, 3–10 and over-10-year segments separately for the same reason. Add credit spreads by rating and sector, defaults for the lowest-rated holdings, and a liquidity assumption for what could be sold at what price, because the March 2020 window showed even government bonds falling in price as holders sold for cash.
For an individual investor, the same logic scales down to four of the seven steps: name the event, set a move for each asset class you hold, revalue the holdings and compare the loss with what you could tolerate. The parts that need a firm, the challenge, the data controls and the approval, exist because a fund is answering for other people's money.
Questions people ask
What is the simplest way to stress test a portfolio?
Apply a few single-factor moves, such as equities down 10% or rates up 100bp, and revalue the holdings. That is a sensitivity analysis, not a scenario, but it shows the largest exposures. The next step is a scenario that moves factors together, which is what Rule 18f-4 means by taking account of correlations.
Do you stress test the whole portfolio or only the derivatives?
The whole portfolio. The SEC's adopting release for Rule 18f-4 says the required stress test covers "all of the fund's investments, and not just the fund's derivatives transactions." A stress test of the derivatives sleeve alone misses how it interacts with the rest of the book.
Who approves a new stress scenario?
Usually the chief risk officer or a risk committee, and never the analyst who drafted it. In Stress Testing and Scenario Analysis the drafter can never approve; the CRO approves, approves with a condition, returns or rejects each scenario with a reason code.
What if position or price data is missing on the day of the run?
Decide the rule in advance: hold the portfolio, or run it on a flagged proxy, but never let a guessed price become an official result. In the sample run, six portfolios were held and 240 of 12,000 results waited for a person to apply a fix.
Should a market stress test include margin calls?
It should at least report them, because a market shock turns into a cash demand. In the Bank of England's 2024 system-wide exercise, about 85% of non-banks' reported liquidity needs came from variation margin calls. Funds usually model the full liquidity effect in a separate liquidity stress test.