SystemInvestment Risk Management

Stress Testing and Scenario Analysis

Stress testing and scenario analysis with every shock cited, every portfolio run each week and every scenario approved by the CRO

New scenarios drafted in hours, every portfolio run weekly, every loss explained.

See one case, screen by screen ↓
demo12,000resultsin one weekly run: 300 portfolios against all 40 official scenarios, with exceptions held for a person to fix
demo312bp of NAVlost by Global Balanced in the new Japan scenario — 104% of its limit, traced to three positions
demo2 of 12shockssent back by the Calibration agent: one changed, one kept with a written reason the CRO reads
target1dayfrom a central bank statement to a CRO-approved scenario, drafted in hours
In short

What is Stress Testing and Scenario Analysis?

Stress testing and scenario analysis shows what a market shock would do to every portfolio. In market risk stress testing, a scenario sets moves in rates, currencies, credit spreads, equities and commodities, and each portfolio's loss is measured against its own limit. Stress Testing and Scenario Analysis adds seven agents that draft historical and hypothetical scenarios from central bank texts, test each shock against history, run every portfolio weekly and explain every loss, while the analyst prepares and the CRO approves every scenario.

AI in asset management: a buyer's guide to agentic AI for investment managers →

Updated

The problem

Why stress testing and scenario analysis still takes weeks

Stress testing and scenario analysis starts with one question from the CIO or the CRO every time a central bank moves or a market breaks: what would this do to our portfolios? Today a market risk analyst reads the source — often a Bank of Japan, Bundesbank or Banque de France text through browser translation — sets the factor shocks by hand in the risk engine's scenario editor, and argues each shock size in email with no check against history. Then risk operations runs a subset of funds, on positions that may be stale and private assets on old marks.

Reading the results and finding the drivers takes hours per portfolio, and the drivers are explained differently each time. Limit breaches go to portfolio managers by email, with no clock and no record of the answer. The scenario changes between runs, the committee deck is built from pasted numbers weeks later, and when an auditor or examiner asks which version produced a committee figure, it often cannot be reproduced. Meanwhile, a fund that runs a derivatives risk management program under SEC Rule 18f-4 must stress test at least weekly.

estimated3–6weeksfrom a market event to an agreed, run and reported scenario at a typical firm
typicalWeeklyat leaststress testing required under SEC Rule 18f-4 for funds with a derivatives risk management program, with results reported to the board
Where a new scenario's weeks go, in working daysestimated
By hand22 days
With the solution1.3 days
  • Reading the source, often not in English, and drafting the factor shocks3 → 0.3 d
  • Arguing each shock size in email and checking it against history8 → 0.3 d
  • Running the portfolios and explaining the drivers of each loss3 → 0.3 d
  • Getting the scenario agreed by the CRO4 → 0.3 d
  • Building the committee page from pasted numbers4 → 0.3 d

Estimated split for one new hypothetical scenario, from the event to an agreed scenario in the committee pack, by hand and with the solution.

How it works

How a scenario becomes official

Seven agents draft, calibrate, run and explain every scenario; the analyst prepares and the CRO approves.

What comes in
Events and data in300 portfolios, 40 scenarios · central bank texts in their own language; positions, prices, limits
Agents at work
Scenario agentcited shocks, any language
Then
Calibration agenttests against history
Then
Run agentevery portfolio weekly
Explainer agentnames the drivers
Then
Escalation agentbreaches on a clock
Committee pack agent
Evidence agent
A person decides
Analyst and CROanalyst prepares, CRO approves
What comes out
Official scenario set
Breaches answered by PMs
Signed committee pack
One case, step by step

One central bank question, from a cited draft to the official scenario set

