There's a well-documented phenomenon in consumer and user research that most practitioners know intuitively but rarely name directly: people don't report their experience accurately.
Not because they're dishonest. Because self-reporting is hard. In the moment of an interview, participants are performing a version of themselves. They round off hesitation. They describe their behaviour more charitably than it actually was. They say "yes, I'd probably use this" when what they felt was closer to "maybe, under the right circumstances, if the price were different." The social pressure of being in a conversation, even with an AI, shapes what gets said.
This is what we call the Say-Do Gap. The distance between what someone tells you and what they actually feel or do.
It shows up everywhere. In concept tests where participants say they love a product they'd never buy. In usability sessions where someone says "this makes sense" while visibly struggling. In brand perception studies where stated attitudes don't match purchasing behaviour.
Mira
Hi Product Hunt 👋
I'm Lava, Founder of Decode by Entropik. We've been building AI that reads human behavior for 9 years and today, we're launching Mira, our AI Moderator.
Here's the problem every researcher knows but nobody talks about: people say one thing and feel another. It's called the Say-Do Gap. Self-reported data is filtered, rationalized, socially edited. Most research tools just accept this. We didn't.
Mira runs the entire research workflow, recruiting, moderating, analyzing, reporting, but uniquely captures what participants say AND feel in real time via facial coding, voice emotion AI, and eye tracking.
When someone says "I love it" but looks confused, Mira notices and probes deeper. Automatically.
Built on 17 patents. 70+ languages. Trusted by Unilever, Nestlé, and 150+ brands.
First study free with code PH20 → entropik.io/platform/ai-moderator
One question for the community: what's the most unreliable part of your current qual research process, and what would it take for you to actually trust AI to run it?
Drop it in the comments. I'll be here all day.
@productrambler What’s one concrete sign that your current qualitative insights are misleading, and what exact safeguards or transparency features would you need to see in an AI moderator before you'd let it probe participants or deliver final insights automatically?
Mira
@swati_paliwal Great question Swati, one we wrestled with a lot when designing the output layer.
A few concrete signs qual insights are misleading:
(1) unanimous positivity — if everyone loves it, your screener may be too narrow or the interview is not challenging enough; (2) verbal/non-verbal mismatch, someone says "I'd buy this" but their face shows confusion or disengagement; (3) vague themes without emotional backing, "ease of use" as a finding with no moments to support it.
On safeguards: Mira shows confidence levels on emotional signals (not just a single call), surfaces the raw emotional timeline so you can verify the signal behind any AI claim, and flags moments of mismatch rather than averaging them out. The AI summary is always a starting point, the original recording, transcript, and emotional data are there for the researcher to check and override.
We are firm that AI should make researcher judgment faster and better supported, not replace it. The final interpretation is always yours.
Intelli
@productrambler Congratulations Lavakumar on this launch. Mira I believe is the result of all the underground work you have been doing for the past 9 years.
How much cultural and local context have you created/designed it with i.e does it understand and differentiate accents + nuances of research candidates from Africa, Asia, Oceania etc or is it primarily designed for candidates from the Americas and Europe?
I believe the answer to the question above will be a determinant for many companies to actually trust AI to run their qual research processes.
"Captures what participants say AND feel" is the hard part most tools skip. I work with voice AI daily, and the transcript is the easy 20% — the signal that actually matters (hesitation, tone, the pause before someone says "yeah, it's fine") lives in how they said it, not the words. If Mira genuinely reads that layer at a 100+ panel scale, that's a real moat over "interview + transcript" tools. Question: how do you keep the emotional read from becoming false precision — do you surface confidence levels, or a single sentiment call? Congrats on the launch 🚀
Mira
@david_marko Thank you so much. Since our emotion AI is multi-modal, we use fusion techniques to make sure that false positive are taken care of and yes at raw level we do provide confidence level 😎
Mira
@david_marko Adding to what Sumit said - from a product perspective, the confidence level alongside the emotional call is exactly why we built the output the way we did.
The goal is to give researchers a richer signal to interrogate, not a verdict to accept. The transcript, emotional timeline, and raw clips are always there to verify or challenge what the AI surfaced. It is a tool to improve researchers' judgment, not a replacement for it.
Mira
@ridhwikvinod Ridhwik, this is exactly the right question, and honestly the one we obsessed over the most.
A few things we do to avoid over-reading:
1. Confidence thresholds, not interpolation. If a frame doesn't meet our confidence threshold (lighting, angle, partial occlusion), we drop it entirely rather than fill in the gap. We'd rather have less data than wrong data.
2. Sustained patterns, not moments. A single frown frame means nothing. We look for emotional patterns sustained across 3–5 seconds minimum before flagging them as signal.
3. Triangulation across modalities. Facial expression is one input, we cross-reference with voice tone and eye tracking. Confusion and awkwardness have different voice signatures. That cross-modal agreement is what lifts confidence.
4. Baseline calibration. We establish a neutral baseline in the first 30 seconds of every session so "this person just frowns a lot" doesn't skew the read.
The honest answer is it's not perfect, but neither is a human moderator. The difference is we surface the signal with confidence scores, so researchers can decide what to trust. Happy to walk you through exactly how this works in a live session → https://www.entropik.io/book-demo
The mid-interview probe on the say/feel mismatch is the part that interests me. I run the cheap cousin of this for my own app, a panel of simulated user personas that scores LLM output before a change ships, and the one thing simulation can't give me is exactly that hesitation signal you're reading off real faces. When facial coding and the transcript disagree, which one do your reports trust? I'd want the raw disagreement surfaced, not resolved for me.
Mira
@narek_keshishyan Narek, the fact that you've already built a simulated persona scoring layer tells me you'll get more out of this than most.
To your specific question: the disagreement is surfaced, not resolved. That's intentional and non-negotiable for us.
When facial coding and transcript diverge, someone says "yes, that makes sense" while their face reads confusion and their voice drops engagement — the report shows both signals side by side with timestamps. The researcher sees the verbal response and the emotional trace underneath it. We don't collapse them into a single confidence score or pick a winner. That would defeat the entire point.
What the report flags is the gap itself, the moment where the two signals split. You get the clip, the transcript line, the emotion curve, and a marker that says "these disagreed here." What it means is yours to interpret.
Where we do take a position: we surface which signal is sustained longer. A one-second facial flicker during a considered verbal answer is weighted differently from a 6-second emotional hold that contradicts a polished verbal close. But that weighting metadata is visible, not hidden.
Your simulated personas are great for pre-ship scoring, but the hesitation signal on a real face during a real task is a different class of data. I'd genuinely love to walk you through how the disagreement layer looks in a real study. Can we set up a call? → https://www.entropik.io/book-demo
@mridhu_varshini_ surfaced not resolved is the answer I was hoping for. weighting by how long a signal is sustained makes sense too, a six-second hold is a different animal from a flicker. no call promises mid-launch-week, but I'll poke at the demo materials. appreciate you writing this out properly.
Mira
@narek_keshishyan Glad it landed that way. "surfaced not resolved" is genuinely the design philosophy, not just a talking point.
No pressure on the call. When you do poke at the demo materials, if anything raises a question worth going deeper on, I'm here. Would be curious to hear what you think after you've had a look.
Per-frame confidence scoring is the right instinct. The bit I'd push on at 120-country scale is cross-cultural validity of the facial and voice layer. Most action-unit and voice-emotion models train on largely Western data, and expression-to-affect doesn't transfer cleanly: gaze aversion, smile intensity, vocal pitch carry different meaning across cultures, so a 'how they feel' score can be confidently miscalibrated for a Jakarta panel while looking fine on a London one. Do you re-validate the emotion mapping per region, or is it one global model?
Mira
@dipankar_sarkar Dipankar, this is one of the most precise critiques anyone has landed today, and it deserves a direct answer rather than a deflection.
The short version: we don't run a single global model applied uniformly. But we also won't claim full per-region revalidation across all 120 countries; that would be overstating where the field currently stands.
Here's what we actually do:
Individual baseline calibration is the first layer. The model doesn't score against a universal affect norm. It measures deviation from each participant's own established neutral. That sidesteps the bulk of cross-cultural expression-to-affect transfer error; a Jakarta participant's gaze aversion is measured against their own baseline, not against a Western norm.
Our training data significantly spans non-Western populations. Nine years of data collection across APAC, MENA, South Asia, and Latin America. The data collection platform uses inter-rater reliability thresholds before any tag enters the training set, and regional annotators are involved in the process.
Multimodal fusion reduces single-signal miscalibration risk. Vocal pitch miscalibrated for a specific region still gets weighted against facial and gaze signals. A confidently wrong facial read is harder to sustain when voice and attention data disagree with it.
Where we're still building: complete per-region model variants at the AU level. We surface confidence scores precisely because of this — a researcher in a less-validated market should weight signals accordingly.
If you'd like to go into architecture at the model level, we would like to speak to you more on this → https://www.entropik.io/book-demo
The Say-Do Gap framing is the sharpest part of this — self-reported data being "socially edited" is exactly the failure mode most research tools quietly inherit. My honest question on the emotion layer: facial coding and voice-emotion signals vary a lot across cultures and neurotypes, so how do you keep the "feel" read from becoming its own bias, especially across 120 countries? Curious whether researchers can see and override the affect signals, or whether they're treated as ground truth in the final report.
Mira
@yers1t Researchers see the raw signal, not just a conclusion. Every emotion score is timestamped and tied back to the exact video/audio moment, so a researcher can watch the clip and agree, disagree, or override it. Nothing gets baked into a final report without that human check.
the disagreement-not-resolved answer above is good, but does the participant themselves know that level of emotional inference is happening? "we're recording this call" is a different consent than "we're scoring your face for confusion/disengagement in real time." biometric emotion inference specifically is called out under GDPR and the EU AI Act in a way plain video recording isn't. across 120 countries with different disclosure standards, is that spelled out to participants upfront, or folded into a generic research-consent form
Mira
@galdayan You're completely right—under GDPR and the EU AI Act, scoring facial expressions is a totally different legal hurdle than just recording a video. We never hide this in a generic research consent form; participants get a clear, upfront disclosure that their eye movements and facial reactions will be analyzed in real time before they opt in. Because we use edge processing, we also explain that the computing happens locally on their device, meaning sensitive raw video is never stored or shipped across borders. We made this specific, high-bar biometric opt-in our automatic default across all 120+ countries, taking the entire disclosure burden off the research team.
@bharat_shekhawat edge processing was the detail I was missing, that actually changes the risk profile a lot since the sensitive data never leaves the device. making the high-bar opt-in the default everywhere instead of only where required is a good sign too, most teams do it the other way around and only add friction where regulators force them to.