Skip to content

Grades

A grade names one degree of AI involvement and carries the facts the rest of the module reads: a severity for ordering, the EU icon variant to show, the disclosure sentence the reader sees, and whether AI generated or manipulated the published content at all. Grades are config entities. Manage them at /admin/config/content/ai-disclosure/grades.

A grade says how AI was involved. It does not say whether Article 50(4) applies: that is the scope assessment, answered on the content and on the profile.

The grades list

The nine shipped grades

Machine name Label Severity EU icon Label required
human_only Human only 0 none No
ai_metadata Metadata picked by AI 10 none No
ai_rated Rated / scored by AI 20 ai No
ai_translated AI translated 30 ai_modified Yes
ai_summarized AI summarized 40 ai_generated Yes
ai_partly_assisted Partly AI assisted 50 ai_modified Yes
ai_assisted_hitl AI assisted (human led) 60 ai_modified Yes
ai_generated_autonomous Autonomously AI generated 70 ai_generated Yes
ai_deepfake AI deep fake (media) 80 ai_generated Yes

Label required is the factual premise both paragraphs of Article 50(4) share: with this grade, AI generated or manipulated the content that was published. The first three do not meet it and fall outside both paragraphs, so they never need an assessment.

Grades used to carry a second flag, review_exemptible, and ai_deepfake was the only one set to No. It was standing in for something a grade cannot know: whether the content is a deep fake or text. That is now an explicit answer on the content, so the flag is gone.

Severity orders the grades and drives the recorder's never-downgrade rule: an automated caller can only raise the effective grade, never lower it.

Each grade also stores the IPTC digital source type URI that feeds the machine-readable marking.

The machine names are a stable API

Other modules reference grades by ID, so the shipped machine names are not renamed within a major version. Everything else on a grade is editable by the site: the label, the sentence, the severity, the icon, and the legal flag.

Before editing Label required, read Article 50. The shipped configuration states whether AI generated or manipulated the published content; editing it changes that statement, not only its wording.

Visible parts

Each grade also carries five checkboxes - icon, sentence, legal line, description, editorial statement link - that decide which parts of the rendered disclosure show for content at that grade. They only switch a part on or off; they never move where its data comes from: the legal line and the statement link still come from the site's Policy tab, and the description still comes from the profile or the item.

Grade Icon Sentence Legal Description Statement
human_only No No No No No
ai_metadata No Yes No No No
ai_rated Yes Yes No No No
ai_translated Yes Yes Yes No Yes
ai_summarized Yes Yes Yes Yes Yes
ai_partly_assisted Yes Yes Yes Yes Yes
ai_assisted_hitl Yes Yes Yes Yes Yes
ai_generated_autonomous Yes Yes Yes Yes Yes
ai_deepfake Yes Yes Yes Yes Yes

When Label required resolves to Required, the icon and the sentence render whatever the checkboxes say: Article 50(4) does not bend to a display preference. Nothing else is exempted - unchecking the legal line, the description or the statement link still hides them, even on a required label.

An already-installed site keeps every part on until it runs the update that sets this table on the nine shipped grades: the property's own default is "everything on", so nothing changes for a site that never runs it, and it never touches a grade the site created itself. After the update, a site that relied on ai_translated always showing its description, for example, stops seeing it, and gets it back by checking that grade's "Description" box again.