Skip to content
Senti

Methodology

How Senti collects posts, labels them and turns the labels into the numbers on a report. Last updated October 29, 2026.

What we collect

Public posts from X, Instagram, Reddit and TikTok are collected through our data provider with the brand's keyword rules. Each platform is handled on its own: one that is slow or unavailable never holds back the others. Videos count by their caption and subtitles; images and video frames are not analyzed.

Each platform is searched in our data provider's database. X and Instagram are also searched live, straight from the platform, so recent posts the database has not caught up with are included. Live search covers the report's whole range when the database found fewer than 1,000 posts on that platform, and the last 7 days otherwise; a refresh searches live only the days since its last fetch. X live search reads the newest posts first; Instagram live search returns posts in its own order, and posts outside the range are left out. The first numbers come from the database search; the report then adds the live posts as they are labeled and updates itself, and its receipt is final once live search ends. Live search reads at most 500 X posts and 300 Instagram posts per report, and the receipt says when that limit stopped it. Posts both searches find are counted once. Reddit and TikTok have no live search. Text inside images is not read: only a post's own text, caption and subtitles count.

Before labeling, every post is checked against the keyword rules again: a keyword must appear as whole words, ignoring case (a quoted phrase as those words in order, a hashtag or handle exactly), and posts that do not match are dropped. The receipt counts them, and the count opens examples with the reason.

Language and country

Each brand chooses its languages: English, Spanish, Portuguese or any combination. Only posts in those languages are labeled, all with the same questions; others are counted on the receipt and left out.

A post's country comes from the post itself (a place tagged on it) or, on X, from the profile location of an author we already have on record, and only when that names a country; new authors' profiles are not looked up for now. It is never guessed from the language. Most posts carry no location, so every country breakdown shows the share of posts whose country is known.

Small and large brands

A platform whose first page returns fewer than 100 posts is small for that brand: every post in the window is collected and labeled. A full first page makes it large: one page is collected per week and at most 50 posts per week and platform are labeled, chosen evenly across the week. The total found is always shown next to the number labeled. Because a large platform is sampled more thinly than a small one, every figure across platforms (the score, complaint and intent shares, the tracker and the charts) weights each platform by its share of the posts found, and its 95 percent interval accounts for that weighting. Each platform's own figures are unweighted. A note appears when a platform with at least 5 percent of the posts found has fewer than 30 posts analyzed.

Questions per post

Each post is labeled once by our labeling model, with all questions in one call; every label records the model version it came from. A post already labeled with the same questions is reused, never labeled again.

Relevance
Whether the post is about the brand.
Sentiment
Sentiment toward the brand, in five steps.
Topic
What the post is about, from the brand's own topic list.
Intent
Praise, complaint, question, purchase intent, churn intent, recommendation or neutral mention.
Spam
Whether the post is spam.
Campaigns
One question per active campaign.

Filters and low data

Relevance
Below 0.5: excluded from every number.
Spam
Above 0.7: excluded and counted on the receipt.
Too few posts
Fewer than 30 relevant posts in the window: the report says there are too few to read much into.
Mostly other things
Fewer than 40% of posts about the brand: the report says most matches were about something else.
Low data
Fewer than 200 relevant posts in a report: the results stay visible, marked low data, and the report is returned automatically.

The score

Sentiment is shown on a 0 to 10 scale: the mean of the five-step label (0 very negative to 4 very positive) times 2.5. Point changes use the same scale. Aggregates, trends and the headline sentence are computed in plain code from the labels, not by a model.

Every number links to its posts

Every number on a report opens the posts behind it: a point on the chart, a lettered move, a topic cell, a country, a highlighted phrase of the headline and each cited post of an explanation open the posts it counts, with the answers given for each post.

Change explanations

When a report's headline change is significant, it carries an explanation of what changed, why and what to consider. The facts are measured in code from the report's posts; our analysis model only writes the prose from those facts.

Facts
The score before and now with its interval, then the drivers: a topic, platform, intent, competitor or spike, each with its measured figures and up to 5 posts behind it.
Prose
What changed, why (one entry per driver, citing its posts) and what to consider, labeled as suggestions, written by our analysis model from the facts only.
Checks
Every number must match a measured figure and every cited post must belong to its driver. A failed check gets one retry; then only the measured drivers are shown.
Stored once
Written when the report finishes and never regenerated. An edit that changes the report's figures marks it out of date and keeps only the recomputed drivers.

Human review

A human review of 300 stored posts from our live examples, in English and Spanish, is in progress: people answer the same questions as the labeling model without seeing its labels. The measured agreement for relevance, sentiment and intent is published here once all 300 posts are reviewed. Portuguese is not part of this review: before adding it we checked it on 30 stored Portuguese posts against careful English translations of the same posts, labeled with the same questions. Relevance agreed on 30 of 30, the topic on 29 of 30, and sentiment differed by 0.39 points on the 0 to 10 scale on average.

Coverage limits

We see only public posts that our data provider returns for the keywords; private accounts, deleted posts and other platforms are not included. Reddit and TikTok data can lag by hours. Results are what the sources returned at the time of the analysis. Posts deleted after we stored them are not re-checked for now: they stay in a report until a takedown request removes them.

The receipt

Every report shows posts found, collected, in its languages, selected and labeled, questions per post and time taken, all measured from that run.