Reports the top video performers across selected Wistia projects in a chosen date range. Use it to see which videos are getting watched and which aren't.
Plays — number of times the video was actually played (clicked the play button) in the date range. Most useful single metric.
Hours Watched — total time spent watching across all plays. A video with many short plays scores low; a video with a few full-length plays scores higher. Reflects depth of engagement.
Loads — number of times the page containing the video loaded. Reflects reach (how often the video appeared in front of someone) regardless of whether they clicked play.
Play Rate — plays divided by loads, expressed as a percentage. Reflects how compelling the video is to viewers who land on its page. Higher = better hook.
Wistia's lifetime stats endpoint exposes averagePercentWatched and percentOfVisitorsClickingPlay, but those are not date-rangeable through the API. The date-ranged endpoint (/by_date.json) only returns load_count, play_count, and hours_watched. So this dashboard cannot show "average % watched in March" — only lifetime engagement %.
Click "Projects" in the toolbar to choose which Wistia projects to include. By default, two projects are pre-selected: Fund 5 and Private Podcasts Audio & Fund Updates — the most relevant for current investor reporting.
Each project shows its total media count next to the name. Selecting more projects means more API calls and a slower load — Wistia's stats endpoint takes one video at a time. Plan for ~150ms per video. With all 28 projects (~460 videos), expect a 1-2 minute load.
Click any column header to sort by it. Click again to flip direction. The four metric columns (Plays, Hours Watched, Loads, Play Rate) start at descending; the Video and Project columns start at ascending (alphabetical).
The "Sort by" dropdown in the toolbar mirrors the metric columns only — it doesn't show "Video Name" or "Project" because those aren't ranking metrics. Clicking a metric column updates the dropdown; clicking a string column leaves the dropdown alone.
Switching sort never re-fetches data — it's instant. Switching the date range or the project selection DOES re-fetch.
Type a string in the "Filter by video name" box at the top of the table. Case-insensitive substring match — typing fund matches "Fund 5 Webinar" and "fund updates" both. Filters as you type, no submit needed.
The filter applies to both the table AND the KPI/footer totals, so the numbers always match what's visible. The row count above the table tells you how many videos match (e.g. "Top 10 of 12 (filtered from 115)").
Top N applies AFTER the filter — so "filter for fund, Top 10" gives the top 10 fund-matching videos by the active sort.
Custom range requires a button click. Other range presets auto-refresh.
No cache. Every load fetches live from Wistia. If something feels slow, that's why.
Project allowlist is hardcoded. If a new Sunrise project gets added in Wistia, it won't appear in the picker until the dashboard is updated. The current allowlist is documented in the source code as PROJECTS.