Jay-C raised concerns about meeting new EU Digital Services Act (DSA) requirements, specifically the standardized Transparency Report and Statements of Reasons (SOR). He noted that Discourse currently lacks the ability to record structured data alongside moderation decisions, such as custom suspension reasons, contractual bases, and information sources. Using free-text fields was deemed unsustainable for generating the required structured data.
HAWK acknowledged the new reporting standards and confirmed that Discourse is working on adding the necessary data fields for machine-readable reports and SOR database submissions. Jay-C later reported that while new DSA features appeared in the Experimental settings, the community rules were not populating the moderation options when suspending users via their profile.
awesomerobot clarified that the DSA modal appears when acting on a flag, not directly from the user profile. Jay-C tested the flag workflow and found it confusing, noting that:
The “Ground” field in the admin schema maps to the Community Rule title, which felt unintuitive.
Neither the Ground nor the Explanation was visible to the end-user in notifications, failing SOR transparency requirements.
The purpose of the “Explanation” field was unclear.
tgxworld responded to the feedback, stating that including the ground and explanation in user-facing moderation notices is a known gap currently being addressed. He clarified that the “Explanation” field is specifically required by the transparency database to justify why content violates terms and conditions, distinct from the facts provided to the user. The thread highlights the ongoing development to align Discourse’s moderation tools with DSA compliance standards.
We’re currently in the trenches of DSA compliance. Part of this involves looking at our use of Discourse, as our discussion board qualifies as an “online platform” under the DSA.
As you may know, there is now a standardised Content Moderation Transparency Report, which removes any flexibility we had previously. An additional requirement on top of this is to submit applicable Statements of Reasons to the DSA Transparency Database, and we’ve run into some limitations with the moderation abilities in Discourse.
In particular, we need to be able to consistently record structured information alongside moderation decisions:
Expanded, custom suspension reasons, which we can align with the DSA’s standardised taxonomy. It’s currently not possible to add additional suspension reasons, rather than renaming the existing predefined reasons
Whether the decision relates to illegal content or a Terms & Conditions violation
The contractual basis for the decision
The information source (user report, own-initiative moderation, Trusted Flagger, etc.)
It doesn’t seem possible to configure custom dropdowns within the suspension UI to capture this information, but please correct me if I’m mistaken. We can provide additional information through the “Email Message” field, but this doesn’t feel like a viable long-term solution, as it puts a lot of responsibility on our moderators and doesn’t give us the structured data we yearn for.
I’d be really interested to know how other EU customers (and Discourse themselves?) are approaching the standardised DSA reporting + Statement of Reasons requirements, and whether any additional functionality in this area is planned. We really don’t want to move away from Discourse, so I hope we can work something out - any advice appreciated!
I did some digging and it does look like we are in scope to use this horrific template. Let me do some due diligence with our lawyer and I’ll come back to you.
I hope you don’t mind, but I’d prefer not to publicly identify my employer from this account. We haven’t yet published a report using the new standardised template, which is what prompted this.
That’s fine, it just makes it a bit harder to help because I don’t know where you are starting from. Theoretically you have a well developed report already (like ours) so I wondered specifically what gaps you have outside of the submission of reasons.
Update for you @Jay-C—we are spec’ing out the work required to add additional data fields for the machine readable report and for submissions to the SOR database. We will update in due course.
Hey @HAWK ! I notice the new DSA features in Experimental, which is super cool! I tried adding some Community Rules, making sure the ‘DSA reporting enabled’ box was checked, but the Community Rules don’t seem to be working - none of the custom options are appearing within the moderation list of reasons. I assume this is known and due to its Experimental nature, but wanted to let you know.
Alright, I DMed myself from an alt account, Flagged it, and handled it as a moderator. Admittedly I do find the workflow a bit confusing as it stands.
The ‘Ground’ entered in /admin/schema/dsa_community_rules appears to become the title of the ‘Community Rule’, which doesn’t feel intuitive
The ‘Ground’ entered in /admin/schema/dsa_community_rules is then shown under the ‘Community Rule’ dropdown in the DSA Classification screen shown above, but I’m not sure this is the best place for it
Neither Ground or Explanation appears to be shown to the end-user for Statement of Reasons purposes (nothing in my alt account inbox or DMs referencing this)
I’m not sure what the relevance of ‘Explanation’ in /admin/schema/dsa_community_rules is at this time, or where it’s shown
Curious what do you think would be a better place to show this?
We’re aware of this gap and are working to include the ground and explanation in moderation notices that we send out.
The explanation is used when submitting statement of records to the transparency database which requires a field to “to explain as to why the information is considered incompatible with a specific section in the service’s terms and conditions. The explanation does not have to repeat the facts and circumstances but can refer to those”