Rank which inputs drive an outcome most (one-at-a-time sensitivity)
rank_inputs_by_impactRanks a model's uncertain inputs by how much each one moves a chosen outcome, and returns the data for a tornado chart. A tornado chart is a bar chart with one horizontal bar per input, sorted with the biggest swing at the top. This is a one-at-a-time (OAT) sensitivity analysis. Every input is held at its median while one input at a time is set to low, middle and high values from its own distribution (by default its 5th, 50th and 95th percentiles). The tool records how the outcome's average changes. Use this when you need to know which assumption matters most, so you know what to research or de-risk first. It returns one entry per input, ranked so rank 1 has the biggest impact. Each entry lists the input values tried, the outcome at each, and an elasticity score. Elasticity means how strongly the outcome reacts: roughly, how many percent the outcome moves when the input moves 1 percent. It returns numbers, not an image. Inputs whose distribution produces a list of values are skipped. It always returns a run_id. It runs the model once per input per value tried, so on a big model it can take minutes: if it is not done in about 40 seconds you get status running, and get_simulation_results gives you progress and then the ranking. Cost: without an account, 1 of your 3 free runs per UTC day for each call, even though the analysis runs the model many times (models up to 1,000 trials and 20 nodes); with an account, 1 credit for a small model or 5 for a large one, currently $0.50 per credit. A model that is invalid or over the no-account limits is rejected before running and costs nothing. If it fails mid-run: anonymous, the free run is used; account, already charged, because this tool charges when the analysis starts.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"graph": "<graph>"
},
"name": "rank_inputs_by_impact"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional whole number that fixes the random draws, so repeating the call gives the same result. Exact repeats are guaranteed only for small runs, where trials × nodes × time periods is at most 100,000. | |
| graph | Yes | The model: root_nodes (uncertain inputs), calc_nodes (formulas), edges (links; formulas refer to them like {e1}) and run_params (trials and time periods). Same format as run_monte_carlo_simulation's graph, which documents formulas, periods, distributions and financial metrics in full. | |
| detail | No | How much to return. summary (the default): one row per input with its rank, its low and high values, the outcome at each, the swing between them and its elasticity. full: also each input's whole response curve. | summary |
| quantiles | No | A list of points in each input's own distribution to try. Each point is a fraction from 0 to 1 naming a percentile: 0.05 is the 5th percentile, the value 5% of outcomes fall below. Default [0.05, 0.5, 0.95]. Give this or num_quantiles, not both. | |
| time_period | No | Index of the time period to measure, counting from 0: with 12 monthly periods, 11 is month 12. Defaults to the last period. This measures the node's value in that one period, not a total. For a cumulative figure such as year-one profit, add a running-total calc node with formula {e1} + {e2}, where e1 brings in the per-period value and e2 is an edge from the running-total node to itself with delay 1. Then target that node at index 11. This delayed self-edge is allowed; only loops with no delay are errors. In run_monte_carlo_simulation, use a cumsum metric instead. | |
| num_quantiles | No | Instead of quantiles: how many points to try, an even whole number from 2 to 10. That many percentiles are spread evenly between the 5th and 95th, and the median (0.5) is added. 2 gives [0.05, 0.5, 0.95]; 4 gives [0.05, 0.275, 0.5, 0.725, 0.95]. | |
| target_node_id | No | The id of the outcome node to measure. Defaults to the last calc node in the model, which is usually the final outcome. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | ||
| status | No | completed | |
| billing | No | Who you are and what this call cost: principal, auth source, credits debited and balance, or the anonymous allowance left today. | |
| results | No | One entry per input, in rank order (rank 1 = biggest impact). | |
| tornado | No | ||
| progress | No | Present while the run is queued or running. | |
| next_step | No | What to do next while the run is still going. | |
| quantiles | Yes | The percentiles of each input that were tried, as fractions. | |
| time_period | Yes | The period measured (index counted from 0). | |
| runs_executed | Yes | Internal simulation runs used: 1 baseline plus inputs × quantiles. You are billed once. | |
| target_node_id | Yes | The outcome node measured. | |
| credits_debited | No | Credits charged (0 without an account). | |
| baseline_outcome | No | The outcome's mean with every input at its median. | |
| inputs_not_shown | No | ||
| estimated_seconds | No | Rough total run time, in seconds. |