# Rate on a scale

> Rate text against an ordered rubric. Understand the fractional score and read the distribution across levels before choosing an application action.

Source: https://opendecisio.com/docs/concepts/score/

Use a score [question](https://opendecisio.com/docs/glossary/#question) to rate impact, urgency or quality against levels you define. With a [decisio server running](https://opendecisio.com/docs/), paste this request into a terminal:

 

```
curl --fail-with-body -sS --max-time 60 http://127.0.0.1:8000/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{
  "state": "My card keeps getting declined when I renew.",
  "questions": {
    "impact": {
      "type": "score",
      "instructions": "Rate the business impact using only the reported facts.",
      "criteria": [
        "No function impaired",
        "One user impaired, with a workaround",
        "One user blocked from a core function",
        "Many users blocked from a core function"
      ]
    }
  }
}'
```

 

Run against the CPU stand-in at v0.46.0 on 2026-11-13: the answer is the stand-in's, not a model-quality measurement.

 

[Download the request as JSON](https://opendecisio.com/examples/questions/score.json) to reuse it in your own client. This example uses the decisio endpoint; [Ollama’s guide](https://opendecisio.com/docs/deploy/mac/#on-a-laptop-with-ollama) gives its port and required model name.

 

## Define a rubric from low to high

 

Unlike a choice’s named [options](https://opendecisio.com/docs/glossary/#option), a score’s `criteria` is a list, ordered from lowest to highest. The first level has index 0.

  

| Level | Description in this example |
| --- | --- |
| 0 | No function impaired |
| 1 | One user impaired, with a workaround |
| 2 | One user blocked from a core function |
| 3 | Many users blocked from a core function |

 

Describe observable differences between neighboring levels. Here the question asks for reported facts, so a ticket should not imply a whole-team outage without evidence.

 

## Read the score and its levels

 

Read `answers.impact.score` and `answers.impact.probabilities` from the JSON response. These illustrative fields use chosen [probabilities](https://opendecisio.com/docs/glossary/#probability), rather than a measured model result:

 

```
{
  "type": "score",
  "score": 1.7,
  "legend": {
    "0": "No function impaired",
    "1": "One user impaired, with a workaround",
    "2": "One user blocked from a core function",
    "3": "Many users blocked from a core function"
  },
  "probabilities": {"0": 0.1, "1": 0.2, "2": 0.6, "3": 0.1}
}
```

 

A shape to fill in, not a command to run.

 

`score` is the probability-weighted mean of the level indices: `0 × 0.1 + 1 × 0.2 + 2 × 0.6 + 3 × 0.1 = 1.7`. It can be fractional, even though your rubric contains whole-number levels. The probability keys are strings such as `"2"`, and `legend` maps each index back to its description.

 

[Figure: The mean moves between rubric levels as the distribution changes. An illustrative four-level rubric. The initial probabilities are 0.10, 0.20, 0.60 and 0.10; their weighted mean is 1.70 and the likeliest level is 2.]

  Explore the request and answer fields 

[Figure: Find the field your code sends or reads. A request beside its answer. Four controls identify the text, question, options and answer. All field explanations are also available below.]

  

## Choose the action from your rubric

 

If your code needs the likeliest level, select the key with the largest value in `probabilities`; here that is level 2. If it needs an average rating for sorting, use `score`. Read the distribution before triggering an action: different mixtures of low and high levels can have the same mean.

 

Check the HTTP status before reading the answer, and keep a review or service-failure path in the application. For a category without an order, use a [choice question](https://opendecisio.com/docs/concepts/choice/).

 

## Good to know

 

- Keep the rubric stable when comparing scores over time; adding a level changes what the indices mean.
- Scores are not certified. Use [choice or yes/no tasks](https://opendecisio.com/docs/tasks/certify/) when you need [certified answers](https://opendecisio.com/docs/glossary/#certified-answer).
- The mean level is not a probability; use `probabilities` to inspect uncertainty over the levels.

 

## What next

 

- [Use the probabilities](https://opendecisio.com/docs/concepts/probabilities/): turn uncertain answers into a review policy.
- [Build a request](https://opendecisio.com/docs/build-request/): combine separate named questions about one text.
- [HTTP API](https://opendecisio.com/docs/api/#post-v1systemone): exact request and answer fields.
