PROPOSAL — No institutional endorsement or formal adoption. Independent work by Cariboo Signals, open for critique and community input.

URI and Prefix

The canonical namespace URI is the identifier for the TRACE XML vocabulary. The recommended prefix is trace. Declare it in the root element of your feed alongside any other namespaces you use.

Namespace URI
https://tracestandard.org/ns/trace/1.0
Namespace declaration in RSS 2.0
<rss version="2.0"
     xmlns:trace="https://tracestandard.org/ns/trace/1.0"
     xmlns:podcast="https://podcastindex.org/namespace/1.0">
Prefix choice: The prefix trace is recommended but not required. Any valid XML prefix works. Consumers of the namespace use the URI to identify elements, not the prefix. If you use an alternative prefix, your feed remains conformant.

TRACE XML Elements

All elements are in the https://tracestandard.org/ns/trace/1.0 namespace. Nesting structure is shown by indentation. Elements marked required must be present when a trace:assessment block is used.

ElementParentStatusContent / Purpose
trace:assessment channel, item required Root container for all TRACE metadata. Carries a version attribute.
trace:content assessment optional Content identification block. Attributes carry the title, URL, and type. May be omitted when the content is the feed item itself.
trace:producer assessment required Text content: name of the producer. Optional url attribute for a homepage or profile.
trace:community assessment required Text content: free-text description of the community represented or depicted.
trace:ai assessment optional AI disclosure block. Attributes: generated (true/false), role (primary/partial/assisted/none). Contains zero or more trace:tool children.
trace:tool ai optional Text content: name of one AI tool used. Add one element per tool.
trace:track assessment required Text content: A or B.
trace:disqualified assessment required Text content: true or false. Optional code attribute: DQ1 or DQ2 when triggered.
trace:scores assessment optional Container for category-level scores. Omit when disqualified is true. Contains one trace:score per category.
trace:score scores optional Self-closing. Attributes: category, value (integer), max (integer). See categories below.
trace:total assessment required Self-closing. Attributes: score (integer), max (integer), pct (integer 0–100, optional). Omit when disqualified.
trace:verdict assessment required Text content: verdict string. See Verdict Values. Omit when disqualified, or use Disqualified.
trace:assessmentDate assessment required Text content: ISO 8601 date (YYYY-MM-DD).
trace:assessedBy assessment optional Text content: self, third-party, or assessor name.
trace:nextReviewDate assessment optional Text content: ISO 8601 date of planned reassessment.
trace:cardURL assessment optional Text content: URL of the TRACE scorecard for this assessment.

Category values for trace:score

The category attribute of trace:score must be one of the following strings:

category valueTrack A maxTrack B max
transparency47
sourceIntegrity34
displacement25
consentAttribution44
benefitFlow56
accountability24
governanceDurability5 (Track B only)

Assessing a Whole Feed or Series

Place trace:assessment directly inside <channel> to assert an assessment that applies to the entire feed or podcast series. This is appropriate when a single assessment covers the production practices of all episodes, and individual episode-level differences are not material enough to track separately.

Channel-level placement
<channel>
  <title>Cariboo Signals</title>
  <link>https://cariboosignals.ca</link>
  <description>Community journalism for the Cariboo</description>

  <!-- TRACE assessment for the entire series -->
  <trace:assessment version="1.0">
    <trace:producer>Cariboo Signals</trace:producer>
    <trace:community>Rural Cariboo region, BC</trace:community>
    <trace:ai generated="true" role="partial">
      <trace:tool>Claude</trace:tool>
      <trace:tool>ElevenLabs</trace:tool>
    </trace:ai>
    <trace:track>A</trace:track>
    <trace:disqualified>false</trace:disqualified>
    <trace:total score="15" max="20" pct="75"/>
    <trace:verdict>Sound</trace:verdict>
    <trace:assessmentDate>2026-05-15</trace:assessmentDate>
  </trace:assessment>

  <item>...</item>
</channel>

Episode-Specific Assessments

Place trace:assessment inside an <item> to override or add to the channel-level assessment for that specific episode. An item-level assessment takes precedence over the channel-level one for that item. You can use both: channel-level as the default, item-level for episodes that deviate.