Quillfield Capital runs 300 portfolios — mutual funds, ETFs, separate accounts, hedge fund vehicles, private funds and wealth models — against 40 official stress test scenarios every week. On Friday the CIO asked: what if the Bank of Japan stops buying bonds altogether? It is Monday, October 19, 2026, three days before the Q3 risk committee. Here is what happens next, screen by screen, in the working solution.

  1. 01Monday morning

    What waits for the CRO, on one screen

    Margaret Doyle · Chief Risk Officer

    Margaret's home shows four numbers: 12,000 results from Friday's weekly run, 4 portfolios over a limit plus 1 provisional, 3 items waiting for her — one scenario and two breach decisions — and the risk committee on Oct 22 with 6 of 7 pack sections drafted. Under Needs you, each item has one action. Beside it, the agents' overnight work and a conversation she can ask anything.

    “SC-2026-041 "Japan policy shock" waits for your approval. The overnight preview ran all 300 portfolios: 1 over its limit, 6 at 90% or more.”

  2. 02The scenario composer

    A column of factor shocks beside every portfolio's loss

    Kenji Watanabe · Market risk analyst

    SC-2026-041 “Japan policy shock: BoJ ends bond buying”, v3, hypothetical, 10-day horizon, reads top to bottom as 12 factor shocks: JGB 10-year +80bp, JGB 30-year +95bp, US Treasury 10-year +10bp, USD/JPY −14%, US high yield spreads +140bp, TOPIX −16%, gold +4% and five more. Each shock carries its source and the historical window it echoes. On the right, every portfolio's loss in basis points of NAV is a ranked bar against its own limit, with the three driving positions under it.

    “Propagated by the risk engine to 1,840 risk factors, with correlations from the 1990–2026 stress windows.”

  3. 03Japanese beside English

    Every shock pinned to the sentence it rests on

    Scenario agent

    The Scenario agent drafted v1 on Oct 14 from four sources: the Bank of Japan's July 31, 2024 statement on its reduction plan for JGB purchases, its June 2025 interim assessment, the July–August 2024 yen carry trade unwind as a market window, and Quillfield's own house view note. The statement opens in its original Japanese beside an English text aligned sentence by sentence, and each highlighted passage links to the shock it supports.

    “The original is the record; the English is aligned sentence by sentence.”

  4. 04Oct 15, 9:30 p.m. ET

    A second agent tests every shock against history

    Calibration agent

    The Calibration agent tested the 12 shocks against daily factor history from 1990 to 2026, scaled to the 10-day horizon, and ran three consistency checks: joint plausibility 1-in-150. It sent two back. US Treasury 10-year −15bp contradicted the scenario's own story, since Japanese investors selling foreign bonds push US yields up; Kenji accepted +10bp. JGB 10-year +80bp sits beyond every 10-day move since 1999 — the largest was +63bp in the 2003 “VaR shock” — and the agent suggested +60bp.

    Kenji kept it, on the record for the CRO: “Keep +80bp. The scenario removes the Bank’s promise to buy more when yields jump; in 2003 it was still buying.”

  5. 05Overnight preview

    Ask why, and the answer names the positions

    Explainer agent

    The Run agent previewed v3 on all 300 portfolios overnight, full revaluation on the risk engine: one over its limit, six at 90% or more. Asked why Quillfield Global Balanced Fund breaches, the Explainer agent answers with citations: it loses 312bp of NAV ($443.0M) against a 300bp limit, and three positions drive 285bp of it — the short-yen forward overlay −126bp, the global equity sleeve −118bp and the JGB 20Y 1.1% Mar-2046 −41bp. Without the overlay, the fund would lose 186bp.

    Asked why +80bp was kept: “At +60bp, Global Balanced would lose 302bp, still 101% of its limit: the breach comes from the yen, not the JGB shock.”

  6. 06One portfolio

    The loss, position by position, and a what-if

    Elena Marchetti · Portfolio manager, Global Balanced

    The fund page for QF-0007 — USD, NAV $14.2B, uses derivatives under Rule 18f-4 — breaks the 312bp into factors and positions as of the Oct 16 close: the USD/JPY forward overlay, short ¥199.7 billion against the dollar, 9.0% of NAV, costs $178.9M. Below sit all 40 official scenarios against the fund's limit. The what-if halves the overlay to 4.5% of NAV: the fund would lose 249bp, 83% of its limit.

    “The Explainer never recommends a trade. Trades are decided by the PM and placed in the order management system.”

  7. 07Review and decide

    The CRO decides, with a reason code

    Margaret Doyle · Chief Risk Officer

    The decision sheet sums up the case: drafted by the Scenario agent, then Kenji as maker; calibration 10 within range, 1 changed, 1 kept with a reason; the preview's results; and the effect on the official set — it replaces SC-2024-017 “BoJ yield-curve band widening”, retired because yield-curve control ended in March 2024, so the set stays at 40. Margaret picks a reason code — A1 approve, A2 approve with a condition, R1 return to the analyst, X1 reject — and writes her comment on the record.

    Kenji drafted it, so he can never approve it: the bar reads “Maker: Kenji Watanabe · checker: you”.

  8. 08Official since today

    The scenario joins the weekly run, and a breach clock starts

    Escalation agent

    SC-2026-041 v3 joins the weekly run on Fri Oct 23. The provisional breach becomes case BR-2026-122 for Global Balanced, and the Escalation agent notifies Elena Marchetti, who has two business days to respond — by Wed Oct 21. SC-2024-017 is retired, and the official set stays at 40.

    “SC-2026-041 v3 is official · BR-2026-122 opened · Elena Marchetti notified”

  9. 09A breach on the clock

    The PM's answer and the CRO's decision on one record

    Margaret Doyle · Chief Risk Officer

    Breach BR-2026-118: Quillfield Global Macro Fund loses 538bp in the US term premium spike scenario, 108% of its 500bp limit, driven by long 10-year Treasury futures (−301bp). Daniel Okafor answered on Oct 19: cut those futures by 40% by the close on Oct 21, taking the loss to about 420bp. Margaret's decision is due Oct 26, with reason codes D1 to D5; unresolved cases reach the risk committee at 10 business days.

    D2, accept within tolerance: “Not available: 108% is over the 102% tolerance.”

  10. 10Thursday's committee

    The committee pack and regulatory extracts, from signed runs only

    Committee pack agent

    The Q3 2026 pack was drafted from signed runs WR-2026-30 to WR-2026-42: 13 weekly runs, 156,000 results. Every underlined number opens its run, scenario version and as-of date. The regulatory extracts use the same signed runs: Rule 18f-4 weekly stress results for the funds that use derivatives, the Form PF Question 42 factor effects for the Global Macro Fund, and the quarterly UCITS stress summary under ESMA guidelines.

    “Factor sizes per the firm’s Form PF methodology; amended Form PF compliance date July 1, 2027.”

