Skip to content
Methodology

The SignalOS methodology

The SignalOS methodology is how AI answers become numbers you can defend. SignalOS asks each question five times on each of four AI engines — ChatGPT, Claude, Perplexity and Gemini — in a fresh session every time. It reports visibility as a rate with a 95% Wilson confidence interval and its sample size, shows no number below 10 evaluable samples, and records the model version behind every answer.

Last updated 2026-09-14

Sampling

How many times does SignalOS ask each question?

AI answers are not deterministic. Ask an engine the same question twice and it can name different brands, in a different order, citing different sources. One answer is a single draw from a range of possible answers, not a fact about your brand, and a tool that asks once reports that draw as if it were the whole picture.

SignalOS asks each question five times on each engine in every measurement run, and stores every answer separately with its full text. A plan can be configured for deeper sampling, up to 20 answers per question. Every answer to the same question is collected with identical settings, including a fixed sampling temperature, so the spread we record is the engine's own variation rather than variation we introduced.

Budget and volume limits can reduce that depth, but never below 3. When a run samples fewer answers than usual, the account owner is told how many and why. If a run can afford fewer than 3 answers per question on an engine, that engine is not measured in that run at all, and the owner is told which engine, why, and the date measurement resumes.

Visibility is reported as a rate with a 95% Wilson confidence interval and the sample size behind it. For that interval, one sample is one question measured on one engine in one run, and it counts as a mention when the brand appears in at least one of that run's answers to the question. Answers that could not be evaluated are left out of the rate entirely.

Worked example: mentioned in 7 of 10 samples · 95% interval 40%–89% · n=10

Session hygiene

Why does every answer start in a clean session?

Every answer SignalOS collects comes from a new session with its own session ID. Nothing carries over between calls: no memory, no earlier turns, no personalisation, and not even the previous answer to the same question. An answer shaped by an earlier conversation measures that conversation, not how the engine describes your brand to someone asking for the first time.

The rule is enforced before sampling starts, not left to good intentions. Each engine integration declares whether it can guarantee a clean session, and a measurement run on an integration that cannot is stopped with an error rather than sampled.

Each stored answer keeps its provenance: the engine, the model version the provider reported, the session it ran in, the sampling settings, the language and region, and the raw text. In the product, you can open the answers behind a figure and read them.

Model versions

How does SignalOS track AI model versions?

AI providers update their models, sometimes without announcing it. A change in the model can move your numbers as much as a change in your content, and the two call for completely different responses. So SignalOS records which model produced every answer.

Each answer stores the model version the provider's API reported. When a completed answer reports a different version from the last one observed for that engine, SignalOS records a model-version change, draws it as a marked line on the perception timeline, and raises an alert. The first version ever seen for an engine sets the baseline and is not reported as a change. If a provider reports no version, none is recorded; we don't guess one.

To divide history into model eras, a transition is called only when the 5 requests before it and the 5 requests after it are each at least 80% one model, and those two models differ. A single stray answer never splits a trend. When impact analysis asks whether your work moved a number, a model change in the same period is flagged as a possible confounder.

Measured versus modelled

What is the difference between a measured and a modelled number?

A measured number is something SignalOS observed: an engine was asked, its answer was stored, a classifier scored it, and you can read the answer. A modelled number is estimated from measured history, such as a forecast of where a metric is heading. It describes something that hasn't happened, so it cannot be observed.

Modelled values carry a visible ~ Modelled marker: on charts, alongside a dashed line, and in generated report narrative wherever a modelled result appears. The tilde is a shape rather than a colour, so the marker survives greyscale printing. A projection is never presented as a measurement.

For what each part of SignalOS does, and which parts measure rather than model, see all features.

When we refuse

When does SignalOS refuse to show a number?

Below the minimum, SignalOS shows no number. Not a zero and not an estimate, but a statement of what is missing and how much more is needed. A missing reading and a reading of zero are different facts, and the product keeps them apart.

Not enough data · n=6, need 10

Situations where SignalOS shows no number, what appears instead, and why
SituationWhat you see insteadWhy
Fewer than 10 evaluable samples behind a rateNot enough data, with how many samples exist and how many are neededAn interval from that few points is too wide to be worth reading.
Fewer than 3 affordable answers per question on an engineThat engine is not measured in the run, and the account owner is told which engine, why, and when it resumesOne or two answers cannot tell a real answer from a one-off.
An answer that is not recognisably EnglishExcluded from every rate, and marked as excluded when you inspect the answersOur classifiers read English phrasing, so any label on it would be a guess.
An engine that is unavailable, or a call that failsRecorded as unavailable or failed, never as a zeroAn engine we could not reach says nothing about your brand.
An engine integration that cannot guarantee a clean sessionNot sampled; the run stops with an errorIts answers could be shaped by earlier conversations.
Fewer than 20 human-labelled examples for a classifierNo accuracy figure, and a note that there are not enough labelled examples yetA figure from too few examples would overstate what we know.
Classifier accuracy

