# tech.transparencia.news.enrichment

> Published by [transparencia.pds.transparencia.tech](https://lexicon.garden/identity/did:plc:top57c5tklg2fjl66hpidi45)

✓ This is the authoritative definition for this NSID.

## Description

AI-generated structured metadata for a news article. Uses the sidecar pattern — references the article via strongRef so multiple enrichments (from different models or analysts) can coexist.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:top57c5tklg2fjl66hpidi45/tech.transparencia.news.enrichment)
- [Documentation](https://lexicon.garden/lexicon/did:plc:top57c5tklg2fjl66hpidi45/tech.transparencia.news.enrichment/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:top57c5tklg2fjl66hpidi45/tech.transparencia.news.enrichment/examples)

## Definitions

### `tech.transparencia.news.enrichment`

**Type**: `record`

AI enrichment of a news article with structured analysis.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `claims` | `array` | No | Key factual claims or assertions extracted from the article. |
| `people` | `array` | No | People mentioned in the article with role and sentiment. |
| `region` | `string` | No | Geographic scope of the article's relevance. |
| `topics` | `array` | No | Main topics covered (max 10). |
| `article` | `ref` → `com.atproto.repo.strongRef` | Yes | Strong reference to the tech.transparencia.news.article record being enriched. |
| `costUsd` | `string` | No | Estimated cost of this enrichment in USD as a decimal string (e.g., '0.001234'). Allows consumers to audit AI spend transparently. |
| `summary` | `string` | Yes | AI-generated summary of the article (2-3 sentences). |
| `language` | `string` (language) | No | Language of this enrichment's free-text fields (BCP-47, e.g., 'es', 'en'). |
| `timeline` | `array` | No | Chronological events mentioned in the article. |
| `createdAt` | `string` (datetime) | Yes | When this enrichment was generated. |
| `eventType` | `string` | Yes | Primary category of the news event. |
| `locations` | `array` | No | Geographic locations referenced in the article. |
| `modelUsed` | `string` | Yes | AI model identifier used for this enrichment (e.g., 'gemini-2.5-flash'). |
| `impactLevel` | `integer` | Yes | Estimated relevance and significance. 1=minor local note, 5=nationally or industry-wide relevant, 10=global crisis or historic event. |
| `inputTokens` | `integer` | No | Number of input tokens sent to the AI model for this enrichment. |
| `modelVersion` | `string` | No | Specific model version or checkpoint if available. |
| `outputTokens` | `integer` | No | Number of output tokens received from the AI model for this enrichment. |
| `readingLevel` | `string` | No | Estimated reading difficulty of the original article. |
| `contentDomain` | `string` | Yes | Primary domain/vertical of the article content, aligned with IPTC Media Topics top-level categories. |
| `emotionalTone` | `string` | No | Emotional framing of the article, independent of political orientation. |
| `clickbaitScore` | `integer` | No | How accurately the headline represents the actual content. 0=pure clickbait (misleading/sensationalist title), 10=headline perfectly represents the article. |
| `structuredRefs` | `array` | No | Typed references to external entities (laws, stocks, products, teams, etc.). |
| `impactReasoning` | `string` | No | Explanation of the impact score. |
| `neutralHeadline` | `string` | No | AI-rewritten neutral headline, stripped of editorial bias. |
| `relatedKeywords` | `array` | No | Keywords for event matching and clustering. |
| `factCheckability` | `integer` | No | How verifiable are the article's claims? 1=pure opinion, 5=hard data with checkable sources. |
| `clickbaitReasoning` | `string` | No | Explanation of the clickbait score. |
| `economicIndicators` | `array` | No | Economic data points mentioned in the article. |
| `organizationEntities` | `array` | No | Organizations mentioned in the article with structured metadata. |
| `orientationReasoning` | `string` | No | Explanation of why this orientation was assigned. |
| `politicalOrientation` | `string` | No | Detected political bias of the article's framing (not the topic itself). |
| `orientationConfidence` | `string` | No | Confidence in the orientation assessment (decimal string 0-1). |

## Raw Schema

```json
{
  "id": "tech.transparencia.news.enrichment",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "article",
          "summary",
          "impactLevel",
          "eventType",
          "contentDomain",
          "modelUsed",
          "createdAt"
        ],
        "properties": {
          "claims": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#claim",
              "type": "ref"
            },
            "maxLength": 10,
            "description": "Key factual claims or assertions extracted from the article."
          },
          "people": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#person",
              "type": "ref"
            },
            "maxLength": 50,
            "description": "People mentioned in the article with role and sentiment."
          },
          "region": {
            "type": "string",
            "maxLength": 32,
            "description": "Geographic scope of the article's relevance.",
            "knownValues": [
              "local",
              "state",
              "national",
              "regional",
              "global"
            ]
          },
          "topics": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 512,
              "maxGraphemes": 128
            },
            "maxLength": 10,
            "description": "Main topics covered (max 10)."
          },
          "article": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong reference to the tech.transparencia.news.article record being enriched."
          },
          "costUsd": {
            "type": "string",
            "maxLength": 32,
            "description": "Estimated cost of this enrichment in USD as a decimal string (e.g., '0.001234'). Allows consumers to audit AI spend transparently."
          },
          "summary": {
            "type": "string",
            "maxLength": 10000,
            "description": "AI-generated summary of the article (2-3 sentences).",
            "maxGraphemes": 2000
          },
          "language": {
            "type": "string",
            "format": "language",
            "description": "Language of this enrichment's free-text fields (BCP-47, e.g., 'es', 'en')."
          },
          "timeline": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#timelineEntry",
              "type": "ref"
            },
            "maxLength": 20,
            "description": "Chronological events mentioned in the article."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this enrichment was generated."
          },
          "eventType": {
            "type": "string",
            "maxLength": 64,
            "description": "Primary category of the news event.",
            "knownValues": [
              "announcement",
              "policy-legislation",
              "election-vote",
              "appointment-resignation",
              "scandal-controversy",
              "investigation-audit",
              "court-ruling-legal",
              "protest-demonstration",
              "armed-conflict",
              "natural-disaster",
              "accident",
              "crime-incident",
              "market-movement",
              "earnings-financial-results",
              "merger-acquisition",
              "product-launch",
              "product-recall",
              "scientific-discovery",
              "medical-breakthrough",
              "epidemic-health-crisis",
              "infrastructure-project",
              "cultural-event",
              "awards-ceremony",
              "match-result",
              "transfer-signing",
              "tournament-competition",
              "record-achievement",
              "death-obituary",
              "interview-profile",
              "opinion-editorial",
              "data-report-study",
              "forecast-prediction",
              "regulatory-action",
              "environmental-incident",
              "diplomatic-relations",
              "humanitarian-crisis",
              "trend-analysis",
              "review-critique",
              "other"
            ]
          },
          "locations": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#location",
              "type": "ref"
            },
            "maxLength": 20,
            "description": "Geographic locations referenced in the article."
          },
          "modelUsed": {
            "type": "string",
            "maxLength": 256,
            "description": "AI model identifier used for this enrichment (e.g., 'gemini-2.5-flash')."
          },
          "impactLevel": {
            "type": "integer",
            "maximum": 10,
            "minimum": 1,
            "description": "Estimated relevance and significance. 1=minor local note, 5=nationally or industry-wide relevant, 10=global crisis or historic event."
          },
          "inputTokens": {
            "type": "integer",
            "description": "Number of input tokens sent to the AI model for this enrichment."
          },
          "modelVersion": {
            "type": "string",
            "maxLength": 128,
            "description": "Specific model version or checkpoint if available."
          },
          "outputTokens": {
            "type": "integer",
            "description": "Number of output tokens received from the AI model for this enrichment."
          },
          "readingLevel": {
            "type": "string",
            "maxLength": 32,
            "description": "Estimated reading difficulty of the original article.",
            "knownValues": [
              "basic",
              "intermediate",
              "advanced"
            ]
          },
          "contentDomain": {
            "type": "string",
            "maxLength": 64,
            "description": "Primary domain/vertical of the article content, aligned with IPTC Media Topics top-level categories.",
            "knownValues": [
              "arts-culture-entertainment",
              "crime-law-justice",
              "disaster-accident",
              "economy-business-finance",
              "education",
              "environment",
              "health",
              "human-interest",
              "labour",
              "lifestyle-leisure",
              "politics",
              "religion",
              "science-technology",
              "society",
              "sport",
              "conflict-war-peace",
              "weather"
            ]
          },
          "emotionalTone": {
            "type": "string",
            "maxLength": 32,
            "description": "Emotional framing of the article, independent of political orientation.",
            "knownValues": [
              "alarmist",
              "critical",
              "neutral",
              "optimistic",
              "celebratory",
              "melancholic",
              "informative",
              "satirical",
              "inspirational",
              "sensationalist",
              "technical",
              "investigative"
            ]
          },
          "clickbaitScore": {
            "type": "integer",
            "maximum": 10,
            "minimum": 0,
            "description": "How accurately the headline represents the actual content. 0=pure clickbait (misleading/sensationalist title), 10=headline perfectly represents the article."
          },
          "structuredRefs": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#structuredRef",
              "type": "ref"
            },
            "maxLength": 20,
            "description": "Typed references to external entities (laws, stocks, products, teams, etc.)."
          },
          "impactReasoning": {
            "type": "string",
            "maxLength": 5000,
            "description": "Explanation of the impact score.",
            "maxGraphemes": 1000
          },
          "neutralHeadline": {
            "type": "string",
            "maxLength": 2048,
            "description": "AI-rewritten neutral headline, stripped of editorial bias.",
            "maxGraphemes": 512
          },
          "relatedKeywords": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 256,
              "maxGraphemes": 64
            },
            "maxLength": 15,
            "description": "Keywords for event matching and clustering."
          },
          "factCheckability": {
            "type": "integer",
            "maximum": 5,
            "minimum": 1,
            "description": "How verifiable are the article's claims? 1=pure opinion, 5=hard data with checkable sources."
          },
          "clickbaitReasoning": {
            "type": "string",
            "maxLength": 5000,
            "description": "Explanation of the clickbait score.",
            "maxGraphemes": 1000
          },
          "economicIndicators": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#economicIndicator",
              "type": "ref"
            },
            "maxLength": 10,
            "description": "Economic data points mentioned in the article."
          },
          "organizationEntities": {
            "type": "array",
            "items": {
              "ref": "tech.transparencia.defs#organization",
              "type": "ref"
            },
            "maxLength": 30,
            "description": "Organizations mentioned in the article with structured metadata."
          },
          "orientationReasoning": {
            "type": "string",
            "maxLength": 5000,
            "description": "Explanation of why this orientation was assigned.",
            "maxGraphemes": 1000
          },
          "politicalOrientation": {
            "type": "string",
            "maxLength": 32,
            "description": "Detected political bias of the article's framing (not the topic itself).",
            "knownValues": [
              "left",
              "center-left",
              "center",
              "center-right",
              "right",
              "neutral"
            ]
          },
          "orientationConfidence": {
            "type": "string",
            "maxLength": 16,
            "description": "Confidence in the orientation assessment (decimal string 0-1)."
          }
        }
      },
      "description": "AI enrichment of a news article with structured analysis."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "AI-generated structured metadata for a news article. Uses the sidecar pattern — references the article via strongRef so multiple enrichments (from different models or analysts) can coexist."
}
```
