This guide explains how to interpret the feedback analytics dashboard and understand what the metrics mean for your LLM workloads.
Quick Reference: Chart Glossary
Sentiment Chart (Sentiment Breakdown View)
| Term | Definition |
|---|---|
| Positive | Feedback where the user clicked thumbs up. Indicates the response met their needs. |
| Negative | Feedback where the user clicked thumbs down. Indicates dissatisfaction with the response. |
| Neutral | Feedback where the user did not provide a thumbs up/down rating. This is not a middle rating—it means no explicit rating was given. |
| Positive Rate | Percentage of rated feedback that was positive: Positive / (Positive + Negative) × 100. Neutral feedback is excluded from this calculation. |
| Negative Rate | Percentage of rated feedback that was negative: Negative / (Positive + Negative) × 100. |
| Neutral Rate | Percentage of all feedback that had no rating: Neutral / Total × 100. |
| Avg Revision | Average revision score converted to percentage: (Revision Score / 5) × 100. Shows how much users typically edit responses. |
Sentiment Chart (Net Sentiment View)
| Term | Definition |
|---|---|
| Net Sentiment | A combined sentiment score that weights rating sentiment (60%) and revision sentiment (40%). Rating sentiment = (Positive - Negative) / Total × 100. Revision sentiment converts edit behavior to -100% to +100% (minimal edits = positive, heavy rewrites = negative). Ranges from -100% to +100%. |
Sentiment Chart (Compound Sentiment View)
| Term | Definition |
|---|---|
| Compound Sentiment | A 0-100% score that combines explicit ratings (thumbs up/down) with behavioral signals (how much the user edited the response). Higher = better. See How Compound Sentiment is Calculated below. |
Match Rate Chart
| Term | Definition |
|---|---|
| Matched | Feedback that was successfully linked to the original LLM request. This allows you to see the prompt and response alongside the feedback. |
| Unmatched | Feedback received without a link to the original request. The feedback is still valid, but you won't be able to see what prompt/response it refers to. |
| Match Rate | Percentage of feedback that was matched: Matched / Total × 100. Higher match rates mean better traceability. |
Feedback Types Chart
| Term | Definition |
|---|---|
| Rating Only | Feedback that only includes a thumbs up/down rating, with no revised text provided. |
| Revision Only | Feedback that only includes edited/revised text, with no thumbs up/down rating. |
| Both | Feedback that includes both a rating AND revised text. This provides the richest signal. |
Collection Rate Chart
| Term | Definition |
|---|---|
| Collection Rate | Percentage of LLM request logs that have received at least one piece of feedback. Measures how representative your feedback sample is of actual workload activity. |
| Logs with Feedback | Count of unique logs that have one or more feedback submissions linked to them. |
| Total Logs | Total count of client LLM request logs (excludes bakeoff comparison logs). |
Understanding the Dashboard
What Each Chart Tells You
Sentiment Chart (Sentiment Breakdown) — Are users happy with responses?
- High positive rate (>70%) suggests responses are meeting user needs
- Rising negative rate may indicate quality issues or changing user expectations
- High neutral rate means users aren't engaging with the rating system
- Avg Revision shows how much users typically edit responses (higher = less editing needed)
Sentiment Chart (Net Sentiment) — What's the overall trend?
- Combines rating sentiment (60%) with revision sentiment (40%)
- Positive values (+) mean more users are satisfied than dissatisfied
- Negative values (-) mean dissatisfaction is winning
- Track this over time to spot quality trends
Compound Sentiment — How good are responses when combining all signals?
- Scores above 80% indicate high-quality responses
- Scores between 60-80% suggest room for improvement
- Scores below 60% indicate significant quality issues
- This score is more nuanced than binary thumbs up/down because it incorporates editing behavior
Match Rate — Can we trace feedback to requests?
- Match rates below 90% may indicate integration issues
- Unmatched feedback is still useful for aggregate trends but limits debugging
Feedback Types — What kind of feedback are we getting?
- High "Rating Only" suggests users aren't taking time to revise
- High "Revision Only" suggests users prefer to edit rather than rate
- "Both" provides the most complete picture of user satisfaction
Understanding Collection Rate
Collection Rate measures what percentage of your LLM request logs have received feedback. This is different from Match Rate:
- Match Rate: What % of feedback has been linked to logs (feedback accuracy)
- Collection Rate: What % of logs have received any feedback (feedback coverage)
Collection Rate helps you understand how representative your feedback sample is of actual workload activity. A low collection rate means your sentiment analysis may not reflect the true user experience across all requests.
Collection Rate Benchmarks
| Collection Rate | Interpretation |
|---|---|
| 20%+ | Exceptional - near-comprehensive coverage (e.g., integrated review workflows) |
| 5-19% | Excellent - strong feedback loop with representative sampling |
| 1-4% | Good - typical for most production workloads |
| 0.1-0.9% | Low - sparse feedback, interpret trends with caution |
| <0.1% | Very Low - insufficient data for reliable sentiment analysis |
Note: Collection rates vary significantly by workload type:
- Human-in-the-loop workflows (e.g., content review, summarization): 20-40%
- Automated pipelines with spot-checking: 1-5%
- Background/batch processing: Often <1%
High-Signal vs Low-Signal Feedback
Not all feedback is equal. High-signal feedback (revisions, explanations) provides more actionable insights than binary-only feedback (thumbs up/down):
| Feedback Type | Signal Value | What It Tells You |
|---|---|---|
| Revision + Rating | High | Exactly what was wrong and user sentiment |
| Revision only | High | What needed to change (actions > words) |
| Explanation + Rating | Medium-High | Why user was satisfied/dissatisfied |
| Binary rating only | Low | Directional sentiment, no actionable detail |
Consider tracking both overall collection rate AND high-signal collection rate for a complete picture.
How Compound Sentiment is Calculated
The Compound Sentiment score combines two signals:
- Binary Rating (60% weight) — Did the user like or dislike the response?
- Revision Score (40% weight) — How much did the user edit the response?
Why These Weights?
- 60% for explicit rating: The user's stated opinion is the strongest signal of satisfaction
- 40% for revision behavior: Actions complement words—heavy editing suggests the response needed work, regardless of the rating
The Formula
Compound Sentiment = (Binary Score × 0.6 + Revision Score × 0.4) × 20
Where:
- Binary Score: 5 for thumbs up, 1 for thumbs down
- Revision Score: 1-5 based on edit percentage (see below)
- The
× 20converts to a 0-100 scale
Understanding the Three Revision Scores
When a user provides revised output, three scores are calculated:
Edit Score (Levenshtein-based)
Measures how much typing/deleting the user did (character-level edit effort).
| Score | Change % | Meaning |
|---|---|---|
| 5 | 0-10% | Minimal edits—response was mostly usable as-is |
| 4 | 10-30% | Light edits—small corrections or additions |
| 3 | 30-50% | Moderate edits—significant adjustments needed |
| 2 | 50-70% | Heavy edits—major rewriting required |
| 1 | 70%+ | Near-complete rewrite |
Best for: Understanding user effort
Semantic Score (Trigram-based)
Measures how much the content/meaning changed (pattern similarity).
| Score | Similarity | Meaning |
|---|---|---|
| 5 | 90%+ | Same content—minor wording tweaks |
| 4 | 70-90% | Similar content—some changes |
| 3 | 50-70% | Moderately different |
| 2 | 30-50% | Very different |
| 1 | <30% | Completely different content |
Best for: Understanding content quality
Revision Score (Combined)
Weighted combination: 40% Edit + 60% Semantic
This prioritizes semantic change (content quality) over raw editing effort. A response that was semantically wrong is worse than one that just needed reformatting.
When to Use Each Score
| Question | Use This Score |
|---|---|
| How much work did the user do? | Edit Score |
| Was the response content correct? | Semantic Score |
| Overall response quality? | Revision Score |
The 2x2 Matrix
Combining both dimensions reveals nuances:
| Scenario | Edit Score | Semantic Score | Interpretation |
|---|---|---|---|
| Minor tweaks | 4-5 | 4-5 | Response was good |
| Targeted fixes | 4-5 | 1-2 | Small edits, big meaning change (response was off) |
| Reorganization | 1-2 | 4-5 | Lots of work, same content (format was wrong) |
| Complete rewrite | 1-2 | 1-2 | Response wasn't useful |
Example Calculations
| Scenario | Rating | Revision Score | Calculation | Final Score |
|---|---|---|---|---|
| Loved it, used as-is | Thumbs up (5) | 5 (no edits) | (5×0.6 + 5×0.4) × 20 | 100% |
| Liked it, minor tweaks | Thumbs up (5) | 4 (15% edits) | (5×0.6 + 4×0.4) × 20 | 92% |
| Liked it, but rewrote half | Thumbs up (5) | 3 (40% edits) | (5×0.6 + 3×0.4) × 20 | 84% |
| Disliked, complete rewrite | Thumbs down (1) | 1 (80% edits) | (1×0.6 + 1×0.4) × 20 | 20% |
| No rating, light edits | None | 4 | 4 × 20 | 80% |
| Thumbs up only | Thumbs up (5) | None | 5 × 20 | 100% |
When Only One Signal Exists
If feedback has only a rating OR only a revision (not both), the score uses just that signal:
- Rating only:
Binary Score × 20 - Revision only:
Revision Score × 20
How Net Sentiment is Calculated
Net Sentiment provides a single trend line showing overall user satisfaction, combining both explicit ratings and revision behavior.
The Two Components
- Rating Sentiment (60% weight) — Based on thumbs up/down votes
- Revision Sentiment (40% weight) — Based on how much users edit responses
Rating Sentiment Formula
Rating Sentiment = (Positive - Negative) / Total × 100
- Ranges from -100% (all negative) to +100% (all positive)
- A score of 0% means equal positive and negative feedback
Revision Sentiment Formula
Revision scores (1-5) are converted to a sentiment scale (-100% to +100%):
Revision Sentiment = (Revision Score - 3) / 2 × 100
| Revision Score | Revision Sentiment | Meaning |
|---|---|---|
| 5 | +100% | Minimal edits = highly positive |
| 4 | +50% | Light edits = positive |
| 3 | 0% | Moderate edits = neutral |
| 2 | -50% | Heavy edits = negative |
| 1 | -100% | Complete rewrite = highly negative |
Combined Net Sentiment Formula
Net Sentiment = (Rating Sentiment × 0.6) + (Revision Sentiment × 0.4)
Example Calculations
| Rating Sentiment | Revision Sentiment | Calculation | Net Sentiment |
|---|---|---|---|
| +50% (mostly positive) | +100% (score 5) | 50×0.6 + 100×0.4 | +70% |
| +50% (mostly positive) | -50% (score 2) | 50×0.6 + (-50)×0.4 | +10% |
| -20% (slightly negative) | +50% (score 4) | -20×0.6 + 50×0.4 | +8% |
| +30% (positive) | 0% (score 3) | 30×0.6 + 0×0.4 | +18% |
When Only One Signal Exists
- Rating only: Uses rating sentiment directly
- Revision only: Uses revision sentiment directly
- Both available: Combines with 60/40 weighting
Interpreting Net Sentiment
| Range | Interpretation |
|---|---|
| +50% to +100% | Excellent—users consistently satisfied |
| +20% to +49% | Good—positive trend with room for improvement |
| -19% to +19% | Mixed—roughly equal satisfaction/dissatisfaction |
| -49% to -20% | Concerning—more users dissatisfied |
| -100% to -50% | Poor—significant quality issues |
Common Questions
Why is neutral not counted in positive/negative rates?
Neutral means "no rating given"—the user chose not to express an opinion. Including it would dilute the signal from users who did rate. The rates show sentiment among users who rated.
Why might match rate be low?
Common causes:
- Feedback submitted without proper request correlation IDs
- Timing issues (feedback submitted long after the request)
- Integration bugs in the feedback submission flow
What's a "good" Compound Sentiment score?
| Score Range | Interpretation |
|---|---|
| 90-100% | Excellent—responses consistently meet user needs |
| 80-89% | Good—minor improvements possible |
| 70-79% | Fair—noticeable quality gaps |
| 60-69% | Needs attention—users frequently unsatisfied |
| Below 60% | Poor—significant quality issues |
Why weight ratings more than revisions?
Explicit ratings (60%) outweigh revision behavior (40%) because:
- Users may edit for style preferences even when satisfied
- A thumbs up with heavy edits might mean "good content, wrong format"
- The rating is the user's direct statement of satisfaction
Technical Details
API Reference
Submit feedback via the API:
POST /api/v2/llm_request_log_feedbacks
{
"llm_request_log_feedback": {
"sentiment": "like",
"revised_output": "The corrected response text..."
}
}
Parameters:
sentiment(string, optional):"like","dislike", or"neutral". Preferred rating field.like(boolean, optional, deprecated):truefor thumbs up,falsefor thumbs down. Usesentimentinstead. If both are provided,sentimenttakes precedence.revised_output(string, optional): User's edited version of the response
The revision_score is automatically calculated server-side when revised_output is provided.
Converting like to sentiment
If you are migrating from the boolean like field, use this mapping:
like (boolean) |
sentiment (string) |
Stored as integer |
|---|---|---|
true |
"like" |
2 |
false |
"dislike" |
0 |
nil / omitted |
(no conversion) | nil |
Data Model
| Field | Type | Description |
|---|---|---|
sentiment |
string ("like", "dislike", "neutral") |
Preferred rating field. Stored internally as integer (0=dislike, 1=neutral, 2=like). |
like |
boolean/null | Deprecated. true = positive, false = negative, null = no rating. Converted to sentiment on write. |
revised_output |
text | User's edited response (if provided) |
revision_score |
integer (1-5) | Computed from edit distance |
llm_request_log_id |
hashid string/null | Link to original request (null if unmatched). Stored internally as an integer FK. |
computed_sentiment_score |
decimal (-1.0 to 1.0) | Weighted rollup of parent + partial sentiment ratings. null if no sentiment has been submitted. Updated automatically within seconds of any sentiment change. See How the Sentiment Score is Computed. |
How the Sentiment Score is Computed
computed_sentiment_score is a weighted average of the parent feedback's rating and any partial feedback ratings attached to it:
| Component | Weight | Value |
|---|---|---|
Parent sentiment |
2× | like = +1.0, neutral = 0.0, dislike = −1.0 |
Each partial sentiment |
1× | like = +1.0, neutral = 0.0, dislike = −1.0 |
The parent carries double weight because it represents the overall response rating, while partials represent targeted section feedback.
Example: Parent is like (+1.0), one partial is dislike (−1.0):
score = (2×1.0 + 1×−1.0) / (2+1) = 1.0/3 ≈ +0.33
The score is recalculated automatically (usually within seconds) whenever you submit feedback, add or remove a partial, or change any sentiment rating. It is null until at least one sentiment value is present.