Turn distribution parameters into a min–max range
convert_distribution_to_rangeTurns a distribution's parameters into the low and high ends of the range that holds a chosen share of outcomes, by default the middle 90%. It also gives the mean, median, mode, standard deviation and any percentiles you ask for. If you give a threshold, it gives the chance of landing below and above it. Use this when you have distribution parameters, from a model or from fermi (a companion forecasting server from Kromatic, the company behind Neumann, whose estimates carry next_steps.simulate.root_node), and want to know what they mean in plain numbers. Its reverse is convert_range_to_distribution, and the range it returns can be passed straight back to it. Values that do not apply, such as a uniform distribution's mode, come back as null with a note explaining why. Cost: free; uses no credits and no free runs.
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": {
"distribution_type": "<distribution_type>",
"distribution_params": "<distribution_params>"
},
"name": "convert_distribution_to_range"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| quantiles | No | A list of percentiles to report. Each is a fraction from 0 to 1: 0.05 is the 5th percentile, the value 5% of outcomes fall below. No repeats. Default [0.05, 0.1, 0.5, 0.9, 0.95], returned under keys p5, p10, p50, p90 and p95. | |
| threshold | No | Optional value to compare against. The result gives the chance of being at or below it and the chance of being above it. For whole-number distributions it gives the chance of being below and above it, and notes the chance of landing exactly on it. | |
| percentile_range | No | A single fraction: the share of outcomes the returned range should hold, centred on the median. The default 0.9 means the middle 90%, so the range runs from the 5th to the 95th percentile. | |
| distribution_type | Yes | The distribution's name. Accepts every type a model input accepts: normal, log_normal, uniform, triangle, beta (values are fractions from 0 to 1), gamma, exponential, poisson, bernoulli, binomial, categorical, constant, discrete_normal, discrete_lognormal and discrete_gamma. categorical returns no range. dirichlet, multivariate_normal and constant_array produce lists of values, so every number comes back null. This is wider than convert_range_to_distribution, which cannot fit poisson or categorical. | |
| distribution_params | Yes | The distribution's parameters, in the same form a model input uses, for example {"mean": 100, "std": 15} for normal or {"mu": 9.2, "sigma": 0.6} for log_normal. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| std | Yes | ||
| mean | Yes | ||
| mode | Yes | ||
| notes | No | Explanations, for example why a value is null, or the chance of landing exactly on the threshold for whole-number distributions. | |
| median | Yes | ||
| billing | No | Who you are and what this call cost: principal, auth source, credits debited and balance, or the anonymous allowance left today. | |
| support | Yes | ||
| interval | Yes | The range holding the chosen share of outcomes, in the input shape convert_range_to_distribution accepts. Null where a range does not apply. | |
| quantiles | Yes | Requested percentiles, keyed p5, p50 and so on. | |
| threshold | Yes | Chances of landing below and above the threshold. Null when no threshold was given. | |
| distribution_type | Yes | ||
| distribution_params | Yes |