{
 "sources": [
  {
   "id": "x-abusive",
   "name": "X Help Center: Abuse and harassment policy",
   "url": "https://help.x.com/en/rules-and-policies/abusive-behavior",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261001205650/https://help.x.com/en/rules-and-policies/abusive-behavior",
   "archivedAt": "2026-10-01T20:56:50Z"
  },
  {
   "id": "x-hateful",
   "name": "X Help Center: Hateful conduct policy",
   "url": "https://help.x.com/en/rules-and-policies/hateful-conduct-policy",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261001072939/https://help.x.com/en/rules-and-policies/hateful-conduct-policy",
   "archivedAt": "2026-10-01T07:29:39Z"
  },
  {
   "id": "x-election",
   "name": "X Help Center: Civic integrity policy",
   "url": "https://help.x.com/en/rules-and-policies/election-integrity-policy",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261006231331/https://help.x.com/en/rules-and-policies/election-integrity-policy",
   "archivedAt": "2026-10-06T23:13:31Z"
  },
  {
   "id": "x-rules",
   "name": "X Help Center: The X Rules",
   "url": "https://help.x.com/en/rules-and-policies/x-rules",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "x-violent-entities",
   "name": "X Help Center: Violent and hateful entities policy",
   "url": "https://help.x.com/en/rules-and-policies/violent-entities",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20260821070844/https://help.x.com/en/rules-and-policies/violent-entities",
   "archivedAt": "2026-08-21T07:08:44Z"
  },
  {
   "id": "x-violent-content",
   "name": "X Help Center: Violent content policy",
   "url": "https://help.x.com/en/rules-and-policies/violent-content",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20260925090125/https://help.x.com/en/rules-and-policies/violent-content",
   "archivedAt": "2026-09-25T09:01:25Z"
  },
  {
   "id": "x-illegal-regulated",
   "name": "X Help Center: Illegal or regulated goods and services policy",
   "url": "https://help.x.com/en/rules-and-policies/illegal-regulated-behaviors",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "ts-tos",
   "name": "Truth Social: Terms of Service",
   "url": "https://help.truthsocial.com/legal/terms-of-service",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261006193924/https://help.truthsocial.com/legal/terms-of-service",
   "archivedAt": "2026-10-06T19:39:24Z"
  },
  {
   "id": "ts-guidelines",
   "name": "Truth Social: Community Guidelines",
   "url": "https://help.truthsocial.com/community-guidelines-page",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222002/https://help.truthsocial.com/community-guidelines-page/",
   "archivedAt": "2026-10-10T22:20:02Z"
  },
  {
   "id": "rumble-terms",
   "name": "Rumble: Terms and Conditions (last updated September 1, 2026)",
   "url": "https://rumble.com/s/terms",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222018/https://rumble.com/s/terms",
   "archivedAt": "2026-10-10T22:20:18Z",
   "contentDigest": "sha256:4934bc655e799e0d6a2283417897e7988c3f9c528e46c14d8e17048f0ad9aeed"
  },
  {
   "id": "reddit-rules",
   "name": "Reddit Rules",
   "url": "https://redditinc.com/policies/reddit-rules",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222036/https://redditinc.com/policies/reddit-rules",
   "archivedAt": "2026-10-10T22:20:36Z",
   "contentDigest": "sha256:9bc598f3d20ffb8c6a0dcca9a4b2a89b9ed2ca9433bcd8627835878e4b75b94a"
  },
  {
   "id": "reddit-hate",
   "name": "Reddit Help: Hate",
   "url": "https://support.reddithelp.com/hc/en-us/articles/360045715951",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "reddit-quarantine",
   "name": "Reddit Help: Quarantined communities",
   "url": "https://support.reddithelp.com/hc/en-us/articles/360043069012-Quarantined-Communities",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "reddit-transactions",
   "name": "Reddit Help: Illegal or prohibited transactions",
   "url": "https://support.reddithelp.com/hc/en-us/articles/360043513471-Illegal-or-Prohibited-Transactions",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20260820050103/https://support.reddithelp.com/hc/en-us/articles/360043513471-Illegal-or-Prohibited-Transactions",
   "archivedAt": "2026-08-20T05:01:03Z"
  },
  {
   "id": "reddit-terrorism",
   "name": "Reddit Help: How Reddit fights the dissemination of terrorist content",
   "url": "https://support.reddithelp.com/hc/en-us/articles/19003525756564",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "reddit-violence",
   "name": "Reddit Help: Violence",
   "url": "https://support.reddithelp.com/hc/en-us/articles/360043513151",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "yt-hate",
   "name": "YouTube Help: Hate speech policy",
   "url": "https://support.google.com/youtube/answer/2801939",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "contentDigest": "sha256:3a92ff75153b556a264e5f0181c0f968cc7a44a2daf7e4e37704c6cd491969a2"
  },
  {
   "id": "yt-harassment",
   "name": "YouTube Help: Harassment and cyberbullying policies",
   "url": "https://support.google.com/youtube/answer/2802268",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261008234842/https://support.google.com/youtube/answer/2802268",
   "archivedAt": "2026-10-08T23:48:42Z",
   "contentDigest": "sha256:c79fc24bd878770b54561cc5369ff14213aab232d77cd680429ca6ae45870059"
  },
  {
   "id": "yt-medical",
   "name": "YouTube Help: Medical misinformation policy",
   "url": "https://support.google.com/youtube/answer/13813322",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "contentDigest": "sha256:0a8c9dc8f840f9ce75e581c0422172cc1e2ab1e681782dcc78d5423d14462f85"
  },
  {
   "id": "yt-elections",
   "name": "YouTube Help: Elections misinformation policies",
   "url": "https://support.google.com/youtube/answer/10835034",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222204/https://support.google.com/youtube/answer/10835034",
   "archivedAt": "2026-10-10T22:22:04Z",
   "contentDigest": "sha256:8425b088e6bb972a326185f3a6d86fadb33fa439528024769b17c57c3d81fe72"
  },
  {
   "id": "yt-extremism",
   "name": "YouTube Help: Violent extremist or criminal organizations policy",
   "url": "https://support.google.com/youtube/answer/9229472",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222257/https://support.google.com/youtube/answer/9229472",
   "archivedAt": "2026-10-10T22:22:57Z",
   "contentDigest": "sha256:619ebaf8a3d74abae17ee0014e2040b98ba657cea2a7f9a17b3bc4ad03f12f3d"
  },
  {
   "id": "yt-regulated-goods",
   "name": "YouTube Help: Sale of illegal or regulated goods or services policies",
   "url": "https://support.google.com/youtube/answer/9229611",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222316/https://support.google.com/youtube/answer/9229611",
   "archivedAt": "2026-10-10T22:23:16Z",
   "contentDigest": "sha256:f2bb95a3a49020849582f46668368c514d53171a4bbadd0b408c93b31d93c10c"
  },
  {
   "id": "yt-graphic",
   "name": "YouTube Help: Violent or graphic content policies",
   "url": "https://support.google.com/youtube/answer/2802008",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222423/https://support.google.com/youtube/answer/2802008",
   "archivedAt": "2026-10-10T22:24:23Z",
   "contentDigest": "sha256:a2fc9356fdd2f689231c93ac7d1f1365cb3a6d8835432805911d997d3b1f68c0"
  },
  {
   "id": "adsense-climate",
   "name": "Google Publisher Policies: Climate change misinformation (monetization)",
   "url": "https://support.google.com/adsense/answer/11214106",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010223011/https://support.google.com/adsense/answer/11214106",
   "archivedAt": "2026-10-10T22:30:11Z",
   "contentDigest": "sha256:31a91bead1016dc05046e2671b33b60a01b71b86d089f690eff1ab947374cb47"
  },
  {
   "id": "meta-hateful",
   "name": "Meta Community Standards: Hateful conduct",
   "url": "https://transparency.meta.com/policies/community-standards/hateful-conduct/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222531/https://transparency.meta.com/policies/community-standards/hateful-conduct/",
   "archivedAt": "2026-10-10T22:25:31Z",
   "contentDigest": "sha256:7d08e96e4d6de8ea09ca2d0e6fba1407600c1a7c7f3ab7a711c4e9b8f316c4c6"
  },
  {
   "id": "meta-bullying",
   "name": "Meta Community Standards: Bullying and harassment",
   "url": "https://transparency.meta.com/policies/community-standards/bullying-harassment/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222548/https://transparency.meta.com/policies/community-standards/bullying-harassment/",
   "archivedAt": "2026-10-10T22:25:48Z",
   "contentDigest": "sha256:7a0403209138fc203623d05c083738aca2ff257d512e2031b6fbd4c99462259a"
  },
  {
   "id": "meta-misinfo",
   "name": "Meta Community Standards: Misinformation",
   "url": "https://transparency.meta.com/policies/community-standards/misinformation/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222606/https://transparency.meta.com/policies/community-standards/misinformation/",
   "archivedAt": "2026-10-10T22:26:06Z",
   "contentDigest": "sha256:e265f1f773711310158278bc43bdd151976dd3830a46a83dac69a7da889fc5a1"
  },
  {
   "id": "meta-doi",
   "name": "Meta Community Standards: Dangerous organizations and individuals",
   "url": "https://transparency.meta.com/policies/community-standards/dangerous-individuals-organizations/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222625/https://transparency.meta.com/policies/community-standards/dangerous-individuals-organizations/",
   "archivedAt": "2026-10-10T22:26:25Z",
   "contentDigest": "sha256:8caf21be337547e246be68fe881dac72df6ecef2fe8d4c90d75690c5761f6e51"
  },
  {
   "id": "meta-restricted",
   "name": "Meta Community Standards: Restricted goods and services",
   "url": "https://transparency.meta.com/policies/community-standards/restricted-goods-services/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222643/https://transparency.meta.com/policies/community-standards/restricted-goods-services/",
   "archivedAt": "2026-10-10T22:26:43Z",
   "contentDigest": "sha256:6716a23028045939be556fa641d2de2e1027b73d4feed4842c06f1b60a7af6cf"
  },
  {
   "id": "meta-graphic",
   "name": "Meta Community Standards: Violent and graphic content",
   "url": "https://transparency.meta.com/policies/community-standards/violent-graphic-content/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "contentDigest": "sha256:3525847d45a6a6e6838e130822f44a702b727edeeeaf8dbc8065019ecb95f4ad"
  },
  {
   "id": "oversight-river",
   "name": "Oversight Board decision on \"From the River to the Sea\" posts (September 4, 2024)",
   "url": "https://www.oversightboard.com/decision/bun-86tj0rk5/",
   "retrievedAt": "2026-10-10",
   "role": "Primary: Oversight Board decision applying Meta policy",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222708/https://www.oversightboard.com/decision/bun-86tj0rk5/",
   "archivedAt": "2026-10-10T22:27:08Z",
   "contentDigest": "sha256:19929cc8637dcfa9ea2a388cef2ad63ad8f9d88eade1a2b1b70628fde606d0df"
  },
  {
   "id": "wt-zionist",
   "name": "Washington Times: Meta to remove posts targeting \"Zionists\" (July 9, 2024)",
   "url": "https://m.washingtontimes.com/news/2024/jul/9/meta-removing-posts-targeting-zionists/",
   "retrievedAt": "2026-10-10",
   "role": "Secondary news report of a policy change (Meta announcement page no longer loads)",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only"
  },
  {
   "id": "bsky-guidelines",
   "name": "Bluesky Community Guidelines (last updated September 19, 2025)",
   "url": "https://bsky.social/about/support/community-guidelines",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222735/https://bsky.social/about/support/community-guidelines",
   "archivedAt": "2026-10-10T22:27:35Z",
   "contentDigest": "sha256:bf85682402204379f3a67423a1f3aef5771b8b7ec69a91c012f5f0cf9dcfa97b"
  },
  {
   "id": "tiktok-sc",
   "name": "TikTok Community Guidelines: Safety and civility",
   "url": "https://www.tiktok.com/safety/en/policies-and-engagement/safety-civility",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261006144951/https://www.tiktok.com/safety/en/policies-and-engagement/safety-civility",
   "archivedAt": "2026-10-06T14:49:51Z",
   "contentDigest": "sha256:b05084ab2131622223b65368ffbb1327706e8acc4801526baf5cd3bcc99574f5"
  },
  {
   "id": "tiktok-ia",
   "name": "TikTok Community Guidelines: Integrity and authenticity",
   "url": "https://www.tiktok.com/safety/en/policies-and-engagement/integrity-authenticity",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "contentDigest": "sha256:f4eed1af868852ddb0c7408382640c34ac12b16dcdfe2242a5d1155ca26b4a56"
  },
  {
   "id": "tiktok-rca",
   "name": "TikTok Community Guidelines: Regulated and commercial activities",
   "url": "https://www.tiktok.com/safety/en/policies-and-engagement/regulated-commercial-activities",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20260928082833/https://www.tiktok.com/safety/en/policies-and-engagement/regulated-commercial-activities",
   "archivedAt": "2026-09-28T08:28:33Z",
   "contentDigest": "sha256:8886cf4cd84251e98cb564c45cadfba4e46ea7608518736e8d773fbb63966ff7"
  },
  {
   "id": "tiktok-smt",
   "name": "TikTok Community Guidelines: Sensitive and mature themes",
   "url": "https://www.tiktok.com/safety/en/policies-and-engagement/sensitive-mature-themes",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222809/https://www.tiktok.com/safety/en/policies-and-engagement/sensitive-mature-themes",
   "archivedAt": "2026-10-10T22:28:09Z",
   "contentDigest": "sha256:83bef2726e0b28fb676462f241d8d31bfe9416e0474a2c56e133e1a5b3d264d1"
  },
  {
   "id": "mastodon-rules",
   "name": "mastodon.social server rules (instance rules API)",
   "url": "https://mastodon.social/api/v1/instance/rules",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222825/https://mastodon.social/api/v1/instance/rules",
   "archivedAt": "2026-10-10T22:28:25Z",
   "contentDigest": "sha256:1459ff6e0b436c655b7f232c03a2f12208c0855c72937d75704657a88936b19f"
  },
  {
   "id": "mastodon-covenant",
   "name": "Mastodon Server Covenant",
   "url": "https://joinmastodon.org/covenant",
   "retrievedAt": "2026-10-10",
   "role": "Primary: platform policy page",
   "licenseName": "Publisher copyright; short quotations used for commentary",
   "redistribution": "Not redistributed; linked only",
   "archiveUrl": "https://web.archive.org/web/20261010222835/https://joinmastodon.org/covenant",
   "archivedAt": "2026-10-10T22:28:35Z",
   "contentDigest": "sha256:14e8e700ef95a1ae19a07f95aa184c3a112489c3d266e3a049f4ea5d905ae983"
  }
 ],
 "tables": [
  {
   "id": "policy-matrix",
   "title": "Platform policy by topic",
   "artifactId": "policy-matrix",
   "unitOfObservation": "One platform and one topic",
   "description": "What each platform's written policy says it does with content on each topic, as of 2026-10-10.",
   "fields": [
    {
     "name": "platform",
     "type": "string",
     "description": "Platform name. Meta covers Facebook, Instagram and Threads, which share Meta's Community Standards. mastodon.social is the largest Mastodon server.",
     "nullable": false,
     "valueType": "observed"
    },
    {
     "name": "topic_id",
     "type": "string",
     "description": "Stable topic code (T01-T12B).",
     "nullable": false,
     "valueType": "observed"
    },
    {
     "name": "topic",
     "type": "string",
     "description": "Plain-language topic description.",
     "nullable": false,
     "valueType": "observed"
    },
    {
     "name": "tier",
     "type": "string",
     "description": "viewpoint (a contested opinion or claim), baseline (a rule nearly every platform shares), or scope (which groups a hate rule protects).",
     "nullable": false,
     "valueType": "derived",
     "derivation": "Assigned by FactHub per topic."
    },
    {
     "name": "in_viewpoint_index",
     "type": "boolean",
     "description": "Whether the topic counts toward the viewpoint index (T01-T05 and T06B).",
     "nullable": false,
     "valueType": "derived",
     "derivation": "Assigned by FactHub per topic."
    },
    {
     "name": "verdict",
     "type": "string",
     "description": "removed, restricted (reduced reach, label, warning, demonetized, or not recommended), allowed (policy explicitly permits it), not_addressed (no rule found), vague (a general rule could cover it but does not name it), or n/a for scope rows.",
     "nullable": false,
     "valueType": "derived",
     "derivation": "FactHub reading of the quoted policy text."
    },
    {
     "name": "verdict_detail",
     "type": "string",
     "description": "Explanation of the verdict, including exceptions and dated changes.",
     "nullable": false,
     "valueType": "derived",
     "derivation": "FactHub summary of the policy."
    },
    {
     "name": "policy_quote",
     "type": "string",
     "description": "Verbatim excerpt from the policy page supporting the verdict; empty when no rule exists to quote.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "x-abusive",
      "x-hateful",
      "x-election",
      "x-rules",
      "x-violent-entities",
      "x-violent-content",
      "x-illegal-regulated",
      "ts-tos",
      "ts-guidelines",
      "rumble-terms",
      "reddit-rules",
      "reddit-hate",
      "reddit-quarantine",
      "reddit-transactions",
      "reddit-terrorism",
      "reddit-violence",
      "yt-hate",
      "yt-harassment",
      "yt-medical",
      "yt-elections",
      "yt-extremism",
      "yt-regulated-goods",
      "yt-graphic",
      "adsense-climate",
      "meta-hateful",
      "meta-bullying",
      "meta-misinfo",
      "meta-doi",
      "meta-restricted",
      "meta-graphic",
      "oversight-river",
      "wt-zionist",
      "bsky-guidelines",
      "tiktok-sc",
      "tiktok-ia",
      "tiktok-rca",
      "tiktok-smt",
      "mastodon-rules",
      "mastodon-covenant"
     ]
    },
    {
     "name": "quote_verified",
     "type": "string",
     "description": "verbatim if the quote was confirmed on the live page on 2026-10-10; no_quote if empty.",
     "nullable": false,
     "valueType": "derived",
     "derivation": "verify-quotes.js and browser checks."
    },
    {
     "name": "source_id",
     "type": "string",
     "description": "Id of the source entry for the policy page.",
     "nullable": false,
     "valueType": "observed"
    },
    {
     "name": "policy_url",
     "type": "string",
     "description": "URL of the policy page.",
     "nullable": false,
     "valueType": "observed"
    },
    {
     "name": "checked_date",
     "type": "date",
     "description": "Date the policy was read.",
     "nullable": false,
     "valueType": "observed"
    }
   ]
  }
 ],
 "analyses": [
  {
   "id": "viewpoint-index",
   "title": "Viewpoint topics each platform restricts by written rule",
   "question": "Of six contested viewpoint topics, how many does each platform's written policy remove or restrict?",
   "operation": "Count rows with in_viewpoint_index = true by platform and verdict.",
   "parameters": {
    "topics": [
     "T01",
     "T02",
     "T03",
     "T04",
     "T05",
     "T06B"
    ],
    "counted_as_restricting": [
     "removed",
     "restricted"
    ]
   },
   "scope": "Nine platforms, six topics, policies as of 2026-10-10.",
   "resultShape": "table",
   "structuredResult": {
    "rows": [
     {
      "platform": "X",
      "restricted_topics": 0,
      "removed": 0,
      "restricted": 0,
      "vague": 0,
      "allowed_or_not_addressed": 6,
      "topics_counted": 6
     },
     {
      "platform": "Rumble",
      "restricted_topics": 0,
      "removed": 0,
      "restricted": 0,
      "vague": 0,
      "allowed_or_not_addressed": 6,
      "topics_counted": 6
     },
     {
      "platform": "Truth Social",
      "restricted_topics": 0,
      "removed": 0,
      "restricted": 0,
      "vague": 5,
      "allowed_or_not_addressed": 1,
      "topics_counted": 6
     },
     {
      "platform": "Reddit",
      "restricted_topics": 1,
      "removed": 1,
      "restricted": 0,
      "vague": 2,
      "allowed_or_not_addressed": 3,
      "topics_counted": 6
     },
     {
      "platform": "YouTube",
      "restricted_topics": 2,
      "removed": 1,
      "restricted": 1,
      "vague": 2,
      "allowed_or_not_addressed": 2,
      "topics_counted": 6
     },
     {
      "platform": "Bluesky",
      "restricted_topics": 2,
      "removed": 1,
      "restricted": 1,
      "vague": 3,
      "allowed_or_not_addressed": 1,
      "topics_counted": 6
     },
     {
      "platform": "Meta",
      "restricted_topics": 3,
      "removed": 1,
      "restricted": 2,
      "vague": 0,
      "allowed_or_not_addressed": 3,
      "topics_counted": 6
     },
     {
      "platform": "mastodon.social",
      "restricted_topics": 5,
      "removed": 5,
      "restricted": 0,
      "vague": 1,
      "allowed_or_not_addressed": 0,
      "topics_counted": 6
     },
     {
      "platform": "TikTok",
      "restricted_topics": 6,
      "removed": 5,
      "restricted": 1,
      "vague": 0,
      "allowed_or_not_addressed": 0,
      "topics_counted": 6
     }
    ]
   },
   "displayResult": "X: 0 of 6 (0 vague); Rumble: 0 of 6 (0 vague); Truth Social: 0 of 6 (5 vague); Reddit: 1 of 6 (2 vague); YouTube: 2 of 6 (2 vague); Bluesky: 2 of 6 (3 vague); Meta: 3 of 6 (0 vague); mastodon.social: 5 of 6 (1 vague); TikTok: 6 of 6 (0 vague)",
   "methodologicalNotes": [
    "Topics: misgendering, gender-identity viewpoints, vaccine or medical claims, stolen-election claims, climate denial, and calls to exclude or deport immigrants.",
    "Vague rules are counted separately and not as restrictions."
   ],
   "limitations": [
    "Counts written rules, not enforcement.",
    "Each topic is weighted equally.",
    "Classifying vaccine and climate misinformation rules as viewpoint restrictions is a judgment call."
   ],
   "executedAt": "2026-10-10T23:00:00Z"
  }
 ],
 "events": [
  {
   "id": "youtube-election-change",
   "eventType": "policy change",
   "date": "2023-06-02",
   "label": "YouTube stops removing claims that past US presidential elections were stolen",
   "description": "Reported by news outlets at the time; the current elections policy linked here does not cover claims about past elections.",
   "sourceIds": [
    "yt-elections"
   ]
  },
  {
   "id": "meta-zionist-update",
   "eventType": "policy change",
   "date": "2024-07-09",
   "label": "Meta removes attacks on \"Zionists\" used as a proxy for Jews or Israelis",
   "description": "Covers dehumanizing comparisons, calls for harm and denials of existence.",
   "sourceIds": [
    "wt-zionist"
   ]
  },
  {
   "id": "oversight-river-decision",
   "eventType": "ruling",
   "date": "2024-09-04",
   "label": "Oversight Board upholds leaving up \"From the River to the Sea\" posts",
   "description": "The majority found the phrase does not have a single meaning.",
   "sourceIds": [
    "oversight-river"
   ]
  },
  {
   "id": "meta-jan-2025",
   "eventType": "policy change",
   "date": "2025-01-07",
   "label": "Meta loosens hateful-conduct rules and ends US fact-checking",
   "description": "Explicitly allows some gender-identity and immigration viewpoints; Community Notes replace US fact-checkers from April 2025.",
   "sourceIds": [
    "meta-hateful",
    "meta-misinfo"
   ]
  },
  {
   "id": "bluesky-guidelines-2025",
   "eventType": "policy change",
   "date": "2025-09-19",
   "label": "Bluesky revises Community Guidelines",
   "description": "Current guidelines carry this last-updated date.",
   "sourceIds": [
    "bsky-guidelines"
   ]
  }
 ]
}