How is classifier accuracy measured?

SignalOS classifies every answer: whether your brand appears, how prominently and how favourably, which sources are cited, and why a competitor was recommended instead of you. Those classifications are rules, built from cue words, position in the text, and matching against your domain and your competitors'. The same answer gets the same label every time, and any label can be audited.

One classification can be refined by an AI model: the reason a competitor was recommended instead. The model must quote the passage that justifies its reason, and its result is kept only if that quote appears word for word in the answer. Otherwise, or when no model is available, the rule-based result stands.

Accuracy is measured, not asserted. A person labels real answers with the correct classification, the classifier runs on the same inputs, and precision, recall and F1 are computed from where the two agree. Three classifiers are evaluated this way: brand presence, mention sentiment, and the rule-based reason a competitor was recommended. Results appear on the methodology page inside SignalOS for team members with evaluation access. Below 20 labelled examples for a classifier, that page says there are not enough examples instead of showing a number.

A scheduled check compares each classifier's measured accuracy against a floor of 80% and raises an alert when one falls below it. This page does not print an accuracy figure: the figure that matters is the current one, computed from the current labelled set, and that lives in the product.

Limitations

What can't SignalOS measure?

Every method has edges. These are the edges of this one, stated plainly. For how answer data is handled, stored and deleted, see security and data handling.

Google AI Overviews is not covered

Google offers no compliant public API for AI Overviews or AI Mode. Covering it properly needs a licensed data provider, and until we have one, SignalOS does not measure it.

Answers come from APIs, not consumer apps

SignalOS queries ChatGPT, Claude and Gemini through their APIs without live web search, and Perplexity with its built-in search. A person using a consumer app can see different answers, shaped by web search, account history and personalisation.

English only

The classifiers read English phrasing. A non-English answer is recorded as one we cannot classify and excluded from rates, rather than guessed at.

Rules miss phrasing they don't recognise

Rule-based classification is reproducible, but it can miss a mention or a recommendation worded in a way its cue lists don't cover. That is the trade we chose over labels that change from one run to the next.

Citation influence is a proximity check

Whether a citation shaped an answer is judged from recommendation, comparison and claim cues near where the citation appears, not from reading what the source says. Supporting language outside that window is missed.

Your domains are recorded, not verified

Resolving a mention uses the brand's names and every domain recorded against it, so a mention beside a country site or a legacy domain corroborates the brand the same way the primary site does. We record who added each domain and when; we do not check that you own it. A domain listed in error narrows to one account — nothing you record affects anyone else's measurements.

We measure; we don't control

AI providers can change their models, behaviour and availability without notice. SignalOS records when that happens. It cannot prevent it.

How to check our work

How can you check SignalOS's numbers yourself?

Don't take the numbers on trust. Pick a question from your question set and ask it five times yourself, each time in a new conversation with no history. Note which brands appear in each answer, then compare that with what SignalOS reports for the same question and engine.

Expect the pattern to match, not the exact words. Your answers will vary for the same reason ours do, and a consumer app can search the web or draw on your account in ways an API call does not. If the pattern differs from what we report, open the answers behind our figure and compare them side by side: each one shows the engine, the model version and when it ran.

Every change to a formula, threshold or decision rule gets a new methodology version with the date it took effect, and each stored answer keeps the version that produced it. A number can always be traced to the rules that were in force when it was measured.

Research we publish on Insights states its method, and what it cannot conclude, in the same way. If anything on this page doesn't match what you see, ask us.

Questions

Questions about the method

Why five samples and not three or ten?
Three is the floor, not the target: one or two answers cannot separate a real pattern from a one-off, so SignalOS never measures an engine with fewer than 3. Five is the default because it gives every question a spread of answers in every run. Ten would double the calls in every run without narrowing the confidence interval, because the interval's sample size counts question-runs, not individual answers; it tightens as questions and runs accumulate. Plans that need more depth per question can sample up to 20 times.
What's a Wilson interval and why that one?
A Wilson score interval, published by Edwin Bidwell Wilson in 1927, is the range that likely contains the true rate at a stated confidence level, given how many samples were observed. SignalOS uses 95%. We chose it over the simpler normal approximation because it stays within 0–100% and remains accurate for small samples and for rates near 0% or 100%, which is where AI visibility numbers often sit.
How do you know your classifiers are accurate?
We measure it. People label real answers with the correct classification, the classifier runs on the same inputs, and precision, recall and F1 come from where they agree. Results appear inside SignalOS for team members with evaluation access, and below 20 labelled examples no figure is shown. A scheduled check raises an alert if a classifier's measured accuracy drops below 80%.
What happens when a provider changes their model?
Every answer records the model version the provider reported. When a new version appears, SignalOS records the change, marks it on the perception timeline and raises an alert, so a shift caused by the model is not mistaken for a shift in your position. Impact analysis also flags a model change in the same period as a possible confounder.

Questions about the method?

We'd rather answer them than have you assume. Book a walkthrough to see the method run against a brand you know, or send us your question.