# Your first decision

> One request, three questions and the answer to each, taken apart line by line.

Source: https://opendecisio.com/docs/first-request/

A decision is a text and typed questions about it. You send them in one request, and the server answers each question on its own: a probability for every option. This page takes one recorded decision apart; hover or focus a line of the figure to see its partner.

 

[Figure: Every question gets its own answer, with a probability for every option. The request, one support ticket with 3 questions (urgent, queue, impact), beside the response. Hovering a question, an option or the text highlights its partner. &#x22;urgent&#x22;: a yes/no question. The answer is one number, the probability of yes: 0.159. &#x22;queue&#x22;: a choice among 6 named options. The answer names the likeliest, billing, and gives every option's probability; they add up to 1. &#x22;impact&#x22;: a score on an ordered scale of 4 levels, lowest first. The answer is a probability for each level; level 1 is the likeliest, at 0.648.]

 

## TL;DR

 

With a server running ([Get started](https://opendecisio.com/docs/) starts one), send the request and read the answer:

 

```
curl http://127.0.0.1:8000/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{
  "state": "I was charged twice for October. Both charges are 49.00 EUR, same day. Please refund one.",
  "questions": {
    "urgent": {
      "type": "noul",
      "instructions": "Does this ticket need a response within the hour?"
    },
    "queue": {
      "type": "choice",
      "instructions": "Which team should handle this ticket?",
      "criteria": {
        "billing": "Invoices, payments, refunds, prices, VAT",
        "access": "Login, passwords, two-factor, SSO, permissions, invitations, account security",
        "bug": "The product behaves wrongly: errors, crashes, wrong numbers, lost data",
        "feature": "A request for something the product does not do yet",
        "cancellation": "Cancelling, pausing or closing an account, deleting data",
        "other": "Press, partners, jobs, sales pitches, wrong address, thanks, general questions"
      }
    },
    "impact": {
      "type": "score",
      "instructions": "Rate the business impact using only the reported facts.",
      "criteria": [
        "No function impaired",
        "One user impaired, with a workaround",
        "Many users blocked from a core function",
        "Data loss or legal exposure"
      ]
    }
  }
}'
```

 

Run against the CPU stand-in at v0.11.1 on 2026-10-14: the answers are the stand-in's, not the measured system's.

 

```
{
  "answers": {
    "urgent": {
      "type": "noul",
      "noul": 0.159
    },
    "queue": {
      "type": "choice",
      "choice": "billing",
      "probabilities": {
        "billing": 0.962,
        "access": 0.011,
        "bug": 0.016,
        "feature": 0.004,
        "cancellation": 0.005,
        "other": 0.003
      }
    },
    "impact": {
      "type": "score",
      "probabilities": {
        "0": 0.256,
        "1": 0.648,
        "2": 0.053,
        "3": 0.042
      }
    }
  }
}
```

 

Recorded output.

 

Recorded decision: Gemma 4 31B, decisio 0.9.0, RTX PRO 6000 at 600 W, 2026-10-08; record 1 of 60 of decisio-examples' support-routing run; the response is abridged and its probabilities are rounded to three places.

  

| Word | Meaning |
| --- | --- |
| `noul` | a yes/no question; its answer is the probability of yes |
| `choice` | a choice among named options (up to 255); the answer names the likeliest and gives every option’s probability |
| `score` | a level on an ordered scale, lowest first; the answer is a probability for each level |
| `criteria` | what the options are: for a choice, option keys and their descriptions; for a score, the levels’ descriptions |

 

## 1. The text

 

`state` is the text the questions are about. A prompt, the state with one question, can hold up to 32,768 tokens, and the server reads the state once for all the questions in the request.

 

## 2. The questions

 

Each question has a name you choose, which is also its key in the answer, a `type` and `instructions`. The options of a choice are its `criteria`: a key for each, with a description the model reads. Leave `instructions` out and a fixed default per type is used.

 

## 3. The answer

 

The response has one answer per question, under the same name. A choice answers with its likeliest option and the probability of every option, so you can read how sure it is as well as what it picked.

 

Common mistake

The answer keys are always the request’s own. Rename an option in the request and the answer uses the new name; a registered task, though, is found by its options in order, so renaming one makes a different task.

 

## 4. One question on its own

 

Each question is scored on its own, so a question in a request is answered as if it had been sent alone. On the Qwen base its probabilities are the same; on the Gemma bases the choice is the same and the probabilities agree to within 0.035 (12B) and 0.0073 (31B). Ask only the queue:

 

```
curl http://127.0.0.1:8000/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{
  "state": "I was charged twice for October. Both charges are 49.00 EUR, same day. Please refund one.",
  "questions": {
    "queue": {
      "type": "choice",
      "instructions": "Which team should handle this ticket?",
      "criteria": {
        "billing": "Invoices, payments, refunds, prices, VAT",
        "access": "Login, passwords, two-factor, SSO, permissions, invitations, account security",
        "bug": "The product behaves wrongly: errors, crashes, wrong numbers, lost data",
        "feature": "A request for something the product does not do yet",
        "cancellation": "Cancelling, pausing or closing an account, deleting data",
        "other": "Press, partners, jobs, sales pitches, wrong address, thanks, general questions"
      }
    }
  }
}'
```

 

Run against the CPU stand-in at v0.11.1 on 2026-10-14: the one question alone, as the stand-in answers it.

 

## What next

 

- [Get started](https://opendecisio.com/docs/): start a server on any machine.
- [Teaching it a task](https://opendecisio.com/docs/tasks/): register a question you ask again and again.
- [The HTTP API](https://opendecisio.com/docs/api/): every route, request field and response field.