Who it’s for

Built for everyone who answers for a stress number.

The same scenario, seen by five of the people who carry it — what the weeks looked like, and what they look like now.

MD
Margaret DoyleChief Risk Officer, New York · approves every scenario, decides breaches, signs the pack
Chief Risk Officer
Before
Asks what a central bank move would do to the portfolios, and gets an answer weeks later in a deck she cannot trace.
Now
Opens one screen that shows what breaks, why and who owns it — and approves each scenario with a reason code before the committee asks.
KW
Kenji WatanabeMarket risk analyst, Singapore · drafts and calibrates scenarios; never approves
Market risk analyst
Before
Can draft a scenario in a morning from central bank texts in Japanese and English; getting it agreed takes a month.
Now
Starts from a cited draft, answers the Calibration agent's two objections on the record, and submits a scenario with its argument already on the record for the CRO.
EM
Elena MarchettiPortfolio manager, Quillfield Global Balanced Fund, London · answers breaches for her funds
Portfolio manager
Before
Hears about a breach by email, with no clear driver and no deadline for her answer.
Now
Sees only her own funds, the position behind each loss and a two-business-day clock — and tries an illustrative what-if before she replies.
RL
Robert LindqvistIndependent member of the risk committee · reads the pack, asks questions
Independent risk committee member
Before
Reads committee numbers pasted into slides, with no way to see where they came from.
Now
Clicks any number in the pack to see its run, scenario version and date, and asks his question in the pack before Thursday.
SB
Samuel BrooksInternal audit · read-only; exports evidence
Internal audit
Before
Reviews the stress testing program from shared drives where scenario versions and approvals cannot be reproduced.
Now
Exports one sealed evidence pack for a scenario, a run or a quarter — every version, run, decision and source, with hashes.
Built on the engine

