> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insito.app/llms.txt
> Use this file to discover all available pages before exploring further.

# NPS scoring

> How Insito computes Net Promoter Score from raw 0–10 responses.

Net Promoter Score (NPS) is the canonical metric for "would you
recommend us?" surveys. Insito implements the standard formula —
nothing custom.

## The formula

```
NPS = %promoters - %detractors
```

Where each response (0–10) buckets as:

| Score | Bucket    | Conventional reading                                          |
| ----- | --------- | ------------------------------------------------------------- |
| 0–6   | Detractor | Unhappy. Will likely churn or actively recommend against you. |
| 7–8   | Passive   | Satisfied but not loyal. Easy to lose to competitors.         |
| 9–10  | Promoter  | Loyal advocates. Worth their weight in retention.             |

The output is a number from -100 (every respondent is a detractor) to
+100 (every respondent is a promoter). The benchmark for "good"
varies wildly by industry — SaaS averages around +30, mobile apps
around +10–20 depending on category.

## What Insito shows

Open a survey with an NPS question in the dashboard and you see:

* **NPS score** — the score across all responses.
* **Responses** — total count for context (NPS with n=5 is noise).
* **Promoters** and **Detractors** — the bucket counts behind the score.
* **NPS over time** — a daily trend line for the last 30 days (UTC buckets).

## Multiple NPS questions per survey

If a survey has more than one NPS question, the dashboard currently scores only
the **first** NPS question (the one with the lowest `position`). Additional NPS
answers are still stored on each response and available via the API, but they
aren't aggregated into a separate score in the dashboard yet.

## When NPS lies

Be careful interpreting NPS in these cases:

<Warning>
  * **Sub-30 responses**: NPS swings wildly at low n. Wait for at
    least 50 responses before treating the number as a real signal.
  * **Selection bias**: Triggers that fire only on happy-path
    moments (e.g. successful checkout) inflate NPS by \~10–15 points
    relative to a broader population.
  * **Frequency**: A user who saw the survey 5 times in 6 months
    will score lower the 5th time than the 1st, even if their
    sentiment is unchanged. Trust the [throttling](/concepts/throttling)
    default.
</Warning>

## Raw access

If you want to compute custom analytics, export the raw responses
via the API:

```bash theme={null}
curl -s "https://api.insito.app/v1/dashboard/projects/<projectId>/responses" \
  -H "Authorization: Bearer $JWT" \
  | jq '.responses[] | {submittedAt, answers}'
```

The endpoint returns `{ responses, total, limit, offset }`. Each NPS answer comes
back as `{ questionId, type: "nps", value: <number 0–10> }`.
See [Dashboard endpoints](/api/dashboard-endpoints).
