One of the things we struggle with on is un-actionable reports. For various reasons, most of the reports we handle are for posts that are either appropriately content-warned or don’t require a content warning under our content policy–things like faces, butts, and shirtlessness. We can choose to ignore reports from a domain, but we’d rather not do that: it means we might miss out on important reports that require moderator action. We can also talk to remote instance administrators and ask them to talk to their users about not sending copies of reports to the remote instance if they don’t know what the remote instance policy is, but that’s time consuming, and we only want to do it if there’s an ongoing problem.

I finally broke down and dug around in the data model to figure out how to get statistics on this. If you’re a Mastodon admin and you’d like to figure out which domains send you the most non-actionable reports, you can run this at rails console:

# Map of domains to [action, no-action] counts
stats = Report.all.reduce({}) do |stats, r|
  domain = r.account.domain
  domain_stats = stats[domain] || [0, 0]
  action = r.history.any? do |a|
    # If you took action, there'd be a Status or Account target_type
    a.target_type != 'Report'
  if action
    domain_stats[0] += 1
    domain_stats[1] += 1
  stats[domain] = domain_stats

# Top 20 domains, sorted by descending no-action count
stats.sort_by do |k, stats|

For example:

[[nil, [77, 65] ; nil is your local instance
 ["", [3, 52]],
 ["", [40, 24]],

Post a Comment

Comments are moderated. Links have nofollow. Seriously, spammers, give it a rest.

Please avoid writing anything here unless you're a computer. This is also a trap:

Supports Github-flavored Markdown, including [links](, *emphasis*, _underline_, `code`, and > blockquotes. Use ```clj on its own line to start an (e.g.) Clojure code block, and ``` to end the block.