Skip to main content
Sentiment answers one question: when an answer has an opinion about your brand, is it a good one? It does not answer “how do answers feel about us on average”, because most answers that name a brand hold no opinion about it, and scoring those would bury every real opinion under a pile of price quotes and feature lists.

The one rule: no stance is not neutral

Every successful answer is read for its stance on your brand. The stance is one of three things, or nothing: Neutral and No clear stance look alike and mean opposite things. “Ledgerly is one of several reasonable options” is a neutral verdict and counts. “Ledgerly starts at $12 per seat” names you and judges nothing; it is left out. Counting it as neutral would move your score whenever the mix of questions you track moved, which is not sentiment. Not scored yet is different again: it is the absence of a reading, not a reading. A new answer is not scored yet until it has been read for its stance, which happens after it is stored, never while it is being sampled.

How it is calculated

Every number on the Sentiment page divides by scored answers: the answers with a stance. Never by answers read.
The neutral and negative shares are the same over the same denominator, so the three sum to 100% of the scored answers. The sentiment score is the average stance of the scored answers on a scale from -1 to +1. Above +0.15 reads as mostly positive; below -0.15, mostly negative. A score of 0 is a real reading: the opinions cancelled out. A score of null, shown as —, means no answer in the window took a position, and there is nothing to average. The page shows both numbers beside each other, with their counts: the scored answers, the answers read, and the answers not scored yet. When the scored count is small, read it before the score. Five scored answers out of three hundred read is five opinions, not a verdict on your brand.

The Sentiment page

Analytics → Sentiment shows, for the window:
  • the score and the positive, neutral and negative shares, with the scored count;
  • the positive share’s change against the previous window of the same length, only when it clears the significance test;
  • the score by day and the positive share by day, as two separate charts. A day with no scored answer is a gap in the line, not a zero;
  • one row per answer engine and per topic, each dividing by its own scored count;
  • the scored answers themselves, each with the sentence that carries the stance, so you can check the score against the words.
Filtering by engine or topic recomputes every number for that cut. Filtering by stance only narrows the list of answers: the shares stay what they are, because a share filtered down to itself would always read 100%.

Flagging a score

If a stance looks wrong, flag the answer. A flag is a note that somebody on the workspace disagrees with the score. It is an annotation, never an edit: it changes no number on the page.

Per-brand stance in the brand order

Each answer’s brand order lists every brand it names. Each brand in it carries its own stance under the same rule: a brand the answer names without judging has no stance, not a neutral one. On the prompt page, your own entry in the brand order shows the answer’s stance on you: Positive, Neutral, Negative, or No clear stance. A competitor’s entry shows a dash with “not scored yet”: the Sentiment page and the prompt page do not score competitors. Over MCP and the REST API, answer_history and answer_slice rows carry the stance on you as stance (positive, neutral, negative, none or unscored), and the brand order as brands, where each brand has its own stance_label and stance_score. A brand with no stance has no stance_label and a stance_score of null. A stance_score of 0 is a balanced verdict.

Filtering answers by sentiment

answer_slice takes a sentiment term over your brand’s stance. It keeps the same distinction:
  • positive, neutral or negative: answers with that stance;
  • none: answers that were scored and took no stance;
  • unscored: answers nobody has scored yet.
none and unscored are never folded into neutral, or into each other. See MCP tools.

What it covers

Stance is read for answers from the last 90 days. An answer older than that, read before stance scoring existed, stays not scored yet and is not in any score. The stance is read from the answer’s text by a model. It can be wrong, and that is why every scored answer is listed with its sentence and can be flagged. Like every other reading, the text is stored verbatim, so when the scoring improves it is re-run over the stored answers in that window rather than starting a new series.