Stress Tests
Compare a cash-flow baseline with explicit revenue, spend, hiring, collections, and FX assumptions.
Stress tests live in Finances → Forecast. The workbench calculates a no-driver baseline and an active scenario from the same workspace history, then shows how the assumptions change cash, runway, revenue, expenses, and breach risk.
A stress test is a model, not a budget and not a replacement for observed bank, transaction, or invoice data.
Before you start
You need:
- an Eigenn workspace with revenue and expense history
- enabled bank accounts for starting cash
- Owner or Member access to run forecasts and manage saved scenarios
- the Forecast feature enabled for the workspace
If forecasting is not available, the page shows Forecasting isn't enabled for this workspace yet. A Viewer also cannot execute the write-backed forecast run; ask a workspace Owner or Member to run it.
What the baseline uses
The baseline is derived from:
- workspace revenue and expense history for the active reporting window
- current balances from enabled bank accounts
- the selected reporting currency
- calibrated uncertainty when completed calibration data exists
The workbench automatically runs the baseline and scenario. There is no separate Run forecast button for unsaved assumptions: after you change a lever, the scenario refreshes automatically.
Select a horizon of 6 months, 12 months, or 24 months. The workbench runs 2,000 simulations for each displayed probabilistic scenario.
Build an active scenario
Use Assumption builder. The badge shows how many assumptions differ from the baseline.
Revenue
| Lever | Supported range | Meaning |
|---|---|---|
| Revenue shock | -80% to +80% | Temporary revenue change, with Duration and Starts after controls. |
| Revenue growth | -20% to +20% per month | Sustained, compounding change to the revenue trend. |
| Clients cancelling | 0% to 20% per month | Compounding customer attrition, optionally starting after a delay. |
Team
Headcount change supports -20 to +20 people. Set Cost per hire / month, Starts after, and Ramp months. A negative headcount change models lower monthly cost; a positive change models hiring.
Spend
- Expense surge supports -50% to +100%, with duration and start-offset controls.
- One-time expense adds one positive cash outflow on a selected date.
Timing
- Collections delay moves expected collections up to 45 days later.
- Collections acceleration moves expected collections up to 45 days earlier.
- Recovery rate change changes the recoverable share of overdue revenue by -20% to +20%.
FX
FX shock supports -50% to +50%. Enter a three-letter currency and choose Sticky or Spot. The model estimates foreign-currency exposure from enabled bank-account balances; when the workspace has no relevant exposure, the FX lever may have little or no visible effect.
Select Reset beside one lever or Reset all assumptions to return to the baseline.
Quick presets
Quick presets replace the current lever set with a complete scenario:
| Preset | Applied assumptions |
|---|---|
| Revenue drop | Revenue decreases 20% for three months. |
| Expense spike | Expenses increase 15% for three months. |
| Hiring plan | Adds two hires, beginning after one month and ramping over three months, at the default loaded monthly cost. |
| Slow collections | Collections arrive 21 days later. |
| Collections recovery | Collections arrive 15 days earlier. |
| Defensive cost plan | Models two fewer people and no revenue-growth lift. |
| Severe stress test | Revenue falls 30%, expenses rise 20%, and collections slip 30 days for six months. |
After applying a preset, adjust individual levers if the decision needs more specific assumptions.
Read the result
Forecast answer
The headline states whether median cash remains positive across the horizon or names the first month median cash turns negative.
The risk badge uses the probability of any negative-cash month:
| Badge | Probability |
|---|---|
| Low risk | less than 10% |
| Moderate risk | 10% to less than 25% |
| High risk | 25% to less than 50% |
| Critical risk | 50% or more |
Cash and runway figures
- Ending cash is the active scenario's median ending balance; the delta compares it with baseline.
- Minimum balance is the active scenario's low point and month.
- Runway P50 is the median outcome.
- P10 is the more conservative runway outcome.
- P90 is the more favorable runway outcome.
- A value such as >12 mo means cash did not breach within the selected 12-month horizon. It does not mean runway is unlimited.
- Cash-negative odds is the probability of at least one negative-cash month across the horizon.
Scenario cash trajectory
The solid scenario line is the median. The shaded region is the expected P10-P90 range. The dashed line is the no-driver baseline median.
If the chart says Not enough history to forecast, the engine could not build a usable series from the current workspace data.
Pressure states
The owner decision view labels each month:
| State | Meaning |
|---|---|
| Stable | Cash-negative odds are below 10%, net-negative odds are below 25%, and median cash remains nonnegative. |
| Watch | Cash-negative odds reach 10%, or net-negative odds reach 25%. |
| High | Cash-negative odds reach 25%, or net-negative odds reach 50%. |
| Critical | Median cash is negative, cash-negative odds reach 50%, or net-negative odds reach 75%. |
Use Cash runway decision timeline, Scenario comparison matrix, and Cash pressure by month to identify when a decision becomes urgent.
Baseline, active plan, and defensive plan
The comparison matrix keeps three rows separate:
- Baseline: no additional assumptions
- Active plan: the levers currently applied
- Defensive plan: Eigenn's lean-team preset
Selecting the defensive-plan action replaces the current lever set. It does not edit a budget or approve a business decision.
Model observed payment behavior
Turn on Model real payment behavior to shift expected collections using each client's observed payment lag and promise reliability.
When applied, the chart discloses:
- number of invoices adjusted
- total cash shifted between months
- reliability haircut
This is still a forecast overlay. For the underlying invoice status and collection analysis, use Invoices → Insights and Receivables.
Save and re-run a scenario
- Engage at least one assumption.
- In Saved scenarios, select Save current.
- Enter a name of up to 200 characters.
- Select Save.
A saved row shows its horizon and either not run yet or its latest summary.
- Load restores its drivers and horizon into the workbench.
- Run recalculates it against the latest history and updates the saved summary.
- Delete permanently removes the saved scenario.
Changing levers in the workbench does not update an existing saved scenario. Save a new named scenario when you want to preserve a different assumption set.
Run history and accuracy states
Run history shows up to eight recent persisted forecast runs returned for the workspace. Each completed run can show Runway P50, Min cash P10, and Breach.
Non-completed runs show their stored status. The Forecast accuracy strip means:
- Bands calibrated ✓: the latest calibration completed
- Bands calibrated ✓ · coverage N%: calibration completed and reports confidence-interval coverage
- Not enough history yet: the calibration could not evaluate the series
- Last calibration failed: the latest calibration did not complete successfully
- No calibration yet: no calibration row exists
An automatically refreshed, unsaved workbench scenario is not proof that a persisted history row was created.
What stress tests do not change
Running or saving a stress test does not:
- edit transactions or invoices
- change connected bank balances
- create or revise budgets
- post forecast values as accounting actuals
- create a public or embedded report
The scenario is encoded in the Forecast page's URL state. A copied link can restore the assumptions for another signed-in teammate, but the recipient still needs workspace and forecast access.
Verify a useful stress test
Before using the result in a decision, confirm:
- the horizon covers the commitment you are evaluating
- Assumptions active matches the levers you intended
- the active-assumptions summary contains the right amounts, dates, percentages, and delays
- baseline and active plan use the same currency and horizon
- you reviewed P10, P50, P90, and cash-negative odds rather than only the median
- the decision remains acceptable in the first Watch, High, or Critical month
Troubleshooting
Forecasting is not enabled
Confirm the workspace has Forecast access and that you are an Owner or Member. A Viewer cannot execute a forecast run.
The result stays on loading placeholders
Wait for all three comparisons to finish after changing the horizon or assumptions. If placeholders persist, reset assumptions and reload the page. Then check that connected cash and history are available.
A lever does not change the result
Confirm the lever is counted in Assumptions active. A one-time expense needs both a positive amount and a valid date. An FX shock needs a currency, a nonzero change, and relevant foreign-currency exposure.
Saved scenario says not run yet
Select Run on that saved scenario. Saving preserves the definition; running calculates and stores its latest summary.
Runway shows greater than the horizon
Increase the horizon from 6 to 12 or 24 months if you need a longer view. The label only tells you that no breach occurred inside the selected horizon.