Wistia Video Performance Dashboard v2

Ready

Projects to include

Period
Total Plays
Hours Watched
avg minutes per play
Total Loads
page impressions
Play Rate
plays per load

Top Videos by Plays

Initializing…

Wistia Video Performance Dashboard

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.

Metrics

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.

What's NOT shown (and why)

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 %.

Project picker

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.

Sort behavior

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.

Name filter

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.

Limitations

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.