7 agents. Each with one job, and hard limits.

Seven agents draft, calibrate, run and explain every scenario; the analyst prepares and the CRO approves.

Scenario agent

Drafts factor shocks from central bank statements, financial stability reports and market events in any language, in the risk engine's own factor set; every shock cited to a source passage and page, or to a historical window.

  • Never makes a scenario official
  • Never sets a shock without a cited passage or window
  • Asks a person below 0.80 confidence on a shock
Calibration agent

Tests each shock against daily factor history from 1990 to 2026 — percentile, nearest analogs, horizon scaling — and the shocks against each other, and sends back anything outside the plausible range with a suggestion.

  • Never changes a shock itself; only suggests
  • Beyond 1-in-100 needs a written reason; beyond 1-in-500 is blocked
  • Cannot approve
Run agent

Runs previews and the weekly run: pulls positions from portfolio accounting and the order management system, prices from two market data vendors, maps instruments to risk factors, sends batches to the risk engine, retries and reconciles.

  • Never changes positions or prices
  • Official results only from approved scenario versions
  • Holds a portfolio rather than guessing a price
Explainer agent

Names the positions and factors behind each loss in plain words, each cited, and answers why questions from the CRO, portfolio managers and the committee.

  • Never recommends a trade
  • What-ifs are labeled as illustrations
  • Asks a person below 0.85 confidence on a driver
Escalation agent

Compares losses to limits, opens breach cases, starts the clocks, notifies and chases portfolio managers, and escalates to the risk committee at 10 business days.

  • Never accepts or closes a breach
  • Never contacts clients
Committee pack agent

Drafts the quarterly risk committee pack and the regulatory extracts — Rule 18f-4, Form PF Question 42, UCITS — from signed runs only, and flags what changed since last quarter.

  • Never includes an unsigned number
  • Never sends the pack
Evidence agent

Seals every scenario version, run and decision with a hash and builds evidence packs for auditors and regulators.

  • Read-only on everything it seals
Chief Risk Officer

Approves every scenario. The agents propose; a named person decides.

Ask in plain words

Ask why, in plain words

Ask about any scenario, portfolio, breach or run. The agent that knows answers, and every answer cites the run, the scenario version or the source it came from.

Why does Global Balanced breach?

Global Balanced loses 312bp of NAV ($443.0M) in SC-2026-041 v3, 12bp past its 300bp limit. Three positions drive 285bp: the short-yen forward overlay −126bp, the global equity sleeve −118bp and the JGB 20Y 1.1% Mar-2046 −41bp. The overlay was opened on Sep 14; without it the fund would lose 186bp.

Why keep JGB +80bp?

JGB 10-year +80bp over 10 days is beyond every 10-day move since 1999; the largest was +63bp in Jun–Jul 2003. The Calibration agent sent it back and suggested +60bp. Kenji Watanabe kept +80bp with a reason: the scenario removes the Bank's promise to buy more when yields jump, and in 2003 the Bank was still buying. At +60bp, Global Balanced would still lose 302bp, 101% of its limit.

What if the yen move is −12%?

At USD/JPY −12% instead of −14%, the overlay loses 108bp instead of 126bp, and Global Balanced loses 294bp, 98% of its limit: a warning, not a breach. The house view note puts the move at 12% to 15%; −14% sits inside that range, at the 99.7th percentile.

Is the committee pack ready?

The Q3 pack has 7 sections; 6 are drafted from signed runs WR-2026-30 to WR-2026-42. Section 5, on the Japan scenario, waits for your approval of SC-2026-041; until then it is marked provisional. Robert Lindqvist has asked one question on section 4.

Every screen

The working solution, as it ships.

13 screens from the working solution, on its sample data. Pick one to see it large.

