This is a reference guide for describing how the Admin Dashboard Reports function, the data they’re displaying, the corresponding Data Explorer SQL queries, and where to find the Ruby code for each report.
Required user level: Staff
Discourse contains several built-in admin dashboard Reports that can be useful for exploring stats about a community. To access these reports, you can visit discourse.example.com/admin/dashboard/reports
on your site ( or click the Reports link at the top of the dashboard). Note that only staff users will have access to these reports.
Data from all users on a site is included in these reports (including staff activity like visiting admin pages). The only condition that is put on users in the reports is that they are ‘real’ users, which is used to exclude the system
user from the reports.
Plugins can also add reports to the dashboard with add_report(name, &block)
.
Ruby models for most reports are located at: discourse/app/models/concerns/reports/. Some reports also reference: discourse/app/models/report.rb
The dashboard-sql topics contain all of the corresponding SQL queries that can be used to generate reports identical to the Admin Dashboard Reports. These queries can be used within the Data Explorer plugin and for Running Data Explorer queries with the Discourse API
Accepted solutions
Displays daily tally of posts marked as solutions.
Ruby code: discourse-solved/plugin.rb at main · discourse/discourse-solved · GitHub
SQL Query: Dashboard Report - Accepted Solutions
Admin Logins
List of admin login times with locations.
Ruby Code: discourse/app/models/concerns/reports/staff_logins.rb
SQL Query: Dashboard Report - Admin Logins
Anonymous
Number of new pageviews by visitors not logged in to an account.
Ruby Code: discourse/app/models/concerns/reports/consolidated_page_views.rb
SQL Query: Dashboard Report - Anonymous
Bookmarks
Number of new topics and posts bookmarked.
Ruby Code: discourse/app/models/concerns/reports/bookmarks.rb
SQL Query: Dashboard Report - Bookmarks
Consolidated Pageviews
Pageviews for logged in users, anonymous users and crawlers.
Ruby Code: discourse/app/models/concerns/reports/consolidated_page_views.rb
SQL Query: Dashboard Report - Consolidated Pageviews
Consolidated Pageviews with Browser Detection (Experimental)
Pageviews for logged in users, anonymous users, known crawlers and other. This experimental report ensures logged-in/anon requests are coming from real browsers before counting them.
Ruby Code: discourse/app/models/concerns/reports/consolidated_page_views_browser_detection.rb
SQL Query: Dashboard Report - Consolidated Pageviews with Browser Detection
DAU/MAU
Number of members that logged in in the last day divided by number of members that logged in in the last month – returns a % which indicates community ‘stickiness’. Aim for >20%.
Ruby Code: discourse/app/models/concerns/reports/dau_by_mau.rb
SQL Query: Dashboard Report - DAU/MAU
Daily Engaged Users
Number of users that have liked or posted in the last day.
Ruby Code: discourse/app/models/concerns/reports/daily_engaged_users.rb
SQL Query: Dashboard Report - Daily Engaged Users
Emails Sent
Number of new emails sent.
Ruby Code: discourse/app/models/concerns/reports/emails.rb
SQL Query: Dashboard Report - Emails Sent
Flags
Number of new flags.
Ruby Code: discourse/app/models/concerns/reports/flags.rb
SQL Query: Dashboard Report - Flags
Flags Status
List of flags’ statuses including type of flag, poster, flagger, and time to resolution.
Ruby Code: discourse/app/models/concerns/reports/flags_status.rb
SQL Query: Dashboard Report - Flags Status
Likes
Number of new likes.
Ruby Code: discourse/app/models/concerns/reports/likes.rb
SQL Query: Dashboard Report - Likes
Logged In
Number of new pageviews from logged in users.
Ruby Code: discourse/app/controllers/admin/reports_controller.rb#L5
SQL Query: Dashboard Report - Logged In
Moderator Activity
List of moderator activity including flags reviewed, reading time, topics created, posts created, personal messages created, and revisions.
SQL Query: Dashboard Report - Moderator Activity
Moderator Warning
Number of warnings sent by personal messages from moderators.
Ruby Code: discourse/app/models/concerns/reports/moderator_warning_private_messages.rb
SQL Query: Dashboard Report - Moderator Warnings
New Contributors
Number of users who made their first post during this period.
Ruby Code: discourse/app/models/concerns/reports/new_contributors.rb
SQL Query: Dashboard Report - New Contributors
Notify Moderators
Number of times moderators have been privately notified by a flag.
Ruby Code: discourse/app/models/concerns/reports/notify_moderators_private_messages.rb
SQL Query: Dashboard Report - Notify Moderators
Notify User
Number of times users have been privately notified by a flag.
Ruby Code: discourse/app/models/concerns/reports/notify_user_private_messages.rb
SQL Query: Dashboard Report - Notify User
Overall Sentiment
Number of posts classified either positive or negative with the “Sentiment” AI, over a specified period.
Ruby Code: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub
SQL Query: Dashboard Report - Overall Sentiment
Pageviews
Number of new pageviews from all visitors. Same as the total for Consolidated Pageviews.
Discourse uses the follow query to determine total pageviews:
SQL Query: Dashboard Report - Consolidated Pageviews
Post Edits
Number of new post edits.
Ruby Code: discourse/app/models/concerns/reports/post_edits.rb
SQL Query: Dashboard Report - Post Edits
Posts
New posts created during the selected time period
Ruby Code: discourse/app/models/concerns/reports/posts.rb
SQL Query: Dashboard Report - Posts
Post Emotion
Number of posts classified by AI with one of following emotions: Sadness, Surprise, Fear, Anger, Joy, Disgust - group by poster trust level, over a specified period.
Ruby Code: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub
SQL Query: Dashboard Report - Post Emotion
Reactions
List most recent reactions.
Ruby code: discourse-reactions/plugin.rb at main · discourse/discourse-reactions · GitHub
SQL Query: Dashboard Report - Reactions
Signups
New account registrations for this period.
Ruby Code: discourse/app/models/concerns/reports/signups.rb
SQL Query: Dashboard Report - Signups
Suspicious Logins
Details of new logins that differ suspiciously from previous logins.
Ruby Code: discourse/app/models/concerns/reports/suspicious_logins.rb
SQL Query: Dashboard Report - Suspicious Logins
System
Number of personal messages sent automatically by the System.
Ruby Code: discourse/app/models/concerns/reports/system_private_messages.rb
SQL Query: Dashboard Report - System
Time to first response
Average time (in hours) of the first response to new topics.
Ruby Code: discourse/app/models/concerns/reports/time_to_first_response.rb
SQL Query: Dashboard Report - Time to First Response
Top Ignored / Muted Users
Users who have been muted and/or ignored by many other users.
Ruby Code: discourse/app/models/concerns/reports/top_ignored_users.rb
SQL Query: Dashboard Report - Top Ignored / Muted Users
Top Referred Topics
Topics that have received the most clicks from external sources.
Ruby Code: discourse/app/models/concerns/reports/top_referred_topics.rb
SQL Query: Dashboard Report - Top Referred Topics
Top Referrers
Users listed by number of clicks on links they have shared.
Ruby Code: discourse/app/models/concerns/reports/top_referrers.rb
SQL Query: Dashboard Report - Top Referrers
Top Traffic Sources
External sources that have linked to this site the most.
Ruby Code: discourse/app/models/concerns/reports/top_traffic_sources.rb
SQL Query: Dashboard Report - Top Traffic Sources
Top Uploads
List all uploads by extension, filesize and author.
Ruby Code: discourse/app/models/concerns/reports/top_uploads.rb
SQL Query: Dashboard Report - Top Uploads
Top Users by likes received
Top 10 users who have received likes.
Ruby Code: discourse/app/models/concerns/reports/top_users_by_likes_received.rb
SQL Query: Dashboard Report - Top Users by Likes Received
Top Users by likes received from a user with a lower trust level
Top 10 users in a higher trust level being liked by people in a lower trust level.
Ruby Code: discourse/app/models/concerns/reports/top_users_by_likes_received_from_inferior_trust_level.rb
SQL Query: Dashboard Report - Top Users by Likes Received from a User with a Lower Trust Level
Top Users by likes received from a variety of people
Top 10 users who have had likes from a wide range of people.
Ruby Code: discourse/app/models/concerns/reports/top_users_by_likes_received_from_a_variety_of_people.rb
SQL Query: Dashboard Report - Top Users by Likes Received From a Variety of People
Topics
New topics created during this period.
Ruby Code: discourse/app/models/concerns/reports/topics.rb
SQL Query: Dashboard Report - Topics
Topics with no response
Number of new topics created that did not receive a response.
Ruby Code: discourse/app/models/concerns/reports/topics_with_no_response.rb
SQL Query: Dashboard Report - Topics with No Response
Trending Search Terms
Most popular search terms with their click-through rates.
Ruby Code: discourse/app/models/concerns/reports/trending_search.rb
SQL Query: Dashboard Report - Trending Search Terms
Trust Level growth
Number of users who increased their Trust Level during this period.
The Trust Level Growth report is pulling data from the user_histories
table in the Discourse database. Specifically, this report is counting the number of times a user_histories.action
is recorded for an increase in a user trust level.
Ruby Code: discourse/app/models/concerns/reports/trust_level_growth.rb
SQL Query: Dashboard Report - Trust Level Growth
Unaccepted policies
This dashboard report identifies topics with policies that have not been accepted by certain users.
Ruby code: discourse-policy/plugin.rb at main · discourse/discourse-policy · GitHub
SQL Query: Dashboard Report - Unaccepted Policies
User Flagging Ratio
List of users ordered by ratio of staff response to their flags (disagreed to agreed).
Ruby Code: discourse/app/models/concerns/reports/user_flagging_ratio.rb
SQL Query: Dashboard Report - User Flagging Ratio
User notes
List most recent user notes.
Ruby code: discourse-user-notes/plugin.rb at main · discourse/discourse-user-notes · GitHub
SQL Query: Dashboard Report - User Notes
User Profile Views
Total new views of user profiles.
Ruby Code: discourse/app/models/concerns/reports/profile_views.rb
SQL Query: Dashboard Report - User Profile Views
User Visits
The total number of logged-in user visits in the forum for the selected time period (today, yesterday, last 7 days, etc).
A User Visit is counted anytime a unique logged in user visits the site, up to once per day. For example, if a user visited a site every day within a week, Discourse would count that as 7 user visits.
Ruby Code: discourse/app/models/concerns/reports/visits.rb
SQL Query: Dashboard Report - User Visits
User Visits (mobile)
Number of unique logged-in users who visited using a mobile device.
Ruby Code: discourse/app/models/concerns/reports/mobile_visits.rb
SQL Query: Dashboard Report - User Visits
User-to-User (excluding replies)
Number of newly initiated personal messages.
Ruby Code: discourse/app/models/concerns/reports/user_to_user_private_messages.rb
SQL Query: Dashboard Report - User-to-User
User-to-User (with replies)
Number of all new personal messages and responses.
Ruby Code: discourse/app/models/concerns/reports/user_to_user_private_messages_with_replies.rb
SQL Query: Dashboard Report - User-to-User
Users per Trust Level
Number of users grouped by trust level.
Ruby Code: discourse/app/models/concerns/reports/users_by_trust_level.rb
SQL Query: Dashboard Report - Users Per Trust Level
Users per Type
Number of users grouped by admin, moderator, suspended, and silenced.
Ruby Code: discourse/app/models/concerns/reports/users_by_type.rb
SQL Query: Dashboard Report - Users Per Type
Web Crawler Pageviews
Total pageviews from web crawlers over time.
Ruby Code: discourse/app/models/report.rb
SQL Query: Dashboard Report - Web Crawler Pageviews
Web Crawler User Agents
List of web crawler user agents, sorted by pageviews.
Ruby Code: discourse/app/models/concerns/reports/web_crawlers.rb
SQL Query: Dashboard Report - Web Crawler User Agents
Last edited by @hugh 2024-08-23T01:42:07Z
Last checked by @hugh 2024-08-23T01:42:15Z
Check document
Perform check on document: