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]],

Chiming in somewhere, but will you publish the findings as part of maybe yearly moderation transparency reports for the instance (w/o disclosing which instance for privacy reasons)?

Aphyr on

We generally publish any instance-level moderation actions on the admin account. Honestly there’s not much to report–I think we’ve only silenced reports from a couple instances in four years? Generally this kind of thing can be resolved via inter-instance admin chats.

Emelia Smith

One thing I think could really improve this situation is for your local instance to cache and expose the rules for remote instances (arguably they could “update” their rules/ToS/Privacy Policy via an Update Document activity on activitypub, where we’re using documents to describe rules / terms / privacy policies).

This would allow for apps to be like “okay, you wanna report this, here’s this servers rules as a reminder, and here’s the remote server’s rules”

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.