---
title: The eNPS model
description: What the single recommend-a-friend question asks, exactly how the score is worked out, and how it differs from a multi-dimension check
order: 4
---

eNPS is SquadBear's built-in one-question model - a "would you recommend working
here" score on the standard Net Promoter Score scale and arithmetic.

## The question

eNPS has exactly one dimension, "Recommend as a place to work": *how likely are you to
recommend this company as a place to work*, rated 0 (Not at all likely) to 10 (Extremely
likely). It ships fixed - built-in models cannot be edited. A model you build at Team
health → Health settings can be renamed and gain dimensions.

eNPS returns one comparable number per run. A multi-dimension model - Pulse 5, Team
Health 11 - attributes a score to each named dimension.

## How the score is worked out

Every 0–10 rating buckets into one of three groups: **9–10 is a promoter, 7–8 is a
passive, 0–6 is a detractor** - the standard NPS split. The score is percent promoters
minus percent detractors, rounded to a whole number from **−100 to 100**. Three ratings of
9, 9 and 3 make two promoters and one detractor: (2−1)/3 = 33%, so the run reads 33.

The score comes from the distribution a run collected, never from stored per-response
numbers, and it is frozen in the run's snapshot at close. Closing an Alias or Anonymous
run also rotates every author hash, so contribution-to-person is unrecoverable afterwards.
A closed run cannot be reopened.

## How it appears in trends

On [Health trends](/docs/health/trends/), an eNPS row plots the −100..100 score, never
the raw 0–10 average, and formats it signed - +27. A dimension with no revealed value
shows a dash.

The change-since-last-run figure is average-based, so on an eNPS row it would be a 0–10
delta beside a −100..100 headline - the row omits it here and on the run's own results
page. The average still drives the alert: closing a run notifies its facilitators of any
dimension whose average fell by at least 15% of its scale range, 1.5 points on eNPS's
0–10.

## Running a check

Start one at Team health → Health checks → **New health check**, model **eNPS**. **Show
results after** sets how many answers the dimension needs before the close snapshot
reveals a score - it defaults to 3, and 1 reveals from the first response. In Anonymous
mode the roster withholds names: the response count is visible, the names are not. The
only schedule control is **Automatically closes** - past that deadline ratings are refused
with a 409 and the nightly job closes the run.

## Worked example

Ahead of a board update, Marta opens Northlake's first eNPS check on the Platform team,
anonymous, then invites the other ten people from Northlake's other teams through **Manage
participants** on the run. All 15 answer: two rate 10, five rate 9 (seven promoters), three
rate 8, two rate 7 (five passives), and one each rate 5, 4 and 3 (three detractors).
(7−3)/15 = 26.7%, which rounds to **27** - the number Northlake compares its next eNPS run
against. Because the check runs on Platform, that is the team whose Health trends page
carries its line.

> [!AGENT]
> Start an anonymous eNPS check on Northlake's Platform team, invite the rest of Northlake, and open it. When everyone has answered, move it to discussion and tell me the score.

## Related

- [Team health checks](/docs/health/why/)
- [Read a team's health trends over time](/docs/health/trends/)
- [Turn results into improvement actions](/docs/health/actions/)
