Podcast Episode Rating Form

Grow your podcast audience with data-driven feedback. This comprehensive episode rating form captures listener reactions across multiple dimensions including content quality, host delivery, audio production, and topic relevance. Features emotional response tracking, topic preference chips, and intelligent follow-up questions based on ratings. Perfect for individual podcasters, podcast networks, and media companies looking to improve content and better understand their audience.

Specialized

Try the Form

Your feedback helps us create content you love. Takes less than 2 minutes!
Quick Rating
0/5
Content Quality
7
7
110
3
3
15
✅ Just right
Host & Production
0/5
0/5
Needs Work Okay Good Great Excellent
Episode pacing
Clarity of explanations
Kept my attention
Guest quality (if applicable)
Topics & Preferences
Would You Recommend?
About Your Listening
 
 
Your Feedback Summary
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
export function podcastEpisodeSurvey(form: FormTs) {
// Podcast Episode Rating Form - Creative & Media Feedback
// Demonstrates: StarRating, EmojiRating, ThumbRating, Slider, SuggestionChips, RadioButton, dynamic styling
 
// ============================================
// HEADER
// ============================================
form.addRow(row => {
row.addTextPanel('header', {
label: 'Rate This Episode',
computedValue: () => 'Your feedback helps us create content you love. Takes less than 2 minutes!',
customStyles: {
background: 'linear-gradient(135deg, #dc2626 0%, #f97316 100%)',
color: 'white',
padding: '28px',
borderRadius: '12px',
textAlign: 'center'
}
});
});
 
// ============================================
// SECTION 1: Quick Rating
// ============================================
const quickRating = form.addSubform('quickRating', {
title: 'Quick Rating',
customStyles: () => {
const rating = quickRating.starRating('episodeRating')?.value();
if (rating !== null && rating !== undefined) {
if (rating >= 4) return { backgroundColor: '#dcfce7', padding: '16px', borderRadius: '8px' };
if (rating >= 3) return { backgroundColor: '#fef9c3', padding: '16px', borderRadius: '8px' };
return { backgroundColor: '#fee2e2', padding: '16px', borderRadius: '8px' };
}
return { backgroundColor: '#fff7ed', padding: '16px', borderRadius: '8px' };
}
});
 
quickRating.addRow(row => {
row.addStarRating('episodeRating', {
label: 'How would you rate this episode overall?',
maxStars: 5,
size: 'xl',
alignment: 'center',
showConfettiOnMax: true
});
});
 
quickRating.addRow(row => {
row.addEmojiRating('emotionalResponse', {
label: 'How did this episode make you feel?',
preset: 'mood',
size: 'lg',
showLabels: true,
alignment: 'center'
});
});
 
// ============================================
// SECTION 2: Content Quality
// ============================================
const contentSection = form.addSubform('contentSection', {
title: 'Content Quality',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null,
customStyles: { backgroundColor: '#f8fafc', padding: '16px', borderRadius: '8px' }
});
 
contentSection.addRow(row => {
row.addSlider('contentRelevance', {
label: 'How relevant was the content to your interests?',
min: 1,
max: 10,
step: 1,
showValue: true,
defaultValue: 7
}, '1fr');
row.addSlider('episodeLength', {
label: 'How was the episode length?',
min: 1,
max: 5,
step: 1,
showValue: true,
defaultValue: 3
}, '1fr');
});
 
contentSection.addRow(row => {
row.addTextPanel('lengthGuide', {
computedValue: () => {
const length = contentSection.slider('episodeLength')?.value();
if (length === 1) return '⏪ Way too short';
if (length === 2) return '📉 A bit short';
if (length === 3) return '✅ Just right';
if (length === 4) return '📈 A bit long';
if (length === 5) return '⏩ Way too long';
return '';
},
customStyles: {
textAlign: 'center',
color: '#6b7280',
fontSize: '14px',
marginTop: '-8px'
}
});
});
 
contentSection.addSpacer({ height: '12px' });
 
contentSection.addRow(row => {
row.addThumbRating('learnedSomething', {
label: 'Did you learn something new or gain valuable insight?',
showLabels: true,
upLabel: 'Yes!',
downLabel: 'Not really',
size: 'lg',
alignment: 'center'
});
});
 
// ============================================
// SECTION 3: Host & Production
// ============================================
const productionSection = form.addSubform('productionSection', {
title: 'Host & Production',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null,
customStyles: { backgroundColor: '#fdf4ff', padding: '16px', borderRadius: '8px' }
});
 
productionSection.addRow(row => {
row.addStarRating('hostPerformance', {
label: 'Host delivery & presentation',
maxStars: 5,
size: 'md',
alignment: 'center'
}, '1fr');
row.addStarRating('audioQuality', {
label: 'Audio quality & production',
maxStars: 5,
size: 'md',
alignment: 'center'
}, '1fr');
});
 
productionSection.addSpacer({ height: '12px' });
 
productionSection.addRow(row => {
row.addMatrixQuestion('productionMatrix', {
label: 'Rate specific aspects:',
rows: [
{ id: 'pacing', label: 'Episode pacing' },
{ id: 'clarity', label: 'Clarity of explanations' },
{ id: 'engagement', label: 'Kept my attention' },
{ id: 'guests', label: 'Guest quality (if applicable)', allowDeselect: true }
],
columns: [
{ id: 'needs-work', label: 'Needs Work' },
{ id: 'okay', label: 'Okay' },
{ id: 'good', label: 'Good' },
{ id: 'great', label: 'Great' },
{ id: 'excellent', label: 'Excellent' }
],
striped: true,
fullWidth: true
});
});
 
// ============================================
// SECTION 4: Topics & Preferences
// ============================================
const topicsSection = form.addSubform('topicsSection', {
title: 'Topics & Preferences',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null,
customStyles: { backgroundColor: '#fef3c7', padding: '16px', borderRadius: '8px' }
});
 
topicsSection.addRow(row => {
row.addSuggestionChips('favoriteTopics', {
label: 'What topics would you like more of? (Select up to 4)',
suggestions: [
{ id: 'interviews', name: 'Expert interviews' },
{ id: 'tutorials', name: 'How-to tutorials' },
{ id: 'news', name: 'Industry news' },
{ id: 'stories', name: 'Personal stories' },
{ id: 'debates', name: 'Debates & discussions' },
{ id: 'q-and-a', name: 'Q&A episodes' },
{ id: 'deep-dives', name: 'Deep dives' },
{ id: 'quick-tips', name: 'Quick tips' },
{ id: 'case-studies', name: 'Case studies' },
{ id: 'behind-scenes', name: 'Behind the scenes' }
],
max: 4,
alignment: 'left'
});
});
 
topicsSection.addSpacer({ height: '12px' });
 
topicsSection.addRow(row => {
row.addTextarea('topicSuggestions', {
label: 'Any specific topics or guests you\'d like us to cover?',
placeholder: 'Share your ideas for future episodes...',
rows: 2,
autoExpand: true
});
});
 
// ============================================
// SECTION 5: Sharing & Loyalty
// ============================================
const loyaltySection = form.addSubform('loyaltySection', {
title: 'Would You Recommend?',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null
});
 
loyaltySection.addRow(row => {
row.addThumbRating('wouldShare', {
label: 'Would you share this episode with a friend?',
showLabels: true,
upLabel: 'Definitely!',
downLabel: 'Probably not',
size: 'lg',
alignment: 'center'
});
});
 
loyaltySection.addRow(row => {
row.addTextarea('shareReason', {
label: () => {
const wouldShare = loyaltySection.thumbRating('wouldShare')?.value();
if (wouldShare === 'up') return 'What would you tell them about this episode?';
if (wouldShare === 'down') return 'What would make you more likely to share?';
return 'Any thoughts on sharing this episode?';
},
placeholder: () => {
const wouldShare = loyaltySection.thumbRating('wouldShare')?.value();
if (wouldShare === 'up') return 'Help us understand what makes this worth sharing...';
if (wouldShare === 'down') return 'Your feedback helps us create more shareable content...';
return 'Optional...';
},
rows: 2,
autoExpand: true,
isVisible: () => loyaltySection.thumbRating('wouldShare')?.value() !== null
});
});
 
// ============================================
// SECTION 6: Listening Context
// ============================================
const contextSection = form.addSubform('contextSection', {
title: 'About Your Listening',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null,
customStyles: { backgroundColor: '#f0fdf4', padding: '16px', borderRadius: '8px' }
});
 
contextSection.addRow(row => {
row.addRadioButton('listeningContext', {
label: 'When/where did you listen to this episode?',
options: [
{ id: 'commute', name: 'During commute' },
{ id: 'exercise', name: 'While exercising' },
{ id: 'work', name: 'While working' },
{ id: 'relax', name: 'While relaxing' },
{ id: 'chores', name: 'During chores' },
{ id: 'dedicated', name: 'Dedicated listening time' }
],
orientation: 'horizontal'
}, '1fr');
row.addRadioButton('listenFrequency', {
label: 'How often do you listen to this podcast?',
options: [
{ id: 'first-time', name: 'First episode' },
{ id: 'occasional', name: 'Occasionally' },
{ id: 'regular', name: 'Regularly' },
{ id: 'every-episode', name: 'Every episode' }
],
orientation: 'vertical'
}, '1fr');
});
 
contextSection.addRow(row => {
row.addCheckbox('subscribed', {
label: 'I am subscribed to this podcast'
});
});
 
contextSection.addRow(row => {
row.addDropdown('discoverySource', {
label: 'How did you discover this podcast?',
placeholder: 'Select...',
options: [
{ id: 'recommendation', name: 'Friend/colleague recommendation' },
{ id: 'social-media', name: 'Social media' },
{ id: 'search', name: 'Podcast app search' },
{ id: 'guest', name: 'Guest appearance elsewhere' },
{ id: 'blog', name: 'Blog/article' },
{ id: 'charts', name: 'Podcast charts' },
{ id: 'other', name: 'Other' }
],
isVisible: () => contextSection.radioButton('listenFrequency')?.value() === 'first-time'
});
});
 
// ============================================
// SECTION 7: Summary
// ============================================
const summarySection = form.addSubform('summary', {
title: 'Your Feedback Summary',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null
});
 
summarySection.addRow(row => {
row.addTextPanel('summaryContent', {
computedValue: () => {
const episodeRating = quickRating.starRating('episodeRating')?.value();
const emotional = quickRating.emojiRating('emotionalResponse')?.value();
const hostRating = productionSection.starRating('hostPerformance')?.value();
const audioRating = productionSection.starRating('audioQuality')?.value();
const wouldShare = loyaltySection.thumbRating('wouldShare')?.value();
const topics = topicsSection.suggestionChips('favoriteTopics')?.value() || [];
 
if (!episodeRating) return '';
 
const emotionLabels: Record<string, string> = {
'sad': '😢 Sad',
'down': '😔 Down',
'neutral': '😐 Neutral',
'happy': '😊 Happy',
'excited': '🤩 Excited'
};
 
let emoji = '🎙️';
if (episodeRating >= 5) emoji = '⭐';
else if (episodeRating >= 4) emoji = '👍';
else if (episodeRating <= 2) emoji = '💭';
 
let summary = `${emoji} Episode Feedback\n`;
summary += `${'═'.repeat(24)}\n\n`;
summary += `🎧 Episode Rating: ${episodeRating}/5 stars\n`;
 
if (emotional) {
summary += `${emotionLabels[emotional] || emotional}\n`;
}
 
if (hostRating) summary += `🎤 Host: ${hostRating}/5`;
if (audioRating) summary += ` | 🔊 Audio: ${audioRating}/5`;
if (hostRating || audioRating) summary += '\n';
 
if (wouldShare) {
summary += `\n${wouldShare === 'up' ? '📤 Would share' : '🤔 Might not share'}`;
}
 
if (topics.length > 0) {
summary += `\n🎯 Interested in ${topics.length} topic${topics.length > 1 ? 's' : ''}`;
}
 
return summary;
},
customStyles: () => {
const rating = quickRating.starRating('episodeRating')?.value();
const baseStyles = {
padding: '16px',
borderRadius: '8px',
whiteSpace: 'pre-wrap',
fontFamily: 'monospace',
fontSize: '14px'
};
 
if (rating && rating >= 4) {
return { ...baseStyles, backgroundColor: '#fef3c7', borderLeft: '4px solid #f97316' };
} else if (rating && rating >= 3) {
return { ...baseStyles, backgroundColor: '#fef9c3', borderLeft: '4px solid #eab308' };
} else if (rating) {
return { ...baseStyles, backgroundColor: '#fee2e2', borderLeft: '4px solid #ef4444' };
}
return baseStyles;
}
});
});
 
// ============================================
// FORM CONFIGURATION
// ============================================
form.configureSubmitButton({
label: 'Submit Feedback',
isVisible: () => quickRating.starRating('episodeRating')?.value() !== null
});
 
form.configureCompletionScreen({
type: 'text',
title: 'Thanks for Your Feedback!',
message: 'Your insights help us create better content. We read every response and use your feedback to improve future episodes. Keep listening!'
});
}
 

Frequently Asked Questions

When should I ask for podcast feedback?

Best practices include: after highly engaging episodes, periodically (every 10-20 episodes), during audience growth pushes, or when testing new formats. Include a call-to-action in the episode and link in show notes.

What makes a good podcast rating system?

Effective podcast ratings combine quantitative metrics (star ratings, NPS) with qualitative insights (favorite moments, topic preferences). Balance quick ratings with optional deep-dive questions to respect listener time.

How do I improve my podcast based on feedback?

Focus on patterns rather than individual comments. Track which topics generate highest engagement, note audio quality concerns, and experiment with episode length based on listener preferences. Close the loop by mentioning improvements on air.

How can I increase podcast survey response rates?

Keep surveys under 2 minutes, offer incentives (shoutouts, early access), embed surveys in episode platforms where possible, and personally ask for feedback during episodes. Timing matters: send within 24-48 hours of episode release.

What metrics matter most for podcast growth?

Key metrics include: overall satisfaction, likelihood to recommend (NPS), topic interest scores, and engagement drivers. Also track completion rates and drop-off points to identify which episodes resonate best.