Probato

An independent project I started in 2024 that turns qualitative customer reactions into interpretable psychological signals and decision evidence.

Problem

The people who make something know their intent and the context behind it. Customers only see the result. That gap makes it easy for an organization to miss where customer aversion actually begins.

Probato zeroes in on where controversy starts: which content cue triggers which kind of moral aversion. It does not try to predict how far the controversy will spread.

Why qualitative data is difficult

A single short reaction can carry irony, ridicule, stance, emotion, and cultural context all at once. Two negative comments that look alike may come from very different places: concern about harm, a sense of betrayal, unfairness, or resistance to authority.

Sentiment alone cannot explain why customers react, or what an organization should rethink.

Customer psychology structure

I broke the problem into three parts: the content cue, how a reaction is represented, and the unit of review. The representation keeps stance separate from topic, then uses Moral Foundations as coordinates for the direction of the aversion.

The structure does not decide what is morally right. It compares which psychological frames are active in a set of customer reactions.

Technical implementation

The workflow links multi-source collection, data schemas, LLM-assisted labeling, a 6-dimensional Moral Foundations vector, a 768-dimensional semantic embedding, clustering, and a prototype risk score.

6D + 768D

Moral activation and semantic meaning stay separate, so what a reaction is about never stands in for why the aversion is there.

10,713

LLM-coded training examples used to develop the encoder, documented as model-generated labels rather than human ground truth.

Same topic, different psychology

Semantic clusters and Moral Foundations clusters answer different questions. Keeping topical similarity apart from the psychological direction of aversion gives a far more useful read on customer reactions.

Six Moral Foundations signals across eight unsupervised semantic clusters
Frame numbers are unsupervised cluster IDs, not topic labels or ranks. Frame 7 is the dominant cluster with 57,128 items.

Chart summary and data

The IDs simply label the groups the clustering found; they carry no topic meaning. Frame 7 is much larger than the other clusters shown, and its highest mean signal is fairness (0.5243), followed by betrayal (0.4663), degradation (0.3852), authority (0.3256), harm (0.2240), and liberty (0.1756).

FramenHarmFairnessBetrayalAuthorityDegradationLiberty
757,1280.22400.52430.46630.32560.38520.1756
35500.00010.00000.00000.00000.00010.0000
22270.37860.25200.35550.03230.13430.0198
6940.55890.44940.38170.05940.16800.0384
0810.02270.08730.01310.01940.03010.0055
5610.00120.00800.01400.00070.00500.0009
4600.02810.15170.11210.00750.03240.0101
1550.80320.64040.39100.04460.40480.0310
Mean model output by unsupervised frame

Case evidence

For a 2026 Starbucks Korea controversy, I pulled together news, comments, community discussions, and official sources at the aggregate level. Reading across platforms and over time showed how the fairness, betrayal, and degradation signals moved, which raw reaction volume alone would miss.

Fairness, betrayal, degradation, and harm signals over time in a May 2026 case
Three-hour aggregate signals. Values are model outputs for relative comparison.

Chart summary and data

The first two sparse intervals on May 18 show high fairness and harm outputs. After the first marked event, all four signals drop. From late May 18 through May 22, fairness is usually highest at about 0.46-0.54, with betrayal around 0.39-0.52, degradation around 0.31-0.43, and harm around 0.20-0.24. The vertical lines mark when the copy appeared, the apology, and the leadership dismissal. These are descriptive three-hour means on a 0-1 model scale, not causal effect estimates.

My role

I ran the whole thing end to end: problem framing, research design, collection pipelines, schemas, modeling, analysis, interpretation, and a public-safe write-up.

I used AI tools for the coding and classification work. I treated model outputs as analytical features to be checked rather than trusted, and kept raw or restricted source text out of this portfolio.

Limitations

This is a research and decision-support prototype, not a validated controversy-prediction model or a live commercial service.

The Moral Foundations labels are LLM-generated features, not human ground truth. Platform sampling, how context is read, and model-dependent stance labels can all shift the findings.