Item-level placement with full scores
<item>
  <title>Ep 12: Water Rights on the Chilcotin</title>
  <link>https://cariboosignals.ca/episodes/12</link>
  <guid>cariboo-ep-12</guid>

  <trace:assessment version="1.0">
    <trace:content
      title="Ep 12: Water Rights on the Chilcotin"
      url="https://cariboosignals.ca/episodes/12"
      type="podcast"/>
    <trace:producer>Cariboo Signals</trace:producer>
    <trace:community>Tsilhqot'in Nation; rural Cariboo</trace:community>
    <trace:ai generated="true" role="partial">
      <trace:tool>Claude</trace:tool>
    </trace:ai>
    <trace:track>A</trace:track>
    <trace:disqualified>false</trace:disqualified>
    <trace:scores>
      <trace:score category="transparency"       value="3" max="4"/>
      <trace:score category="sourceIntegrity"    value="2" max="3"/>
      <trace:score category="displacement"      value="2" max="2"/>
      <trace:score category="consentAttribution" value="3" max="4"/>
      <trace:score category="benefitFlow"       value="3" max="5"/>
      <trace:score category="accountability"    value="2" max="2"/>
    </trace:scores>
    <trace:total score="15" max="20" pct="75"/>
    <trace:verdict>Sound</trace:verdict>
    <trace:assessmentDate>2026-05-15</trace:assessmentDate>
    <trace:assessedBy>self</trace:assessedBy>
    <trace:cardURL>https://tracestandard.org/cards/cariboo-ep12</trace:cardURL>
  </trace:assessment>
</item>

Complete RSS 2.0 Feed

Complete feed with channel + item TRACE blocks
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:trace="https://tracestandard.org/ns/trace/1.0"
     xmlns:podcast="https://podcastindex.org/namespace/1.0"
     xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

  <channel>
    <title>Cariboo Signals</title>
    <link>https://cariboosignals.ca</link>
    <description>Community journalism for the Cariboo</description>
    <language>en-ca</language>

    <!-- Series-level TRACE assessment -->
    <trace:assessment version="1.0">
      <trace:producer url="https://cariboosignals.ca">Cariboo Signals</trace:producer>
      <trace:community>Rural Cariboo region, BC</trace:community>
      <trace:ai generated="true" role="partial">
        <trace:tool>Claude</trace:tool>
        <trace:tool>ElevenLabs</trace:tool>
      </trace:ai>
      <trace:track>A</trace:track>
      <trace:disqualified>false</trace:disqualified>
      <trace:total score="15" max="20"/>
      <trace:verdict>Sound</trace:verdict>
      <trace:assessmentDate>2026-05-15</trace:assessmentDate>
    </trace:assessment>

    <item>
      <title>Ep 12: Water Rights on the Chilcotin</title>
      <link>https://cariboosignals.ca/episodes/12</link>
      <guid isPermaLink="false">cariboo-ep-12</guid>
      <pubDate>Wed, 15 May 2026 09:00:00 -0700</pubDate>
      <enclosure url="https://cdn.cariboosignals.ca/ep12.mp3"
                 length="47832044" type="audio/mpeg"/>

      <!-- Episode-specific override: community differs from series default -->
      <trace:assessment version="1.0">
        <trace:community>Tsilhqot'in Nation; rural Cariboo</trace:community>
        <trace:track>A</trace:track>
        <trace:disqualified>false</trace:disqualified>
        <trace:total score="15" max="20"/>
        <trace:verdict>Sound</trace:verdict>
        <trace:assessmentDate>2026-05-15</trace:assessmentDate>
        <trace:cardURL>https://tracestandard.org/cards/cariboo-ep12</trace:cardURL>
      </trace:assessment>
    </item>

  </channel>
</rss>

Atom 1.0 Integration

The namespace declaration and element structure are identical in Atom feeds. Declare the namespace on the root <feed> element and use trace:assessment as a child of <feed> (series-level) or <entry> (item-level).

Atom feed fragment
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:trace="https://tracestandard.org/ns/trace/1.0">

  <title>Cariboo Signals</title>

  <trace:assessment version="1.0">
    <trace:producer>Cariboo Signals</trace:producer>
    <trace:track>A</trace:track>
    <trace:disqualified>false</trace:disqualified>
    <trace:total score="15" max="20"/>
    <trace:verdict>Sound</trace:verdict>
    <trace:assessmentDate>2026-05-15</trace:assessmentDate>
  </trace:assessment>

  <entry>
    <title>Ep 12: Water Rights on the Chilcotin</title>
    <!-- entry-level trace:assessment goes here if needed -->
  </entry>

</feed>

Checking Your Feed

ToolWhat it checksURL
W3C Feed ValidatorRSS and Atom well-formedness; namespace extension supportvalidator.w3.org/feed
Podcast Index ValidatorPodcasting 2.0 namespace compliance; coexistence checkpodcastindex.org/validate
TRACE Feed ValidatorTRACE-specific element and attribute validationtracestandard.org/validate/xml (forthcoming)
Unknown element handling: Feed readers that do not recognize the trace: namespace will silently ignore all TRACE elements. The feed remains valid and fully functional for those consumers. TRACE metadata is purely additive.

Version History

VersionDateStatusNotes
1.0May 2026DraftInitial draft. All elements defined. Awaiting community review and XSD schema publication.