The CRO's morningStress testing at a glance: the weekly run's 12,000 results, breaches over a limit, what waits for the CRO, the next risk committee, the agents' overnight work and a conversation that cites the run.
The scenario composerA hypothetical stress scenario as a column of 12 factor shocks, each with its source and historical analog, beside every portfolio's stress loss ranked against its own limit with the three driving positions.
The source, in its own languageA Bank of Japan statement in Japanese beside an English text aligned sentence by sentence; each highlighted passage links to the factor shock it supports.
Calibration against historyHistorical stress testing of each shock against 1990–2026 daily factor history — percentile, nearest analogs, verdict — with consistency checks and the analyst's answer to the two shocks sent back.
Ask why a portfolio breachesScenario analysis in conversation: the Explainer agent names the positions behind a stress loss, each answer cited to the run and the scenario version.
One portfolio, position by positionGlobal Balanced's loss by factor and position, all 40 official scenarios against its limit, the Explainer's cited note and an illustrative what-if that is never an order.
The CRO's decisionApprove, approve with a condition, return or reject a scenario with a reason code, with the calibration record, the preview and the scenario it retires.
Official, and a clock startedThe approved scenario joins the weekly run, the provisional breach becomes a case and the portfolio manager is notified with two business days to respond.
A breach caseA stress test limit breach with its drivers, its clock, the portfolio manager's action plan and the CRO's decision by reason code, with tolerance enforced.
The weekly stress runPortfolio stress testing every week: 300 portfolios against 40 scenarios, each step of the Run agent, a recovered timeout, and six exceptions with a fix a person applies.
Regulatory extractsRule 18f-4 weekly stress results for derivatives funds, Form PF Question 42 factor effects and the UCITS quarterly stress summary, all from the same signed runs as the risk committee pack.
The evidence packOne export for auditors and regulators: scenario versions with their sources, the calibration record, runs, results, decisions and breach cases, every hash verified.
Roles and segregation of dutiesWho may draft, run, approve, decide, sign and export, with the segregation-of-duties rules the solution enforces; every settings change versioned and approved by a second person.
Governance

Stress testing and scenario analysis your committee and examiners can check.

Every shock and every loss citedEach factor shock cites a source passage, with its page and original language, or a historical window. Each loss cites the run, the scenario version and the positions as of that date.
The drafter never approvesThe analyst drafts and submits; only the CRO approves, returns or rejects. A portfolio manager never decides a breach on their own fund, administrators approve nothing, and a limit change needs the CRO and the committee chair.
A reason code on every decisionScenario decisions carry codes A1 to X1, breach decisions D1 to D5, and every human override a code from O1 to O5 with a comment. Acceptance within tolerance is allowed only up to 102% of a limit.
Agents propose; people decideNo agent may make a scenario official, change positions or prices, recommend a trade, close a breach, send the committee pack or contact a client. Official results come only from approved scenario versions.
Sealed, and kept for seven yearsEvery scenario version, run, approval and breach decision is on an immutable audit trail — who, what, when, why and the evidence — sealed with a hash and kept for 7 years, ready to export as one evidence pack.
Versioned agents, tested before releaseEach agent has a versioned instruction set and an approved model, and is evaluated on a set of past results before a new version goes live. The Scenario and Explainer agents ask a person below a set confidence. No firm data is used to train models.
Configuration

Your limits, clocks and scenario rules

How scenarios are approved and breaches are handled, set by the firm. Every change is versioned and needs a second person; roles enforce segregation of duties.

SettingDefaultChoose from
Warning threshold90% of limitshare of limit that raises a warning; breach at 100%
Tolerance band102%the most of a limit the CRO may accept
PM response clock2 business daysfrom the case opening
CRO decision clock5 business daysfrom the PM's response; committee escalation at 10
Official set size40kept constant; additions retire or replace
Calibration1990–2026 daily historyshocks rarer than 1-in-100 need a written reason; rarer than 1-in-500 are blocked
Review every official scenario12 monthsre-approved by the CRO
Weekly runFri 10:00 p.m. ETevery portfolio against every official scenario; previews on demand
Connections

Works with your risk engine and the systems behind it

Risk enginefull revaluation, in batches; the solution drives it, it does not replace it
Portfolio accounting and the order management systempositions every day, orders and tickets live, reconciled before each run
Market data vendorsprices, curves and spreads from two vendors, and daily factor history 1990–2026
Fund administrator and custodianprivate fund valuations by daily file, positions and cash
Document managementcentral bank texts in their original languages, house view notes, packs and evidence
Email and chatbreach notices, reminders and approvals, routed by role
What it changes

The difference, in numbers.

Every figure is labelled: a target the solution is built to, an estimate, a typical published result, or a proven one.

target
1day
from a central bank statement to an approved scenario, drafted in hours
Today3–6 weeks (estimated)
With agents≤ 1 business day
target
12,000
results a week: every portfolio against every official scenario; Rule 18f-4 requires weekly stress tests
300 × 40
every week, not a sample
target
100%
of committee and regulatory figures cited to a signed scenario version and run
every number
Form PF, 18f-4, UCITS

“demo” = seen in the working solution, on its sample data · “target” = the design goal, measured in the live solution · “estimated” = our estimate · “typical” = published requirements (SEC Rule 18f-4 — stress testing at least weekly for funds with a derivatives risk management program, results reported to the board; SEC/CFTC extension of the amended Form PF compliance date to July 1, 2027, Aug 31, 2026). Quillfield Capital and every person, fund and client named on this page are fictional — characters and sample data in the working solution. Real central banks, indices and historical market windows appear only as sources and analogs.

Questions

What CROs ask about stress testing and scenario analysis.

What is stress testing and scenario analysis?

Stress testing and scenario analysis shows what a market shock would do to every portfolio. In market risk stress testing, a scenario sets moves in rates, currencies, credit spreads, equities and commodities, and each portfolio's loss is measured against its own limit. Stress Testing and Scenario Analysis adds seven agents that draft historical and hypothetical scenarios from central bank texts, test each shock against history, run every portfolio weekly and explain every loss, while the analyst prepares and the CRO approves every scenario.

What is the difference between stress testing and scenario analysis?

Used together in risk management, scenario analysis defines the event and the stress test measures what it would cost. In the working solution, a scenario is a named set of factor shocks: historical, replaying a window such as the August 2024 yen carry unwind; hypothetical, an event that has not happened, such as the Bank of Japan ending bond buying; or regulatory. The stress test runs that scenario against every portfolio on the risk engine and compares each loss with the portfolio's own limit.

Does it help with Rule 18f-4 weekly stress testing, Form PF and UCITS reporting?

The weekly run puts every portfolio against every official scenario each Friday night. From the same signed runs, the Committee pack agent drafts the Rule 18f-4 weekly stress results for funds that use derivatives, the Form PF Question 42 factor effects for the hedge fund vehicle and the quarterly UCITS stress summary under ESMA guidelines, each figure linked to its run. The CRO signs the pack; under Rule 18f-4, the derivatives risk manager reports the results to the board.

How does the AI draft a stress scenario from a central bank statement?

The Scenario agent reads the statement in its original language, aligns an English text sentence by sentence, and proposes each factor shock with the passage and page it rests on, or the historical window it echoes. The Calibration agent, a separate agent, then tests every shock against 1990–2026 history and sends back what is implausible. The analyst changes it or keeps it with a written reason the CRO sees.

Does it replace our risk engine?

No. The Run agent drives your existing risk engine: it pulls positions from portfolio accounting and the order management system, prices from your market data vendors, maps instruments to risk factors and sends the batches. It reconciles the totals to NAV and holds a portfolio rather than guessing a price.

Does the AI change positions, recommend trades or approve scenarios?

No. The agents never change positions or prices, never recommend a trade, never make a scenario official, never close a breach and never send the committee pack. What-ifs are labeled as illustrations; trades are decided by the portfolio manager and placed in the order management system.

Do people stay in control of the official scenario set?

Yes. The analyst who drafts a scenario can never approve it; only the CRO approves, returns or rejects, with a reason code. Portfolio managers answer breaches on a two-business-day clock, the CRO decides each one, limit changes need the CRO and the committee chair, and every step is on a sealed audit trail.

How long does it take to go live?

The Agentic Solution Engine builds and deploys it from your requirements and documents — your scenario set and rules, limit register, roles and the systems your risk engine already uses — and it goes live once every quality gate has passed. We will walk you through it on your own portfolios first.

See it on
your portfolios.

We'll run Stress Testing and Scenario Analysis on your own scenarios, limits and risk engine.